first commit
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
/**
|
||||
* WPSEO plugin file.
|
||||
*
|
||||
* @package WPSEO\Admin\Views
|
||||
*/
|
||||
|
||||
use Yoast\WP\SEO\Presenters\Admin\Alert_Presenter;
|
||||
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the OpenGraph disabled alert, depending on whether the OpenGraph feature is disabled.
|
||||
*
|
||||
* @param string $type The type of message. Can be altered to homepage, taxonomies or archives. Empty string by default.
|
||||
*
|
||||
* @return string The alert. Returns an empty string if the setting is enabled.
|
||||
*/
|
||||
public function generate_opengraph_disabled_alert( $type = '' ) {
|
||||
$is_enabled = WPSEO_Options::get( 'opengraph', true );
|
||||
|
||||
if ( $is_enabled ) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$message = $this->generate_opengraph_disabled_alert_text( $type );
|
||||
|
||||
if ( empty( $message ) ) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$alert = new Alert_Presenter( $message, 'info' );
|
||||
|
||||
return sprintf(
|
||||
'<div class="yoast-measure padded">%s</div>',
|
||||
$alert->present()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the OpenGraph disabled alert text.
|
||||
*
|
||||
* @param string $type The type of message. Can be altered to homepage, taxonomies or archives. Empty string by default.
|
||||
*
|
||||
* @return string The alert. Returns an empty string if the setting is enabled.
|
||||
*/
|
||||
private function generate_opengraph_disabled_alert_text( $type ) {
|
||||
if ( $type === 'homepage' ) {
|
||||
return sprintf(
|
||||
/* translators: 1: link open tag; 2: link close tag. */
|
||||
esc_html__(
|
||||
'The social appearance settings for your homepage require Open Graph metadata (which is currently disabled). You can enable this in the %1$s‘Social’ settings under the ‘Facebook’ tab%2$s.',
|
||||
'wordpress-seo'
|
||||
),
|
||||
'<a href="' . esc_url( admin_url( 'admin.php?page=wpseo_social#top#facebook' ) ) . '">',
|
||||
'</a>'
|
||||
);
|
||||
}
|
||||
|
||||
if ( ! YoastSEO()->helpers->product->is_premium() ) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if ( $type === '' ) {
|
||||
return sprintf(
|
||||
/* translators: 1: link open tag; 2: link close tag. */
|
||||
esc_html__(
|
||||
'The social appearance settings for content types require Open Graph metadata (which is currently disabled). You can enable this in the %1$s‘Social’ settings under the ‘Facebook’ tab%2$s.',
|
||||
'wordpress-seo'
|
||||
),
|
||||
'<a href="' . esc_url( admin_url( 'admin.php?page=wpseo_social#top#facebook' ) ) . '">',
|
||||
'</a>'
|
||||
);
|
||||
}
|
||||
|
||||
if ( $type === 'taxonomies' ) {
|
||||
return sprintf(
|
||||
/* translators: 1: link open tag; 2: link close tag. */
|
||||
esc_html__(
|
||||
'The social appearance settings for taxonomies require Open Graph metadata (which is currently disabled). You can enable this in the %1$s‘Social’ settings under the ‘Facebook’ tab%2$s.',
|
||||
'wordpress-seo'
|
||||
),
|
||||
'<a href="' . esc_url( admin_url( 'admin.php?page=wpseo_social#top#facebook' ) ) . '">',
|
||||
'</a>'
|
||||
);
|
||||
}
|
||||
|
||||
if ( $type === 'archives' ) {
|
||||
return sprintf(
|
||||
/* translators: 1: link open tag; 2: link close tag. */
|
||||
esc_html__(
|
||||
'The social appearance settings for archives require Open Graph metadata (which is currently disabled). You can enable this in the %1$s‘Social’ settings under the ‘Facebook’ tab%2$s.',
|
||||
'wordpress-seo'
|
||||
),
|
||||
'<a href="' . esc_url( admin_url( 'admin.php?page=wpseo_social#top#facebook' ) ) . '">',
|
||||
'</a>'
|
||||
);
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user