123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- /**
- * WPSEO plugin file.
- *
- * @package WPSEO\Admin\Views
- */
- /**
- * Class Yoast_View_Utils.
- */
- class Yoast_View_Utils {
- /**
- * Form to use.
- *
- * @var Yoast_Form
- */
- protected $form;
- /**
- * Yoast_View_Utils constructor.
- */
- public function __construct() {
- $this->form = Yoast_Form::get_instance();
- }
- /**
- * Shows the search results help question mark and help section.
- *
- * Used for all the Help sections for indexable objects like post types, taxonomies, or archives.
- *
- * @param string|object $post_type The post type to show the search results help for.
- * @param string $help_text_switch Switch the help text to one that's more appropriate
- * for the indexable object type the help section is for.
- *
- * @return object The help panel instance.
- */
- public function search_results_setting_help( $post_type, $help_text_switch = '' ) {
- if ( ! is_object( $post_type ) ) {
- $post_type = get_post_type_object( $post_type );
- }
- /* translators: 1: expands to an indexable object's name, like a post type or taxonomy; 2: expands to <code>noindex</code>; 3: link open tag; 4: link close tag. */
- $help_text = esc_html__( 'Not showing %1$s in the search results technically means those will have a %2$s robots meta and will be excluded from XML sitemaps. %3$sMore info on the search results settings%4$s.', 'wordpress-seo' );
- if ( $help_text_switch === 'archive' ) {
- /* translators: 1: expands to an indexable object's name, like a post type or taxonomy; 2: expands to <code>noindex</code>; 3: link open tag; 4: link close tag. */
- $help_text = esc_html__( 'Not showing the archive for %1$s in the search results technically means those will have a %2$s robots meta and will be excluded from XML sitemaps. %3$sMore info on the search results settings%4$s.', 'wordpress-seo' );
- }
- $help_panel = new WPSEO_Admin_Help_Panel(
- // Sometimes the same post type is used more than once in the same page, we need a unique ID though.
- uniqid( 'noindex-' . $post_type->name ),
- esc_html__( 'Help on this search results setting', 'wordpress-seo' ),
- sprintf(
- $help_text,
- $post_type->labels->name,
- '<code>noindex</code>',
- '<a href="' . esc_url( WPSEO_Shortlinker::get( 'https://yoa.st/show-x' ) ) . '" target="_blank" rel="noopener noreferrer">',
- '</a>'
- )
- );
- return $help_panel;
- }
- /**
- * Shows the search appearance settings for a post type.
- *
- * @param string|object $post_type The post type to show the search appearance settings for.
- * @param bool $paper_style Whether or not the paper style should be shown.
- *
- * @return void
- */
- public function show_post_type_settings( $post_type, $paper_style = false ) {
- if ( ! is_object( $post_type ) ) {
- $post_type = get_post_type_object( $post_type );
- }
- $show_post_type_help = $this->search_results_setting_help( $post_type );
- $noindex_option_name = 'noindex-' . $post_type->name;
- $this->form->index_switch(
- $noindex_option_name,
- $post_type->labels->name,
- $show_post_type_help->get_button_html() . $show_post_type_help->get_panel_html()
- );
- $this->form->show_hide_switch(
- 'showdate-' . $post_type->name,
- __( 'Date in Snippet Preview', 'wordpress-seo' )
- );
- $this->form->show_hide_switch(
- 'display-metabox-pt-' . $post_type->name,
- /* translators: %1$s expands to Yoast SEO */
- sprintf( __( '%1$s Meta Box', 'wordpress-seo' ), 'Yoast SEO' )
- );
- $recommended_replace_vars = new WPSEO_Admin_Recommended_Replace_Vars();
- $editor_specific_replace_vars = new WPSEO_Admin_Editor_Specific_Replace_Vars();
- $editor = new WPSEO_Replacevar_Editor(
- $this->form,
- [
- 'title' => 'title-' . $post_type->name,
- 'description' => 'metadesc-' . $post_type->name,
- 'page_type_recommended' => $recommended_replace_vars->determine_for_post_type( $post_type->name ),
- 'page_type_specific' => $editor_specific_replace_vars->determine_for_post_type( $post_type->name ),
- 'paper_style' => $paper_style,
- ]
- );
- $editor->render();
- }
- }
|