/** * Admin enqueue styles and scripts. */ public function malinky_ajax_pagination_admin_scripts() { wp_register_style('malinky-ajax-pagination-admin-css', MALINKY_AJAX_PAGINATION_PLUGIN_URL . '/css/style-admin.css', false, NULL); wp_enqueue_style('malinky-ajax-pagination-admin-css'); // Get theme defaults. $malinky_ajax_pagination_theme_defaults = malinky_ajax_pagination_theme_defaults(); wp_register_script('malinky-ajax-pagination-admin-main-js', MALINKY_AJAX_PAGINATION_PLUGIN_URL . '/js/main-admin.js', array('jquery'), NULL, true); wp_localize_script('malinky-ajax-pagination-admin-main-js', 'malinkyAjaxPagingThemeDefaults', $malinky_ajax_pagination_theme_defaults); wp_enqueue_script('malinky-ajax-pagination-admin-main-js'); wp_enqueue_media(); wp_register_script('malinky-ajax-pagination-admin-media-uploader-js', MALINKY_AJAX_PAGINATION_PLUGIN_URL . '/js/media-uploader.js', array('jquery'), NULL, true); wp_enqueue_script('malinky-ajax-pagination-admin-media-uploader-js'); }
/** * Get the default themes names based on the theme type. * * @return arr */ function malinky_ajax_pagination_theme_default_names() { $theme_names = malinky_ajax_pagination_theme_defaults(); return array_combine(array_keys($theme_names), array_keys($theme_names)); }
/** * Register settings and set up sections and fields. Called from admin_init action. * * register_setting() * add_settings_section() * add_settings_field() * * @return void */ public function malinky_ajax_pagination_settings_init() { // Populate defaults. $malinky_ajax_pagination_theme_defaults = malinky_ajax_pagination_theme_defaults(); $total_settings = $this->malinky_ajax_pagination_settings_count_settings(); for ($x = 1; $x <= $this->malinky_ajax_pagination_settings_new_page_number(); $x++) { register_setting('malinky-ajax-pagination-settings-' . $x, '_malinky_ajax_pagination_settings_' . $x); /* ------------------------------------------------------------------------ * * Sections * ------------------------------------------------------------------------ */ add_settings_section('wrapper_settings', __('Wrapper Settings', 'malinky-ajax-pagination'), array($this, 'malinky_ajax_pagination_settings_wrapper_message'), 'malinky-ajax-pagination-settings-' . $x); add_settings_section('pagination_type_settings', __('Pagination Type Settings', 'malinky-ajax-pagination'), array($this, 'malinky_ajax_pagination_settings_pagination_type_message'), 'malinky-ajax-pagination-settings-' . $x); add_settings_section('loader_settings', __('Loader Settings', 'malinky-ajax-pagination'), array($this, 'malinky_ajax_pagination_settings_loader_message'), 'malinky-ajax-pagination-settings-' . $x); add_settings_section('load_more_button_settings', __('Load More Button Settings', 'malinky-ajax-pagination'), array($this, 'malinky_ajax_pagination_settings_load_more_button_message'), 'malinky-ajax-pagination-settings-' . $x); /* ------------------------------------------------------------------------ * * Wrapper Settings * ------------------------------------------------------------------------ */ add_settings_field('theme_defaults', __('Theme Defaults', 'malinky-ajax-pagination'), array($this, 'malinky_settings_select_field'), 'malinky-ajax-pagination-settings-' . $x, 'wrapper_settings', array('option_name' => '_malinky_ajax_pagination_settings_' . $x, 'option_id' => 'theme_defaults', 'option_default' => 'Twenty Fifteen', 'option_field_type_options' => malinky_ajax_pagination_theme_default_names(), 'option_small' => __('Select from popular themes or overwrite the settings below yourself.', 'malinky-ajax-pagination'))); add_settings_field('posts_wrapper', __('Posts Selector', 'malinky-ajax-pagination'), array($this, 'malinky_settings_text_field'), 'malinky-ajax-pagination-settings-' . $x, 'wrapper_settings', array('option_name' => '_malinky_ajax_pagination_settings_' . $x, 'option_id' => 'posts_wrapper', 'option_default' => $malinky_ajax_pagination_theme_defaults['Twenty Fifteen']['posts_wrapper'], 'option_small' => __('The selector that wraps all of the posts/products.', 'malinky-ajax-pagination'))); add_settings_field('post_wrapper', __('Post Selector', 'malinky-ajax-pagination'), array($this, 'malinky_settings_text_field'), 'malinky-ajax-pagination-settings-' . $x, 'wrapper_settings', array('option_name' => '_malinky_ajax_pagination_settings_' . $x, 'option_id' => 'post_wrapper', 'option_default' => $malinky_ajax_pagination_theme_defaults['Twenty Fifteen']['post_wrapper'], 'option_small' => __('The selector of an individual post/product.', 'malinky-ajax-pagination'))); add_settings_field('pagination_wrapper', __('Navigation Selector', 'malinky-ajax-pagination'), array($this, 'malinky_settings_text_field'), 'malinky-ajax-pagination-settings-' . $x, 'wrapper_settings', array('option_name' => '_malinky_ajax_pagination_settings_' . $x, 'option_id' => 'pagination_wrapper', 'option_default' => $malinky_ajax_pagination_theme_defaults['Twenty Fifteen']['pagination_wrapper'], 'option_small' => __('The selector of the post/product navigation.', 'malinky-ajax-pagination'))); add_settings_field('next_page_selector', __('Next Selector', 'malinky-ajax-pagination'), array($this, 'malinky_settings_text_field'), 'malinky-ajax-pagination-settings-' . $x, 'wrapper_settings', array('option_name' => '_malinky_ajax_pagination_settings_' . $x, 'option_id' => 'next_page_selector', 'option_default' => $malinky_ajax_pagination_theme_defaults['Twenty Fifteen']['next_page_selector'], 'option_small' => __('The selector of the navigation next link.', 'malinky-ajax-pagination'))); /* ------------------------------------------------------------------------ * * Pagination Type Settings * ------------------------------------------------------------------------ */ add_settings_field('paging_type', __('Paging Type', 'malinky-ajax-pagination'), array($this, 'malinky_settings_select_field'), 'malinky-ajax-pagination-settings-' . $x, 'pagination_type_settings', array('option_name' => '_malinky_ajax_pagination_settings_' . $x, 'option_array' => $x, 'option_id' => 'paging_type', 'option_default' => 'load-more', 'option_field_type_options' => array('infinite-scroll' => 'Infinite Scroll', 'load-more' => 'Load More Button', 'pagination' => 'Pagination'), 'option_small' => __('Choose a pagination type.', 'malinky-ajax-pagination'))); add_settings_field('infinite_scroll_buffer', __('Infinite Scroll Buffer (px)', 'malinky-ajax-pagination'), array($this, 'malinky_settings_text_field'), 'malinky-ajax-pagination-settings-' . $x, 'pagination_type_settings', array('option_name' => '_malinky_ajax_pagination_settings_' . $x, 'option_id' => 'infinite_scroll_buffer', 'option_default' => '20', 'option_small' => __('The higher the buffer the earlier, during scrolling, additional posts/products will be loaded.<br /><em>Only used when Infinite Scroll is selected as the paging type.</em>', 'malinky-ajax-pagination'))); /* ------------------------------------------------------------------------ * * Loader Settings * ------------------------------------------------------------------------ */ add_settings_field('ajax_loader', __('AJAX Loader', 'malinky-ajax-pagination'), array($this, 'malinky_settings_ajax_loader_field'), 'malinky-ajax-pagination-settings-' . $x, 'loader_settings', array('option_name' => '_malinky_ajax_pagination_settings_' . $x, 'option_id' => 'ajax_loader', 'option_default' => 'default', 'option_small' => '')); /* ------------------------------------------------------------------------ * * Load More Button Settings * ------------------------------------------------------------------------ */ add_settings_field('load_more_button_text', __('Load More Button Text', 'malinky-ajax-pagination'), array($this, 'malinky_settings_text_field'), 'malinky-ajax-pagination-settings-' . $x, 'load_more_button_settings', array('option_name' => '_malinky_ajax_pagination_settings_' . $x, 'option_id' => 'load_more_button_text', 'option_default' => 'Load More Posts', 'option_small' => __('Change the button text.', 'malinky-ajax-pagination'))); add_settings_field('loading_more_posts_text', __('Loading More Posts Text', 'malinky-ajax-pagination'), array($this, 'malinky_settings_text_field'), 'malinky-ajax-pagination-settings-' . $x, 'load_more_button_settings', array('option_name' => '_malinky_ajax_pagination_settings_' . $x, 'option_id' => 'loading_more_posts_text', 'option_default' => 'Loading...', 'option_small' => __('Change the text that is displayed on the button while new posts/products are being loaded.', 'malinky-ajax-pagination'))); } }