options = get_option( 'accessible_poetry' ); ?>
__('General', 'acp'), 'acp_toolbar' => __('Toolbar', 'acp'), 'acp_skiplinks' => __('Skiplinks', 'acp'), 'acp_customcode' => __('Custom Code', 'acp'), ); foreach ($sections as $section_key => $section_name) { add_settings_section($section_key, $section_name, array($this, 'empty_section_info'), 'accessible-poetry'); } $fields = array( 'focus' => 'acp_general', 'link_underline' => 'acp_general', 'empty_alt' => 'acp_general', 'toolbar' => 'acp_toolbar', 'toolbar_skin' => 'acp_toolbar', 'toolbar_fontsizer' => 'acp_toolbar', 'toolbar_additional_buttons' => 'acp_toolbar', 'toolbar_visibility' => 'acp_toolbar', 'toolbar_important' => 'acp_toolbar', 'skiplinks' => 'acp_skiplinks', 'skiplinks_action' => 'acp_skiplinks', 'skiplinks_side' => 'acp_skiplinks', 'custom_css' => 'acp_customcode', ); foreach ($fields as $field_key => $field_section) { add_settings_field($field_key, '', array( $this, $field_key . '_callback' ), 'accessible-poetry', $field_section); } } public function sanitize($input) { $new_input = array(); foreach ($input as $key => $value) { $new_input[$key] = $value; } return $new_input; } /////////////// SECTIONS CALLBACKS public function empty_section_info() {} /////////////// FIELDS CALLBACKS /* * Add alt attribute to images without alt * * @type checkbox * @id empty_alt * @since 2.0.1 */ public function empty_alt_callback() { $field = '
'; $field .= '

' . __('Images', 'acp') . '

'; $field .= ''; $field .= '
'; printf($field,isset( $this->options['image_alt'] ) ? esc_attr( $this->options['image_alt']) : ''); } /* * Add effect to all focusable items * * @type select * @id focus * @since 2.0.1 */ public function focus_callback() { $focus = isset($this->options['focus']) ? $this->options['focus'] : ''; $focus_type = isset($this->options['focus_type']) ? $this->options['focus_type'] : ''; $customColor = isset($this->options['outline_color']) ? $this->options['outline_color'] : ''; $field = '

' . __('Focus', 'acp') . '

'; $field .= '
'; $field .= '
'; $field .= '
'; printf($field,isset($focus) ? esc_attr($focus) : ''); $field = '
'; $field .= '
'; $field .= '
'; $field .= '
'; printf($field,isset( $focus_type ) ? esc_attr( $this->options['focus_type']) : ''); $outline_color_class = ( $focus_type === 'custom' ) ? ' open' : ''; $field = '
'; printf($field,isset( $this->options['outline_color'] ) ? esc_attr( $this->options['outline_color']) : ''); $field = '
'; $field .= '
'; $field .= '
'; printf($field,isset( $this->options['outline_important'] ) ? esc_attr( $this->options['outline_important']) : ''); } public function link_underline_callback() { $focus_only = ($this->options['link_underline'] == 'focus') ? ' selected' : ''; $focus_hover = ($this->options['link_underline'] == 'hover') ? ' selected' : ''; $on_all = ($this->options['link_underline'] == 'all') ? ' selected' : ''; $field = '
'; $field .= '

' . __('Links', 'acp') . '

'; $field .= ''; $field .= ''; $field .= '
'; printf($field,isset( $this->options['link_underline'] ) ? esc_attr( $this->options['link_underline']) : ''); $field = '
'; $field .= ''; $field .= '
'; $field .= '
'; printf($field,isset( $this->options['underline_important'] ) ? esc_attr( $this->options['underline_important']) : ''); } public function toolbar_callback() { $field = '
'; printf($field,isset( $this->options['toolbar'] ) ? esc_attr( $this->options['toolbar']) : ''); $right = ($this->options['toolbar_side'] == 'right') ? ' selected' : ''; $left = ($this->options['toolbar_side'] == 'left') ? ' selected' : ''; $field = '
'; $field .= '
'; $field .= ''; $field .= ''; $field .= '
'; $field .= '
'; printf($field,isset( $this->options['toolbar_side'] ) ? esc_attr( $this->options['toolbar_side']) : ''); } public function toolbar_visibility_callback() { $fields = array( 'disable_blackscreen' => __("Disable the black screen", 'acp'), 'hide_toolbar_mobile' => __("Hide the toolbar for mobile users", 'acp'), 'hide_flashes' => __("Hide the button to disable flashes", 'acp'), 'hide_headingmarks' => __("Hide the button to to mark heading", 'acp'), 'disable_zoom' => __("Hide the screen zoom buttons", 'acp'), 'disable_fontzoom' => __("Hide the font resize buttons", 'acp'), 'hide_readable' => __("Hide the button that change to readable font", 'acp'), 'hide_contrast' => __("Hide the contrast buttons", 'acp'), 'hide_underline' => __("Hide the underline button", 'acp'), 'hide_linkmarks' => __("Hide the button to mark links", 'acp'), ); $i = 0; foreach($fields as $key => $value) { $i++; $output = ''; if($i == 1) { $output .= '

' . __('Visibility', 'acp') . '

'; $output .= '
'; } $output .= ''; if($i == 2) { $output .= '
'; } elseif($i == 10) { $output .= '

'; } printf($output,isset( $this->options[$key] ) ? esc_attr( $this->options[$key]) : ''); } } public function toolbar_important_callback() { $fields = array( 'mheading_important' => __("Mark headings mode", 'acp'), 'readable_important' => __("Readable font mode", 'acp'), 'contrast_important' => __("Contrast modes", 'acp'), 'underline_important' => __("Underline mode", 'acp'), 'mlinks_important' => __("Mark links mode", 'acp'), ); $i = 0; foreach($fields as $key => $value) { $i++; $field_output = ''; if($i == 1) { $field_output .= '

' . __('CSS Important (Advanced)', 'acp') . '

'; $field_output .= '

' . __('You can hardened the effect of some toolbar button with the use of CSS important. this is not the best way, the best way is to implement a better CSS by yourself with Accessible Poetry set of classes.', 'acp') . '

'; $field_output .= '
'; } $field_output .= ''; if($i == count($fields)) { $field_output .= '
'; } printf($field_output,isset( $this->options[$key] ) ? esc_attr( $this->options[$key]) : ''); } } public function toolbar_customization_callback() { /// icon size $icon_size = $this->options['icon_size']; $small = ($icon_size == 'small') ? ' selected' : ''; $normal = ($icon_size == 'normal') ? ' selected' : ''; $big = ($icon_size == 'big') ? ' selected' : ''; $field = '

' . __('Customization', 'acp') . '

'; $field .= '

' . __('Customize Toolbar Icon', 'acp') . '

'; $field .= '
'; $field .= '
'; $field .= ''; $field .= ''; $field .= '
'; $field .= '
'; printf($field, isset( $this->options['icon_size'] ) ? esc_attr( $this->options['icon_size']) : ''); $icon_shape = $this->options['icon_shape']; $circle = ($icon_shape == 'circle') ? ' selected' : ''; $square = ($icon_shape == 'square') ? ' selected' : ''; $field = '
'; $field .= '
'; $field .= ''; $field .= ''; $field .= '
'; $field .= '
'; printf($field, isset( $this->options['icon_shape'] ) ? esc_attr( $this->options['icon_shape']) : ''); /// toolbar position $field = '
'; $field .= ''; $field .= 'px'; $field .= '
'; printf($field, isset( $this->options['toolbar_position'] ) ? esc_attr( $this->options['toolbar_position']) : ''); $field = '
'; $field .= ''; $field .= 'px'; $field .= '
'; printf($field, isset( $this->options['toolbar_position_side'] ) ? esc_attr( $this->options['toolbar_position_side']) : ''); } /* * {...} * * @id toolbar_additional_buttons_callback * @since 3.0 */ public function toolbar_additional_buttons_callback() { $acp_statement = ( isset($this->options['acp_statement']) ) ? $this->options['acp_statement'] : ''; $field = '

' . __('Additional Buttons', 'acp') . '

'; $field .= '
'; $field .= '
'; $field .= ''; $field .= ''; $field .= '
'; printf($field,isset( $this->options['toolbar_statement'] ) ? esc_attr( $this->options['toolbar_statement']) : ''); $acp_feedback = ( isset($this->options['acp_feedback']) ) ? $this->options['acp_feedback'] : ''; $field = '
'; $field .= ''; $field .= ''; $field .= '
'; $field .= '
'; $field .= '
'; printf($field,isset( $this->options['acp_feedback'] ) ? esc_attr( $this->options['acp_feedback']) : ''); } /* * {...} * * @id toolbar_fontsizer_callback * @since 3.0 */ public function toolbar_fontsizer_callback() { $fontsizer_inc = (isset($this->options['fontsizer_inc'])) ? $this->options['fontsizer_inc'] : ''; $field = '
'; $field .= '

' . __('Font Size Modifier', 'acp') . '

'; $field .= ''; $field .= ''; $field .= '
'; printf($field,isset( $this->options['fontsizer_inc'] ) ? esc_attr( $this->options['fontsizer_inc']) : ''); $fontsizer_exc = (isset($this->options['fontsizer_exc'])) ? $this->options['fontsizer_exc'] : ''; $field = '
'; $field .= ''; $field .= ''; $field .= '
'; printf($field,isset( $this->options['fontsizer_exc'] ) ? esc_attr( $this->options['fontsizer_exc']) : ''); } /* * Activate Skiplinks * * @type checkbox * @id skiplinks * @since 2.0.1 */ public function skiplinks_callback() { $field = '

' . __('Skiplinks', 'acp') . '

'; $field .= '
'; $field .= ''; $field .= '
'; printf($field,isset( $this->options['skiplinks'] ) ? esc_attr( $this->options['skiplinks']) : ''); } /* * Skiplinks side * * @type checkbox * @id skiplinks_side * @since 2.1.1 */ public function skiplinks_side_callback() { $left = ($this->options['skiplinks_side'] == 'left') ? ' selected' : ''; $right = ($this->options['skiplinks_side'] == 'right') ? ' selected' : ''; $field = '
'; $field .= ''; $field .= ' '; $field .= '
'; printf($field,isset( $this->options['skiplinks_side'] ) ? esc_attr( $this->options['skiplinks_side']) : ''); } /* * Skiplinks action * * @type checkbox * @id skiplinks_action * @since 3.0.7 */ public function skiplinks_action_callback() { $footer = ($this->options['skiplinks_action'] == 'footer') ? ' selected' : ''; $body = ($this->options['skiplinks_action'] == 'body') ? ' selected' : ''; $field = '
'; $field .= ''; $field .= ' '; $field .= '
'; printf($field,isset( $this->options['skiplinks_action'] ) ? esc_attr( $this->options['skiplinks_action']) : ''); } public function customcode_callback() { $customcss = (isset($this->options['custom_css'])) ? $this->options['custom_css'] : ''; $field = '
'; $field .= '

' . __('Custom Code', 'acp') . '

'; $field .= ''; $field .= ''; $field .= '
'; printf($field,isset( $this->options['custom_css'] ) ? esc_attr( $this->options['custom_css']) : ''); $customjs = (isset($this->options['custom_js'])) ? $this->options['custom_js'] : ''; $field = '
'; $field .= ''; $field .= '

To use jQuery $ functionality wrap your code with this:

'; $field .= '
jQuery(document).ready(function($){
});
'; $field .= ''; $field .= '
'; printf($field,isset( $this->options['custom_js'] ) ? esc_attr( $this->options['custom_js']) : ''); } /* * Register administration scripts & styles */ function admin_assets($hook) { wp_register_style( 'acp-admin-style', plugins_url('accessible-poetry/assets/css/acp-admin-style.css') ); wp_enqueue_style( 'acp-admin-style' ); wp_enqueue_script( 'bootstrap', plugins_url('accessible-poetry/assets/js/bootstrap.min.js') ); wp_enqueue_script( 'acp-admin', plugins_url('accessible-poetry/assets/js/acp-admin.js') ); } } new ACP_OptionsPanel();