PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 28.3
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v28.3
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
wordpress-seo / src / presenters / admin / help-link-presenter.php

help-link-presenter.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 28.3, at src/presenters/admin/help-link-presenter.php

87 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Yoast\WP\SEO\Presenters\Admin;
4
5 use WPSEO_Admin_Asset_Manager;
6 use Yoast\WP\SEO\Presenters\Abstract_Presenter;
7
8 /**
9 * Represents the presenter class for Help link.
10 */
11 class Help_Link_Presenter extends Abstract_Presenter {
12
13 /**
14 * Help link.
15 *
16 * @var string
17 */
18 private $link;
19
20 /**
21 * Help link visually hidden text.
22 *
23 * @var string
24 */
25 private $link_text;
26
27 /**
28 * Whether the Help link opens in a new browser tab.
29 *
30 * @var bool
31 */
32 private $opens_in_new_browser_tab;
33
34 /**
35 * An instance of the WPSEO_Admin_Asset_Manager class.
36 *
37 * @var WPSEO_Admin_Asset_Manager
38 */
39 private $asset_manager;
40
41 /**
42 * Help_Link_Presenter constructor.
43 *
44 * @param string $link Help link.
45 * @param string $link_text Help link visually hidden text.
46 * @param bool $opens_in_new_browser_tab Whether the link opens in a new browser tab. Default true.
47 */
48 public function __construct( $link = '', $link_text = '', $opens_in_new_browser_tab = true ) {
49 $this->link = $link;
50 $this->link_text = $link_text;
51 $this->opens_in_new_browser_tab = $opens_in_new_browser_tab;
52
53 if ( ! $this->asset_manager ) {
54 $this->asset_manager = new WPSEO_Admin_Asset_Manager();
55 }
56
57 $this->asset_manager->enqueue_style( 'admin-global' );
58 }
59
60 /**
61 * Presents the Help link.
62 *
63 * @return string The styled Help link.
64 */
65 public function present() {
66 if ( $this->link === '' || $this->link_text === '' ) {
67 return;
68 }
69
70 $target_blank_attribute = '';
71 $new_tab_message = '';
72
73 if ( $this->opens_in_new_browser_tab ) {
74 $target_blank_attribute = ' target="_blank"';
75 /* translators: Hidden accessibility text. */
76 $new_tab_message = ' ' . \__( '(Opens in a new browser tab)', 'wordpress-seo' );
77 }
78
79 return \sprintf(
80 '<a href="%1$s"%2$s class="yoast_help yoast-help-link dashicons"><span class="yoast-help-icon" aria-hidden="true"></span><span class="screen-reader-text">%3$s</span></a>',
81 \esc_url( $this->link ),
82 $target_blank_attribute,
83 \esc_html( $this->link_text . $new_tab_message ),
84 );
85 }
86 }
87