PluginProbe ʕ •ᴥ•ʔ
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 18.0
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v18.0
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 5 years ago capabilities 4 years ago endpoints 5 years ago exceptions 7 years ago filters 4 years ago formatter 4 years ago google_search_console 5 years ago import 4 years ago listeners 8 years ago menu 4 years ago metabox 4 years ago notifiers 4 years ago pages 4 years ago roles 5 years ago ryte 5 years ago services 5 years ago statistics 5 years ago taxonomy 4 years ago tracking 4 years ago views 4 years ago watchers 5 years ago admin-settings-changed-listener.php 5 years ago ajax.php 4 years ago class-admin-asset-analysis-worker-location.php 5 years ago class-admin-asset-dev-server-location.php 5 years ago class-admin-asset-location.php 8 years ago class-admin-asset-manager.php 4 years ago class-admin-asset-seo-location.php 4 years ago class-admin-asset-yoast-components-l10n.php 5 years ago class-admin-editor-specific-replace-vars.php 5 years ago class-admin-gutenberg-compatibility-notification.php 5 years ago class-admin-help-panel.php 5 years ago class-admin-init.php 4 years ago class-admin-recommended-replace-vars.php 6 years ago class-admin-user-profile.php 6 years ago class-admin-utils.php 5 years ago class-admin.php 4 years ago class-asset.php 5 years ago class-bulk-description-editor-list-table.php 5 years ago class-bulk-editor-list-table.php 4 years ago class-bulk-title-editor-list-table.php 6 years ago class-collector.php 6 years ago class-config.php 4 years ago class-customizer.php 5 years ago class-database-proxy.php 5 years ago class-export.php 5 years ago class-expose-shortlinks.php 4 years ago class-gutenberg-compatibility.php 4 years ago class-helpscout.php 5 years ago class-meta-columns.php 5 years ago class-my-yoast-proxy.php 5 years ago class-option-tab.php 4 years ago class-option-tabs-formatter.php 5 years ago class-option-tabs.php 5 years ago class-paper-presenter.php 5 years ago class-plugin-availability.php 5 years ago class-plugin-conflict.php 4 years ago class-premium-popup.php 5 years ago class-premium-upsell-admin-block.php 4 years ago class-primary-term-admin.php 5 years ago class-product-upsell-notice.php 5 years ago class-remote-request.php 5 years ago class-schema-person-upgrade-notification.php 4 years ago class-suggested-plugins.php 4 years ago class-yoast-columns.php 5 years ago class-yoast-dashboard-widget.php 4 years ago class-yoast-form.php 4 years ago class-yoast-input-validation.php 5 years ago class-yoast-network-admin.php 5 years ago class-yoast-network-settings-api.php 4 years ago class-yoast-notification-center.php 4 years ago class-yoast-notification.php 5 years ago class-yoast-notifications.php 5 years ago class-yoast-plugin-conflict.php 4 years 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