reset_defaults(); wp_redirect( admin_url( 'admin.php?page=wpseo_dashboard' ) ); } $this->adminpages = apply_filters( 'wpseo_admin_pages', $this->adminpages ); global $wpseo_admin; if ( $wpseo_admin->grant_access() ) { add_action( 'admin_print_scripts', array( $this, 'config_page_scripts' ) ); add_action( 'admin_print_styles', array( $this, 'config_page_styles' ) ); } } /** * Resets the site to the default WordPress SEO settings and runs a title test to check whether force rewrite needs to be on. */ function reset_defaults() { foreach ( get_wpseo_options_arr() as $opt ) { delete_option( $opt ); } wpseo_defaults(); wpseo_title_test(); } /** * Generates the sidebar for admin pages. */ function admin_sidebar() { $banners = array( array( 'url' => 'https://yoast.com/hire-us/website-review/#utm_source=wordpress-seo-config&utm_medium=banner&utm_campaign=website-review-banner', 'img' => 'banner-website-review.png', 'alt' => 'Website Review banner', ) ); if ( 'nl_NL' == get_locale() ) { $rand = rand( 1, 2 ); switch ( $rand ) { case 1: $banners[] = array( 'url' => 'http://yoast.nl/seo-trainingen/wordpress-seo-training//#utm_source=wordpress-seo-config&utm_medium=banner&utm_campaign=wpseo-training-banner&utm_content=prijs', 'img' => 'banner-wpseo-training.png', 'alt' => 'WordPress SEO Training banner', ); break; case 2: $banners[] = array( 'url' => 'http://yoast.nl/seo-trainingen/wordpress-seo-training//#utm_source=wordpress-seo-config&utm_medium=banner&utm_campaign=wpseo-training-banner&utm_content=klik-hier', 'img' => 'banner-wpseo-training-2.png', 'alt' => 'WordPress SEO Training banner', ); break; } } if ( !class_exists( 'wpseo_Video_Sitemap' ) ) { $banners[] = array( 'url' => 'http://yoast.com/wordpress/video-seo/#utm_source=wordpress-seo-config&utm_medium=banner&utm_campaign=video-seo-banner', 'img' => 'banner-video-seo.png', 'alt' => 'Banner WordPress SEO Video SEO extension', ); } if ( !class_exists( 'wpseo_Video_Manual' ) ) { $banners[] = array( 'url' => 'http://yoast.com/wordpress/video-manual-wordpress-seo/#utm_source=wordpress-seo-config&utm_medium=banner&utm_campaign=video-manual-banner', 'img' => 'banner-video-seo-manual.png', 'alt' => 'Banner WordPress SEO Video manual', ); } shuffle( $banners ); ?>

' . esc_html( $msg ) . '.

'; } ?>

'; settings_fields( $option ); $this->currentoption = $optionshort; } } /** * Generates the footer for admin pages * * @param bool $submit Whether or not a submit button should be shown. */ function admin_footer( $submit = true ) { if ( $submit ) { ?>
"/>
admin_sidebar(); ?> query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE meta_key = %s", $metakey ) ); } /** * Exports the current site's WP 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. */ function export_settings( $include_taxonomy ) { $content = "; " . __( "This is a settings export file for the WordPress SEO plugin by Yoast.com", 'wordpress-seo' ) . " - http://yoast.com/wordpress/seo/ \r\n"; $optarr = get_wpseo_options_arr(); foreach ( $optarr as $optgroup ) { $content .= "\n" . '[' . $optgroup . ']' . "\n"; $options = get_option( $optgroup ); if ( !is_array( $options ) ) continue; foreach ( $options as $key => $elem ) { if ( is_array( $elem ) ) { for ( $i = 0; $i < count( $elem ); $i++ ) { $content .= $key . "[] = \"" . $elem[$i] . "\"\n"; } } else if ( $elem == "" ) $content .= $key . " = \n"; else $content .= $key . " = \"" . $elem . "\"\n"; } } if ( $include_taxonomy ) { $content .= "\r\n\r\n[wpseo_taxonomy_meta]\r\n"; $content .= "wpseo_taxonomy_meta = \"" . urlencode( json_encode( get_option( 'wpseo_taxonomy_meta' ) ) ) . "\""; } $dir = wp_upload_dir(); if ( !$handle = fopen( $dir['path'] . '/settings.ini', 'w' ) ) die(); if ( !fwrite( $handle, $content ) ) die(); fclose( $handle ); require_once ( ABSPATH . 'wp-admin/includes/class-pclzip.php' ); chdir( $dir['path'] ); $zip = new PclZip( './settings.zip' ); if ( $zip->create( './settings.ini' ) == 0 ) return false; return $dir['url'] . '/settings.zip'; } /** * Loads the required styles for the config page. */ function config_page_styles() { global $pagenow; if ( $pagenow == 'admin.php' && isset( $_GET['page'] ) && in_array( $_GET['page'], $this->adminpages ) ) { wp_enqueue_style( 'dashboard' ); wp_enqueue_style( 'thickbox' ); wp_enqueue_style( 'global' ); wp_enqueue_style( 'wp-admin' ); wp_enqueue_style( 'yoast-admin-css', WPSEO_URL . 'css/yst_plugin_tools.css', WPSEO_VERSION ); } } /** * Loads the required scripts for the config page. */ function config_page_scripts() { global $pagenow; if ( $pagenow == 'admin.php' && isset( $_GET['page'] ) && in_array( $_GET['page'], $this->adminpages ) ) { wp_enqueue_script( 'wpseo-admin-script', WPSEO_URL . 'js/wp-seo-admin.js', array( 'jquery' ), WPSEO_VERSION, true ); wp_enqueue_script( 'postbox' ); wp_enqueue_script( 'dashboard' ); wp_enqueue_script( 'thickbox' ); } } /** * Retrieve options based on the option or the class currentoption. * * @since 1.2.4 * * @param string $option The option to retrieve. * @return array */ function get_option( $option ) { if ( function_exists( 'is_network_admin' ) && is_network_admin() ) return get_site_option( $option ); else return get_option( $option ); } /** * Create a Checkbox input field. * * @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. * @return string */ function checkbox( $var, $label, $label_left = false, $option = '' ) { if ( empty( $option ) ) $option = $this->currentoption; $options = $this->get_option( $option ); if ( !isset( $options[$var] ) ) $options[$var] = false; if ( $options[$var] === true ) $options[$var] = 'on'; if ( $label_left !== false ) { if ( !empty( $label_left ) ) $label_left .= ':'; $output_label = ''; $class = 'checkbox'; } else { $output_label = ''; $class = 'checkbox double'; } $output_input = "'; if ( $label_left !== false ) { $output = $output_label . $output_input . ''; } else { $output = $output_input . $output_label; } return $output . '
'; } /** * Create a Text input field. * * @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. * @return string */ function textinput( $var, $label, $option = '' ) { if ( empty( $option ) ) $option = $this->currentoption; $options = $this->get_option( $option ); $val = ''; if ( isset( $options[$var] ) ) $val = esc_attr( $options[$var] ); return '' . '
'; } /** * Create a textarea. * * @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 string $class The CSS class to assign to the textarea. * @return string */ function textarea( $var, $label, $option = '', $class = '' ) { if ( empty( $option ) ) $option = $this->currentoption; $options = $this->get_option( $option ); $val = ''; if ( isset( $options[$var] ) ) $val = esc_attr( $options[$var] ); return '' . '
'; } /** * Create a hidden input field. * * @param string $var The variable within the option to create the hidden input for. * @param string $option The option the variable belongs to. * @return string */ function hidden( $var, $option = '' ) { if ( empty( $option ) ) $option = $this->currentoption; $options = $this->get_option( $option ); $val = ''; if ( isset( $options[$var] ) ) $val = esc_attr( $options[$var] ); return ''; } /** * Create a Select Box. * * @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. * @return string */ function select( $var, $label, $values, $option = '' ) { if ( empty( $option ) ) $option = $this->currentoption; $options = $this->get_option( $option ); $var_esc = esc_attr( $var ); $output = ''; $output .= ''; return $output . '
'; } /** * Create a File upload field. * * @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. * @return string */ function file_upload( $var, $label, $option = '' ) { if ( empty( $option ) ) $option = $this->currentoption; $options = $this->get_option( $option ); $val = ''; if ( isset( $options[$var] ) && strtolower( gettype( $options[$var] ) ) == 'array' ) { $val = $options[$var]['url']; } $var_esc = esc_attr( $var ); $output = ''; $output .= ''; // Need to save separate array items in hidden inputs, because empty file inputs type will be deleted by settings API. if ( !empty( $options[$var] ) ) { $output .= ''; $output .= ''; $output .= ''; } $output .= '
'; return $output; } /** * Create a Radio input field. * * @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. * @return string */ function radio( $var, $values, $label, $option = '' ) { if ( empty( $option ) ) $option = $this->currentoption; $options = $this->get_option( $option ); if ( !isset( $options[$var] ) ) $options[$var] = false; $var_esc = esc_attr( $var ); $output = '
'; foreach ( $values as $key => $value ) { $key = esc_attr( $key ); $output .= ' '; } $output .= '
'; return $output; } /** * Create a postbox widget. * * @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 ) { ?>

'; 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; } } // end class WPSEO_Admin global $wpseo_admin_pages; $wpseo_admin_pages = new WPSEO_Admin_Pages();