'ace_frontend_settings', 'custom_css_settings' => 'ace_custom_css_settings', 'custom_font_settings' => 'ace_custom_font_settings', ); /** * Init **/ /** * Public Initializer * @return AceAdminPageManager **/ public static function getInstance() { if ( null === self::$instance ) self::$instance = new Self(); return self::$instance; } /** * Constructor **/ protected function __construct() { $this->init(); $this->initClasses(); $this->initHooks(); } protected function init() { //$this->options = ace()->getOptions(); } protected function initClasses() { $this->adminPage = AceAdminPage::getInstance(); //$this->pageFrontendSettings = AcePageFrontendSettings::getInstance(); //$this->pageCustomIconSettings = AcePageIconSettings::getInstance(); //$this->pageCustomFontSettings = AcePageCustomFontSettings::getInstance(); //$this->pageCustomCssSettings = AcePageCustomCSSSettings::getInstance(); //$this->pixabayMediaFetcher = AcePagePixabayMediaFetcher::getInstance(); //$this->page_required_settings = AcePageRequiredSettings::getInstance(); } protected function initHooks() { add_action( 'admin_enqueue_scripts', array( $this, 'adminEnqueueScripts' ) ); } public function adminEnqueueScripts( $hook ) { if ( ! isset( $_GET['page'] ) || ! in_array( $_GET['page'], $this->enqueuedPage ) ) { return; } // CSS wp_enqueue_style( 'ace-admin-page' ); // JS // Frontend Settings if( $this->enqueuedPage['fe_settings'] === $_GET['page'] ) { // CSS wp_enqueue_style( 'ace-admin-page-fe-settings' ); // JS wp_enqueue_script( 'ace-admin-page-frontend-settings' ); wp_enqueue_script( 'ace-admin-page-setting-page-tab' ); wp_localize_script( 'ace-admin-page-setting-page-tab', 'aceOptions', ace()->getOptions() ); wp_enqueue_script( 'ace-admin-page-widget-areas' ); wp_localize_script( 'ace-admin-page-widget-areas', 'aceSavedWidgetAreas', ace()->getOption( 'widget_areas' ) ); wp_localize_script( 'ace-admin-page-widget-areas', 'aceSettingsMenuWidgetAreasArgs', array( 'themeOption' => ACE_THEME_NAME_UNDERSCORE . '_', 'widget_area' => esc_html__( 'Widget Area', Ace::TEXTDOMAIN ), 'description_s_d' => esc_html__( 'This is "%s %d".', Ace::TEXTDOMAIN ), 'ThisIsWidgetArea_d' => esc_html__( 'This is "Widget Area %d".', Ace::TEXTDOMAIN ), 'hookToDisplay' => esc_html__( 'Hook to display', Ace::TEXTDOMAIN ), 'custom' => esc_html__( 'Custom', Ace::TEXTDOMAIN ), 'beforePrimary' => esc_html__( 'Before Content Area', Ace::TEXTDOMAIN ), 'beforeContent' => esc_html__( 'Before Content', Ace::TEXTDOMAIN ), 'atTheBeginningOfTheContent' => esc_html__( 'At the Beginning of the Content', Ace::TEXTDOMAIN ), 'beforeTheFirstH2TagOfTheContent' => esc_html__( 'Before the First H2 tag of the Content', Ace::TEXTDOMAIN ), 'atTheEndOfTheContent' => esc_html__( 'At the End of the Content', Ace::TEXTDOMAIN ), 'afterContent' => esc_html__( 'After the Content', Ace::TEXTDOMAIN ), 'afterPrimary' => esc_html__( 'After Content Area', Ace::TEXTDOMAIN ), 'inFooter' => esc_html__( 'In the Footer', Ace::TEXTDOMAIN ), 'width' => esc_html__( 'Width', Ace::TEXTDOMAIN ), 'max_100' => esc_html__( 'Maximum ( 100% )', Ace::TEXTDOMAIN ), 'adaptedToContentAreaWidth' => esc_html__( 'Adapted to Content Area Width', Ace::TEXTDOMAIN ), 'threeColumns1280' => esc_html__( '1280px ( width for 3 columns )', Ace::TEXTDOMAIN ), 'twoColumns960' => esc_html__( '960px ( width for 2 columns )', Ace::TEXTDOMAIN ), 'oneColumn870' => esc_html__( '870px ( width for 1 column )', Ace::TEXTDOMAIN ), 'sixHundred' => esc_html__( '600px', Ace::TEXTDOMAIN ), 'fourHundred' => esc_html__( '400px', Ace::TEXTDOMAIN ), 'threeHundred' => esc_html__( '300px', Ace::TEXTDOMAIN ), 'printInSideMenu_onlyForMobile' => esc_html__( 'Print in Side Menu ( only for Mobile )', Ace::TEXTDOMAIN ), 'id' => esc_html__( 'ID', Ace::TEXTDOMAIN ), 'class' => esc_html__( 'Class', Ace::TEXTDOMAIN ), 'name' => esc_html__( 'Name', Ace::TEXTDOMAIN ), 'description' => esc_html__( 'Description', Ace::TEXTDOMAIN ), 'selectAnImage' => esc_html__( 'Select an Image', Ace::TEXTDOMAIN ), 'setTheImage' => esc_html__( 'Set the Image', Ace::TEXTDOMAIN ), ) ); wp_localize_script( 'ace-admin-page-widget-areas', 'widgetAreaHooks', ace()->getWidgetAreaManager()->owaHookList ); wp_localize_script( 'ace-admin-page-widget-areas', 'widgetAreaHookTitles', ace()->getWidgetAreaManager()->owaHookTitles ); require_once( ACE_DIR_PATH . 'assets/js/admin/page/frontend/templates/widget-area-settings.php' ); } // Custom CSS Settings elseif ( $this->enqueuedPage['custom_css_settings'] === $_GET['page'] ) { } // Custom Font Settings elseif ( $this->enqueuedPage['custom_font_settings'] === $_GET['page'] ) { // JS wp_enqueue_script( 'ace-admin-custom-fonts' ); } } // Separator function addSdminMenuSeparator( $position ) { global $menu; $index = 0; foreach($menu as $offset => $section) { if (substr($section[2],0,9)=='separator') $index++; if ($offset>=$position) { $menu[$position] = array('','read',"separator{$index}",'','wp-menu-separator'); break; } } ksort( $menu ); } /** * Sanitize Methods * @param [type] $general [description] * @return [type] [description] **/ public static function sanitizeGeneral( $general ) { if( is_array( $general ) ) { foreach( $general as $index => $settings ) { if( $index == 'default_settings_tab' ) $general[ $index ] = sanitize_text_field( $settings ); } } return $general; } public static function sanitizeActivations( $activations ) { if( is_array( $activations ) ) { foreach( $activations as $index => $settings ) { $activations[ $index ] = sanitize_text_field( $settings ); } } return $activations; } public static function sanitizeNotDisplayPostFormats( $not_display_post_formats ) { if( is_array( $not_display_post_formats ) ) { foreach( $not_display_post_formats as $index => $settings ) { $not_display_post_formats[ $index ] = sanitize_text_field( $settings ); } } return $not_display_post_formats; } public static function sanitizeRemoveActions( $remove_actions ) { if( is_array( $remove_actions ) ) { foreach( $remove_actions as $index => $settings ) { $remove_actions[ $index ] = sanitize_text_field( $settings ); } } return $remove_actions; } public static function sanitizeInjections( $injections ) { $for_sanitize_absint = array( 'excerpt_length' ); $for_sanitize_text_field = array(); $for_esc_textarea = array( 'content_editor', 'header_code', 'after_start_body_code', 'footer_code' ); if( is_array( $injections ) ) { foreach( $injections as $index => $settings ) { if( in_array( $index, $for_sanitize_text_field ) ) $injections[ $index ] = sanitize_text_field( $settings ); if( in_array( $index, $for_esc_textarea ) ) $injections[ $index ] = esc_textarea( html_entity_decode( preg_replace( '/\\\([\'"])/i', '$1', $settings ) ) ); if( in_array( $index, $for_sanitize_absint ) ) { $injections[ $index ] = ( intval( $settings ) < 1 ? 20 : intval( $settings ) ); } } } return $injections; } public static function sanitizeSpeedAdjust( $speed_adjust ) { $for_sanitize_text_field = array( 'no_jetpack_css', 'no_jquery' ); if( is_array( $speed_adjust ) ) { foreach( $speed_adjust as $index => $settings ) { if( in_array( $index, $for_sanitize_text_field ) ) $speed_adjust[ $index ] = sanitize_text_field( $settings ); } } return $speed_adjust; } public static function sanitizeWidgetAreas( $widget_areas ) { $for_sanitize_text_field = array( 'hook', 'width', 'is_on_mobile_menu', 'id', 'class' ); $for_esc_textarea = array( 'description', 'before_widget', 'after_widget', 'before_title', 'after_title' ); if( is_array( $widget_areas ) ) { foreach( $widget_areas as $number => $settings ) { if ( ! isset( $widget_areas[ $number ]['is_on_mobile_menu'] ) ) { $widget_areas[ $number ]['is_on_mobile_menu'] = ''; } foreach( $settings as $index => $setting ) { if( in_array( $index, $for_sanitize_text_field ) ) $widget_areas[ $number ][ $index ] = sanitize_text_field( $setting ); if( in_array( $index, $for_esc_textarea ) ) $widget_areas[ $number ][ $index ] = esc_textarea( html_entity_decode( preg_replace( '/\\\([\'"])/i', '$1', $setting ) ) ); } } } else { $widget_aeras = array(); } return $widget_areas; } public static function sanitizeSeos( $seos ) { $for_sanitize_text_field = array( 'json_ld_logo', 'json_ld_markup_on', 'canonical_link_on', 'meta_robots_on', 'meta_description_on', 'meta_keywords_on', 'twitter_card_on', 'twitter_card_account', 'open_graph_on', 'tc_og_image' ); if( is_array( $seos ) ) { foreach( $seos as $index => $settings ) { if( in_array( $index, $for_sanitize_text_field ) ) $seos[ $index ] = sanitize_text_field( $settings ); } } return $seos; } public static function sanitizeApiKeys( $api_keys ) { $for_sanitize_text_field = array( 'google_fonts_api', 'google_map_api', 'pixabay_key' ); if( is_array( $api_keys ) ) { foreach( $api_keys as $index => $settings ) { if( in_array( $index, $for_sanitize_text_field ) ) $api_keys[ $index ] = sanitize_text_field( $settings ); } } return $api_keys; } public static function sanitizeOthers( $others ) { $for_sanitize_text_field = array( 'reset_page_view_count', 'auto_page_view_count_reset', 'pixabay_key' ); if( is_array( $others ) ) { foreach( $others as $index => $settings ) { if( in_array( $index, $for_sanitize_text_field ) ) $others[ $index ] = sanitize_text_field( $settings ); } } return $others; } }