asset_manager = new WPSEO_Admin_Asset_Manager(); } /** * Make sure the needed scripts are loaded for admin pages */ function init() { if ( filter_input( INPUT_GET, 'wpseo_reset_defaults' ) && wp_verify_nonce( filter_input( INPUT_GET, 'nonce' ), 'wpseo_reset_defaults' ) && current_user_can( 'manage_options' ) ) { WPSEO_Options::reset(); wp_redirect( admin_url( 'admin.php?page=' . WPSEO_Admin::PAGE_IDENTIFIER ) ); } if ( WPSEO_Utils::grant_access() ) { add_action( 'admin_init', array( $this, 'admin_init' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'config_page_scripts' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'config_page_styles' ) ); } } /** * Run admin-specific actions. */ public function admin_init() { $page = filter_input( INPUT_GET, 'page' ); $tool = filter_input( INPUT_GET, 'tool' ); $export_nonce = filter_input( INPUT_POST, WPSEO_Export::NONCE_NAME ); if ( 'wpseo_tools' === $page && 'import-export' === $tool && $export_nonce !== null ) { $this->do_yoast_export(); } } /** * Loads the required styles for the config page. */ function config_page_styles() { wp_enqueue_style( 'dashboard' ); wp_enqueue_style( 'thickbox' ); wp_enqueue_style( 'global' ); wp_enqueue_style( 'wp-admin' ); $this->asset_manager->enqueue_style( 'select2' ); $this->asset_manager->enqueue_style( 'admin-css' ); $this->asset_manager->enqueue_style( 'kb-search' ); } /** * Loads the required scripts for the config page. */ function config_page_scripts() { $this->asset_manager->enqueue_script( 'admin-script' ); wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'admin-script', 'wpseoAdminL10n', $this->localize_admin_script() ); wp_enqueue_script( 'dashboard' ); wp_enqueue_script( 'thickbox' ); $page = filter_input( INPUT_GET, 'page' ); wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'admin-script', 'wpseoSelect2Locale', WPSEO_Utils::get_language( get_locale() ) ); if ( in_array( $page, array( 'wpseo_social', WPSEO_Admin::PAGE_IDENTIFIER ) ) ) { wp_enqueue_media(); $this->asset_manager->enqueue_script( 'admin-media' ); wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'admin-media', 'wpseoMediaL10n', $this->localize_media_script() ); } if ( 'wpseo_tools' === $page ) { $this->enqueue_tools_scripts(); } } /** * Pass some variables to js for upload module. * * @return array */ public function localize_media_script() { return array( 'choose_image' => __( 'Use Image', 'wordpress-seo' ), ); } /** * Pass some variables to js for the admin JS module. * * %s is replaced with %s and replaced again in the javascript with the actual variable. * * @return array */ public function localize_admin_script() { return array( /* translators: %s: '%%term_title%%' variable used in titles and meta's template that's not compatible with the given template */ 'variable_warning' => sprintf( __( 'Warning: the variable %s cannot be used in this template.', 'wordpress-seo' ), '%s' ) . ' ' . __( 'See the help tab for more info.', 'wordpress-seo' ), 'locale' => get_locale(), /* translators: %d: number of knowledge base search results found. */ 'kb_found_results' => __( 'Number of search results: %d', 'wordpress-seo' ), 'kb_no_results' => __( 'No results found.', 'wordpress-seo' ), 'kb_heading' => __( 'Search the Yoast knowledge base', 'wordpress-seo' ), 'kb_search_button_text' => __( 'Search', 'wordpress-seo' ), 'kb_search_results_heading' => __( 'Search results', 'wordpress-seo' ), 'kb_error_message' => __( 'Something went wrong. Please try again later.', 'wordpress-seo' ), 'kb_loading_placeholder' => __( 'Loading...', 'wordpress-seo' ), 'kb_search' => __( 'search', 'wordpress-seo' ), 'kb_back' => __( 'Back', 'wordpress-seo' ), 'kb_back_label' => __( 'Back to search results' , 'wordpress-seo' ), 'kb_open' => __( 'Open', 'wordpress-seo' ), 'kb_open_label' => __( 'Open the knowledge base article in a new window or read it in the iframe below' , 'wordpress-seo' ), 'kb_iframe_title' => __( 'Knowledge base article', 'wordpress-seo' ), ); } /** * Enqueues and handles all the tool dependencies. */ private function enqueue_tools_scripts() { $tool = filter_input( INPUT_GET, 'tool' ); if ( empty( $tool ) ) { $this->asset_manager->enqueue_script( 'yoast-seo' ); } if ( 'bulk-editor' === $tool ) { $this->asset_manager->enqueue_script( 'bulk-editor' ); } } /** * Runs the yoast exporter class to possibly init the file download. */ private function do_yoast_export() { check_admin_referer( WPSEO_Export::NONCE_ACTION, WPSEO_Export::NONCE_NAME ); if ( ! current_user_can( 'manage_options' ) ) { return; } $wpseo_post = filter_input( INPUT_POST, 'wpseo' ); $include_taxonomy = ! empty( $wpseo_post['include_taxonomy'] ); $export = new WPSEO_Export( $include_taxonomy ); if ( $export->has_error() ) { add_action( 'admin_notices', array( $export, 'set_error_hook' ) ); } } /********************** DEPRECATED METHODS **********************/ /** * Exports the current site's Yoast SEO settings. * * @param bool $include_taxonomy Whether to include the taxonomy metadata the plugin creates. * * @return bool|string $return False when failed, the URL to the export file when succeeded. */ public function export_settings( $include_taxonomy ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the WPSEO_Export class.' ); $export = new WPSEO_Export( $include_taxonomy ); if ( $export->success ) { return $export->export_zip_url; } return false; } /** * Generates the header for admin pages * * @deprecated 2.0 * * @param bool $form Whether or not the form start tag should be included. * @param mixed $option_long_name The long name of the option to use for the current page. * @param string $option The short name of the option to use for the current page. * @param bool $contains_files Whether the form should allow for file uploads. */ public function admin_header( $form = true, $option_long_name = false, $option = 'wpseo', $contains_files = false ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); Yoast_Form::get_instance()->admin_header( $form, $option, $contains_files, $option_long_name ); } /** * Generates the footer for admin pages * * @deprecated 2.0 * * @param bool $submit Whether or not a submit button and form end tag should be shown. * @param bool $show_sidebar Whether or not to show the banner sidebar - used by premium plugins to disable it. */ public function admin_footer( $submit = true, $show_sidebar = true ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); Yoast_Form::get_instance()->admin_footer( $submit, $show_sidebar ); } /** * Generates the sidebar for admin pages. * * @deprecated 2.0 */ public function admin_sidebar() { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); Yoast_Form::get_instance()->admin_sidebar(); } /** * Create a Checkbox input field. * * @deprecated 2.0 * * @param string $var The variable within the option to create the checkbox for. * @param string $label The label to show for the variable. * @param bool $label_left Whether the label should be left (true) or right (false). * @param string $option The option the variable belongs to. */ public function checkbox( $var, $label, $label_left = false, $option = '' ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); if ( $option !== '' ) { Yoast_Form::get_instance()->set_option( $option ); } Yoast_Form::get_instance()->checkbox( $var, $label, $label_left ); } /** * Create a Text input field. * * @deprecated 2.0 * * @param string $var The variable within the option to create the text input field for. * @param string $label The label to show for the variable. * @param string $option The option the variable belongs to. */ function textinput( $var, $label, $option = '' ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); if ( $option !== '' ) { Yoast_Form::get_instance()->set_option( $option ); } Yoast_Form::get_instance()->textinput( $var, $label ); } /** * Create a textarea. * * @deprecated 2.0 * * @param string $var The variable within the option to create the textarea for. * @param string $label The label to show for the variable. * @param string $option The option the variable belongs to. * @param array $attr The CSS class to assign to the textarea. */ function textarea( $var, $label, $option = '', $attr = array() ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); if ( $option !== '' ) { Yoast_Form::get_instance()->set_option( $option ); } Yoast_Form::get_instance()->textarea( $var, $label, $attr ); } /** * Create a hidden input field. * * @deprecated 2.0 * * @param string $var The variable within the option to create the hidden input for. * @param string $option The option the variable belongs to. */ function hidden( $var, $option = '' ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); if ( $option !== '' ) { Yoast_Form::get_instance()->set_option( $option ); } Yoast_Form::get_instance()->hidden( $var ); } /** * Create a Select Box. * * @deprecated 2.0 * * @param string $var The variable within the option to create the select for. * @param string $label The label to show for the variable. * @param array $values The select options to choose from. * @param string $option The option the variable belongs to. */ function select( $var, $label, $values, $option = '' ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); if ( $option !== '' ) { Yoast_Form::get_instance()->set_option( $option ); } Yoast_Form::get_instance()->select( $var, $label, $values ); } /** * Create a File upload field. * * @deprecated 2.0 * * @param string $var The variable within the option to create the file upload field for. * @param string $label The label to show for the variable. * @param string $option The option the variable belongs to. */ function file_upload( $var, $label, $option = '' ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); if ( $option !== '' ) { Yoast_Form::get_instance()->set_option( $option ); } Yoast_Form::get_instance()->file_upload( $var, $label ); } /** * Media input * * @deprecated 2.0 * * @param string $var Option name. * @param string $label Label message. * @param string $option Optional option key. */ function media_input( $var, $label, $option = '' ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); if ( $option !== '' ) { Yoast_Form::get_instance()->set_option( $option ); } Yoast_Form::get_instance()->media_input( $var, $label ); } /** * Create a Radio input field. * * @deprecated 2.0 * * @param string $var The variable within the option to create the file upload field for. * @param array $values The radio options to choose from. * @param string $label The label to show for the variable. * @param string $option The option the variable belongs to. */ function radio( $var, $values, $label, $option = '' ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please use the Yoast_Form class.' ); if ( $option !== '' ) { Yoast_Form::get_instance()->set_option( $option ); } Yoast_Form::get_instance()->radio( $var, $values, $label ); } /** * Create a postbox widget. * * @deprecated 2.0 * * @param string $id ID of the postbox. * @param string $title Title of the postbox. * @param string $content Content of the postbox. */ function postbox( $id, $title, $content ) { _deprecated_function( __METHOD__, 'WPSEO 2.0', 'This method is deprecated, please re-implement the admin pages.' ); ?>

'; foreach ( $rows as $row ) { $content .= ''; if ( isset( $row['id'] ) && $row['id'] != '' ) { $content .= ''; } else { $content .= esc_html( $row['label'] ); } if ( isset( $row['desc'] ) && $row['desc'] != '' ) { $content .= '
' . esc_html( $row['desc'] ) . ''; } $content .= ''; $content .= $row['content']; $content .= ''; } $content .= ''; return $content; } /** * Resets the site to the default Yoast SEO settings and runs a title test to check * whether force rewrite needs to be on. * * @deprecated 1.5.0 * @deprecated use WPSEO_Options::reset() * @see WPSEO_Options::reset() */ function reset_defaults() { _deprecated_function( __METHOD__, 'WPSEO 1.5.0', 'WPSEO_Options::reset()' ); WPSEO_Options::reset(); } } /* End of class */