PluginProbe ʕ •ᴥ•ʔ
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 27.5
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v27.5
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 19.1 19.10 19.11 19.12 19.13 19.14 19.2 19.3 19.4 19.5 19.5.1 19.6 19.6.1 19.7 19.7.1 19.7.2 19.8 19.9 20.0 20.1 20.10 20.11 20.12 20.13 20.2 20.2.1 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21.0 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.8.1 21.9 21.9.1 22.0 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23.0 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24.0 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.8.1 24.9 25.0 25.1 25.2 25.3 25.3.1 25.4 25.5 25.6 25.7 25.8 25.9 26.0 26.1 26.1.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8 26.9 27.0 27.1 27.1.1 27.2 27.3 27.4
wordpress-seo / admin / class-paper-presenter.php
wordpress-seo / admin Last commit date
ajax 2 years ago capabilities 1 year ago endpoints 2 years ago exceptions 3 months ago filters 3 months ago formatter 1 year ago google_search_console 3 months ago import 3 months ago listeners 8 years ago menu 3 months ago metabox 3 months ago notifiers 3 months ago pages 3 months ago roles 3 months ago services 3 months ago statistics 3 months ago taxonomy 3 months ago tracking 3 months ago views 3 months ago watchers 3 months ago admin-settings-changed-listener.php 2 years ago ajax.php 3 months ago class-admin-asset-analysis-worker-location.php 3 months ago class-admin-asset-dev-server-location.php 3 months ago class-admin-asset-location.php 8 years ago class-admin-asset-manager.php 3 months ago class-admin-asset-seo-location.php 4 years ago class-admin-editor-specific-replace-vars.php 3 months ago class-admin-gutenberg-compatibility-notification.php 3 months ago class-admin-help-panel.php 3 months ago class-admin-init.php 3 months ago class-admin-recommended-replace-vars.php 2 years ago class-admin-user-profile.php 7 months ago class-admin-utils.php 3 months ago class-admin.php 3 months ago class-asset.php 1 year ago class-bulk-description-editor-list-table.php 3 months ago class-bulk-editor-list-table.php 3 months ago class-bulk-title-editor-list-table.php 3 months ago class-collector.php 1 year ago class-config.php 3 months ago class-database-proxy.php 3 months ago class-export.php 3 months ago class-expose-shortlinks.php 7 months ago class-gutenberg-compatibility.php 1 month ago class-meta-columns.php 3 months ago class-my-yoast-proxy.php 3 months ago class-option-tab.php 4 years ago class-option-tabs-formatter.php 3 months ago class-option-tabs.php 2 years ago class-paper-presenter.php 5 years ago class-plugin-availability.php 3 months ago class-plugin-conflict.php 2 years ago class-premium-popup.php 1 year ago class-premium-upsell-admin-block.php 3 months ago class-primary-term-admin.php 3 months ago class-product-upsell-notice.php 3 months ago class-remote-request.php 2 years ago class-schema-person-upgrade-notification.php 3 months ago class-suggested-plugins.php 3 months ago class-wincher-dashboard-widget.php 3 months ago class-yoast-columns.php 3 months ago class-yoast-dashboard-widget.php 3 months ago class-yoast-form.php 3 months ago class-yoast-input-validation.php 3 months ago class-yoast-network-admin.php 3 months ago class-yoast-network-settings-api.php 3 months ago class-yoast-notification-center.php 3 months ago class-yoast-notification.php 3 months ago class-yoast-notifications.php 3 months ago class-yoast-plugin-conflict.php 3 months ago index.php 10 years ago interface-collection.php 7 years ago interface-installable.php 8 years ago
class-paper-presenter.php
142 lines
1 <?php
2 /**
3 * WPSEO plugin file.
4 *
5 * @package WPSEO\Admin
6 */
7
8 /**
9 * Class WPSEO_presenter_paper.
10 */
11 class WPSEO_Paper_Presenter {
12
13 /**
14 * Title of the paper.
15 *
16 * @var string
17 */
18 private $title;
19
20 /**
21 * The view variables.
22 *
23 * @var array
24 */
25 private $settings;
26
27 /**
28 * The path to the view file.
29 *
30 * @var string
31 */
32 private $view_file;
33
34 /**
35 * WPSEO_presenter_paper constructor.
36 *
37 * @param string $title The title of the paper.
38 * @param string|null $view_file Optional. The path to the view file. Use the content setting
39 * if do not wish to use a view file.
40 * @param array $settings Optional. Settings for the paper.
41 */
42 public function __construct( $title, $view_file = null, array $settings = [] ) {
43 $defaults = [
44 'paper_id' => null,
45 'paper_id_prefix' => 'wpseo-',
46 'collapsible' => false,
47 'collapsible_header_class' => '',
48 'expanded' => false,
49 'help_text' => '',
50 'title_after' => '',
51 'class' => '',
52 'content' => '',
53 'view_data' => [],
54 ];
55
56 $this->settings = wp_parse_args( $settings, $defaults );
57 $this->title = $title;
58 $this->view_file = $view_file;
59 }
60
61 /**
62 * Renders the collapsible paper and returns it as a string.
63 *
64 * @return string The rendered paper.
65 */
66 public function get_output() {
67 $view_variables = $this->get_view_variables();
68
69 extract( $view_variables, EXTR_SKIP );
70
71 $content = $this->settings['content'];
72
73 if ( $this->view_file !== null ) {
74 ob_start();
75 require $this->view_file;
76 $content = ob_get_clean();
77 }
78
79 ob_start();
80 require WPSEO_PATH . 'admin/views/paper-collapsible.php';
81 $rendered_output = ob_get_clean();
82
83 return $rendered_output;
84 }
85
86 /**
87 * Retrieves the view variables.
88 *
89 * @return array The view variables.
90 */
91 private function get_view_variables() {
92 if ( $this->settings['help_text'] instanceof WPSEO_Admin_Help_Panel === false ) {
93 $this->settings['help_text'] = new WPSEO_Admin_Help_Panel( '', '', '' );
94 }
95
96 $view_variables = [
97 'class' => $this->settings['class'],
98 'collapsible' => $this->settings['collapsible'],
99 'collapsible_config' => $this->collapsible_config(),
100 'collapsible_header_class' => $this->settings['collapsible_header_class'],
101 'title_after' => $this->settings['title_after'],
102 'help_text' => $this->settings['help_text'],
103 'view_file' => $this->view_file,
104 'title' => $this->title,
105 'paper_id' => $this->settings['paper_id'],
106 'paper_id_prefix' => $this->settings['paper_id_prefix'],
107 'yform' => Yoast_Form::get_instance(),
108 ];
109
110 return array_merge( $this->settings['view_data'], $view_variables );
111 }
112
113 /**
114 * Retrieves the collapsible config based on the settings.
115 *
116 * @return array The config.
117 */
118 protected function collapsible_config() {
119 if ( empty( $this->settings['collapsible'] ) ) {
120 return [
121 'toggle_icon' => '',
122 'class' => '',
123 'expanded' => '',
124 ];
125 }
126
127 if ( ! empty( $this->settings['expanded'] ) ) {
128 return [
129 'toggle_icon' => 'dashicons-arrow-up-alt2',
130 'class' => 'toggleable-container',
131 'expanded' => 'true',
132 ];
133 }
134
135 return [
136 'toggle_icon' => 'dashicons-arrow-down-alt2',
137 'class' => 'toggleable-container toggleable-container-hidden',
138 'expanded' => 'false',
139 ];
140 }
141 }
142