options = get_option( self::OPTIONS );
include (WP_PLUGIN_DIR . '/adsinserter/options/main.php');
}
/**
* Register and add settings
*/
public function register_options() {
register_setting(
'adsinserter', // Option group
self::OPTIONS, // Option name
array( $this, 'sanitize' ) // Sanitize
);
add_settings_section(
'setting_intext', // ID
'In text placement', // Title
'',/*array( $this, 'print_section_info' ),*/ // Callback
'AdsInserter' // Page
);
add_settings_field(
self::OPTION_INTEXT_ENABLED, // ID
'Enabled', // Title
array( $this, self::OPTION_INTEXT_ENABLED . '_callback' ), // Callback
'AdsInserter', // Page
'setting_intext' // Section
);
add_settings_field(
self::OPTION_INTEXT_PLACEMENT_ID,
'Placement ID',
array( $this, self::OPTION_INTEXT_PLACEMENT_ID . '_callback' ),
'AdsInserter',
'setting_intext'
);
add_settings_field(
self::OPTION_INTEXT_START,
'Start from paragraph',
array( $this, self::OPTION_INTEXT_START . '_callback' ),
'AdsInserter',
'setting_intext'
);
add_settings_field(
self::OPTION_INTEXT_DENSITY,
'Density, every paragraphs after start',
array( $this, self::OPTION_INTEXT_DENSITY . '_callback' ),
'AdsInserter',
'setting_intext'
);
}
/**
* Get the settings option array and print one of its values
*/
public function intext_enabled_callback() {
printf(
'',
isset( $this->options[self::OPTION_INTEXT_ENABLED] ) && $this->options[self::OPTION_INTEXT_ENABLED] ? 'checked' : ''
);
}
/**
* Get the settings option array and print one of its values
*/
public function intext_placement_id_callback() {
printf(
'',
isset( $this->options[self::OPTION_INTEXT_PLACEMENT_ID] ) ? absint($this->options[self::OPTION_INTEXT_PLACEMENT_ID]) : ''
);
}
/**
* Get the settings option array and print one of its values
*/
public function intext_start_callback() {
printf(
'',
isset( $this->options[self::OPTION_INTEXT_START] ) ? absint($this->options[self::OPTION_INTEXT_START]) : 1
);
}
/**
* Get the settings option array and print one of its values
*/
public function intext_density_callback() {
printf(
'',
isset( $this->options[self::OPTION_INTEXT_DENSITY] ) ? absint($this->options[self::OPTION_INTEXT_DENSITY]) : 3
);
}
/**
* Sanitize each setting field as needed
*
* @param $input Contains all settings fields as array keys
* @return array
*/
public function sanitize( $input ) {
$new_input = array();
$new_input[self::OPTION_INTEXT_ENABLED] = array_key_exists(self::OPTION_INTEXT_ENABLED, $input) ? (bool)$input[self::OPTION_INTEXT_ENABLED] : false;
$new_input[self::OPTION_INTEXT_PLACEMENT_ID] = array_key_exists(self::OPTION_INTEXT_PLACEMENT_ID, $input) ? absint( $input[self::OPTION_INTEXT_PLACEMENT_ID] ) : 0;
if ($new_input[self::OPTION_INTEXT_ENABLED] && !$new_input[self::OPTION_INTEXT_PLACEMENT_ID]) {
add_settings_error( self::OPTIONS, self::OPTION_INTEXT_PLACEMENT_ID, 'Placement ID is required', 'error' );
}
$new_input[self::OPTION_INTEXT_START] = array_key_exists(self::OPTION_INTEXT_START, $input) ? absint( $input[self::OPTION_INTEXT_START] ) : 1;
$new_input[self::OPTION_INTEXT_DENSITY] = array_key_exists(self::OPTION_INTEXT_DENSITY, $input) ? absint( $input[self::OPTION_INTEXT_DENSITY] ) : 3;
if ($new_input[self::OPTION_INTEXT_ENABLED] && !$new_input[self::OPTION_INTEXT_DENSITY]) {
add_settings_error( self::OPTIONS, self::OPTION_INTEXT_DENSITY, 'Density is required', 'error' );
}
return $new_input;
}
}