PluginProbe
WP Coder – Insert & Manage Code Snippets / 4.5.2
WP Coder – Insert & Manage Code Snippets v4.5.2
4.5.2 4.5.1 1.1 2.3.1 2.3.2 2.4.1 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1 3.1.1 3.2 3.2.1 3.3 3.4 3.5 All 40 releases
← All changes | includes/class-wowp-dashboard.php +55 -134 3.0.4 → 4.5.2 View file →
@@ -3,8 +3,9 @@
3 3 namespace WPCoder;
4 4
5 5 use WPCoder\Admin\AdminInitializer;
6 6 use WPCoder\Dashboard\DashboardInitializer;
7 +use WPCoder\Dashboard\ImporterExporter;
7 8
8 9 defined( 'ABSPATH' ) || exit;
9 10
10 11 class WOWP_Dashboard {
@@ -9,15 +10,22 @@
9 10
10 11 class WOWP_Dashboard {
11 12
12 13 public function __construct() {
13 - add_action( WOW_Plugin::PREFIX . '_admin_load_styles_scripts', [ $this, 'load_styles_scripts' ] );
14 - add_action( WOW_Plugin::PREFIX . '_admin_page', [ $this, 'dashboard' ] );
15 - add_action( WOW_Plugin::PREFIX . '_admin_header_links', [ $this, 'header_links' ] );
16 - add_filter( WOW_Plugin::PREFIX . '_save_settings', [ $this, 'save_settings' ], 10, 2 );
17 - add_filter( WOW_Plugin::PREFIX . '_default_custom_post', [ $this, 'default_custom_post' ] );
14 + add_filter( WPCoder::PREFIX . '_menu_logo', [ $this, 'menu_logo' ] );
15 + add_action( WPCoder::PREFIX . '_admin_load_styles_scripts', [ $this, 'load_styles_scripts' ] );
16 + add_action( WPCoder::PREFIX . '_admin_page', [ $this, 'dashboard' ] );
17 + add_action( WPCoder::PREFIX . '_admin_header_links', [ $this, 'header_links' ] );
18 + add_filter( WPCoder::PREFIX . '_save_settings', [ $this, 'save_settings' ], 10, 2 );
19 + add_filter( WPCoder::PREFIX . '_default_custom_post', [ $this, 'default_custom_post' ] );
20 + AdminInitializer::init();
21 + add_action( 'admin_init', [ ImporterExporter::class, 'export_items' ] );
22 + }
18 23
19 - AdminInitializer::init();
24 + public function menu_logo( $logo ): string {
25 + $logo = '<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"><title>code</title><g fill="#212121"><path d="M19.562,18.75c-.69-.862-1.948-1.003-2.811-.312L1.75,30.438c-.474,.379-.75,.954-.75,1.562s.276,1.182,.75,1.562l15,12c.369,.295,.81,.438,1.248,.438,.587,0,1.168-.257,1.563-.75,.69-.863,.55-2.121-.312-2.811l-13.048-10.438,13.048-10.438c.862-.69,1.002-1.948,.312-2.811Z" fill="#212121"></path><path d="M47.25,18.438c-.862-.691-2.121-.55-2.811,.312-.69,.863-.55,2.121,.312,2.811l13.048,10.438-13.048,10.438c-.862,.69-1.002,1.948-.312,2.811,.395,.494,.976,.75,1.563,.75,.438,0,.879-.143,1.248-.438l15-12c.474-.379,.75-.954,.75-1.562s-.276-1.182-.75-1.562l-15-12Z" fill="#212121"></path><path d="M39.539,5.074c-1.063-.298-2.167,.324-2.465,1.387l-14,50c-.298,1.063,.323,2.167,1.387,2.465,.18,.051,.362,.075,.54,.075,.875,0,1.678-.578,1.925-1.461L40.926,7.539c.298-1.063-.323-2.167-1.387-2.465Z" fill="#212121"></path></g></svg>';
26 +
27 + return $logo;
20 28 }
21 29
22 30 public function default_custom_post( $display_def ) {
23 31 if ( str_contains( $display_def, 'custom_post_selected' ) ) {
@@ -32,119 +40,31 @@
32 40
33 41 return $display_def;
34 42 }
35 43
36 - private function allowed_html() {
37 - $tags = wp_kses_allowed_html( 'post' );
38 -
39 - $additional_tags = [
40 - 'input' => [
41 - 'accept',
42 - 'alt',
43 - 'autocomplete',
44 - 'autofocus',
45 - 'checked',
46 - 'dirname',
47 - 'disabled',
48 - 'form',
49 - 'formaction',
50 - 'formenctype',
51 - 'formmethod',
52 - 'formnovalidate',
53 - 'formtarget',
54 - 'height',
55 - 'inputmode',
56 - 'list',
57 - 'max',
58 - 'maxlength',
59 - 'min',
60 - 'minlength',
61 - 'multiple',
62 - 'name',
63 - 'pattern',
64 - 'placeholder',
65 - 'readonly',
66 - 'required',
67 - 'size',
68 - 'src',
69 - 'step',
70 - 'type',
71 - 'value',
72 - 'width'
73 - ],
74 - 'select' => [
75 - 'autofocus',
76 - 'disabled',
77 - 'form',
78 - 'multiple',
79 - 'name',
80 - 'required',
81 - 'size'
82 - ],
83 - 'option' => [
84 - 'disabled',
85 - 'label',
86 - 'selected',
87 - 'value'
88 - ],
89 - 'form' => [
90 - 'action',
91 - 'accept',
92 - 'accept-charset',
93 - 'enctype',
94 - 'method',
95 - 'name',
96 - 'target'
97 - ],
98 - 'iframe' => [
99 - 'align',
100 - 'allow',
101 - 'allowfullscreen',
102 - 'allowpaymentrequest',
103 - 'allowusermedia',
104 - 'csp',
105 - 'height',
106 - 'importance',
107 - 'loading',
108 - 'name',
109 - 'referrerpolicy',
110 - 'sandbox',
111 - 'src',
112 - 'srcdoc',
113 - 'width',
114 - 'frameborder',
115 - 'longdesc',
116 - 'marginheight',
117 - 'marginwidth',
118 - 'scrolling'
119 - ],
120 - ];
121 -
122 - foreach ( $additional_tags as $tag => $attributes ) {
123 - $tags[ $tag ] = array_fill_keys( $attributes, true );
124 - }
125 -
126 - return $tags;
127 - }
128 -
129 44 public function save_settings( $settings, $request ): array {
130 45 $param = ! empty( $request['param'] ) ? map_deep( $request['param'], [ $this, 'sanitize_param' ] ) : [];
131 46
132 - $settings['data']['title'] = ! empty( $request['title'] ) ? sanitize_text_field( wp_unslash( $request['title'] ) ) : '';
133 - $settings['formats'][] = '%s';
134 - $settings['data']['html_code'] = ! empty( $request['html_code'] ) ? wp_unslash( $request['html_code'] ) : '';
135 - $settings['formats'][] = '%s';
136 - $settings['data']['css_code'] = ! empty( $request['css_code'] ) ? wp_unslash( $request['css_code'] ) : '';
137 - $settings['formats'][] = '%s';
138 - $settings['data']['js_code'] = ! empty( $request['js_code'] ) ? wp_unslash( $request['js_code'] ) : '';
139 - $settings['formats'][] = '%s';
140 - $settings['data']['status'] = ! empty( $request['status'] ) ? sanitize_textarea_field( wp_unslash( $request['status'] ) ) : '';
141 - $settings['formats'][] = '%d';
142 - $settings['data']['mode'] = ! empty( $request['mode'] ) ? sanitize_textarea_field( wp_unslash( $request['mode'] ) ) : '';
143 - $settings['formats'][] = '%d';
144 - $settings['data']['tag'] = ! empty( $request['tag'] ) ? sanitize_textarea_field( wp_unslash( $request['tag'] ) ) : '';
145 - $settings['formats'][] = '%s';
47 + $settings['data']['title'] = ! empty( $request['title'] ) ? sanitize_text_field( wp_unslash( $request['title'] ) ) : '';
48 + $settings['formats'][] = '%s';
49 + $settings['data']['html_code'] = ! empty( $request['html_code'] ) ? wp_unslash( $request['html_code'] ) : '';
50 + $settings['formats'][] = '%s';
51 + $settings['data']['css_code'] = ! empty( $request['css_code'] ) ? wp_unslash( $request['css_code'] ) : '';
52 + $settings['formats'][] = '%s';
53 + $settings['data']['js_code'] = ! empty( $request['js_code'] ) ? wp_unslash( $request['js_code'] ) : '';
54 + $settings['formats'][] = '%s';
55 + $settings['data']['php_code'] = ! empty( $request['php_code'] ) ? wp_unslash( $request['php_code'] ) : '';
56 + $settings['formats'][] = '%s';
57 + $settings['data']['status'] = ! empty( $request['status'] ) ? sanitize_textarea_field( wp_unslash( $request['status'] ) ) : '';
58 + $settings['formats'][] = '%d';
59 + $settings['data']['mode'] = ! empty( $request['mode'] ) ? sanitize_textarea_field( wp_unslash( $request['mode'] ) ) : '';
60 + $settings['formats'][] = '%d';
61 + $settings['data']['tag'] = ! empty( $request['tag'] ) ? sanitize_textarea_field( wp_unslash( $request['tag'] ) ) : '';
62 + $settings['formats'][] = '%s';
63 + $settings['data']['php_include'] = ! empty( $request['php_include'] ) ? sanitize_textarea_field( wp_unslash( $request['php_include'] ) ) : '';
64 + $settings['formats'][] = '%d';
146 65
66 +
147 67 if ( ! empty( $request['param']['include_file'] ) ) {
148 68 $param['include_file'] = ! empty( $request['param']['include_file'] ) ? map_deep( $request['param']['include_file'],
149 69 'esc_url' ) : [];
150 70 }
@@ -159,23 +79,28 @@
159 79 return wp_unslash( sanitize_text_field( $value ) );
160 80 }
161 81
162 82 public function load_styles_scripts(): void {
163 - $assets_url = WOW_Plugin::url() . 'assets/';
164 - $version = WOW_Plugin::VERSION;
165 - $slug = WOW_Plugin::SLUG;
83 + $assets_url = WPCoder::url() . 'assets/';
84 + $version = WPCoder::info( 'version' );
85 + $slug = WPCoder::SLUG;
166 86
87 + wp_enqueue_style( $slug . '-icons', $assets_url . 'icons/css/icons.css', null, $version );
167 88 wp_enqueue_style( $slug . '-admin', $assets_url . 'css/admin.css', null, $version );
168 89
169 - wp_enqueue_style( $slug . '-admin-icons', $assets_url . 'icons/wowpicon/css/style.css', null, $version );
170 -
171 90 wp_enqueue_script( 'code-editor' );
172 91 wp_enqueue_style( 'code-editor' );
173 92 wp_enqueue_script( 'htmlhint' );
174 93 wp_enqueue_script( 'csslint' );
175 94 wp_enqueue_script( 'jshint' );
95 + wp_enqueue_style( 'thickbox' );
96 + wp_enqueue_script( 'thickbox' );
176 97
98 + wp_enqueue_media();
99 +
177 100 wp_enqueue_script( $slug . '-admin', $assets_url . 'js/admin.js', array( 'jquery' ), $version );
101 +
102 + wp_enqueue_script( $slug . '-admin-jquery', $assets_url . 'js/admin-jquery.js', array( 'jquery' ), $version );
178 103 }
179 104
180 105 public function dashboard(): void {
181 106 DashboardInitializer::init();
@@ -182,27 +107,23 @@
182 107 }
183 108
184 109
185 110 public function header_links(): void {
186 - $logo = WOW_Plugin::url() . 'assets/img/wow-icon.png';
187 111 ?>
188 - <div class="wowp-links">
189 - <a href="https://wow-estore.com/" target="_blank">
190 - <img src="<?php
191 - echo esc_url( $logo ); ?>" alt="Logo Wow-Estore.com">
192 - <span>Wow-Estore</span>
193 - </a>
194 - <a href="https://wow-estore.com/guides/wp-coder/" target="_blank">
195 - <span class="dashicons dashicons-book-alt"></span>
196 - <span>Docs</span>
197 - </a>
198 - <a href="https://wordpress.org/support/plugin/wp-coder/reviews/" target="_blank">
199 - <span class="dashicons dashicons-star-filled"></span>
200 - <span>Reviews</span>
201 - </a>
202 - </div>
203 112
113 + <a href="https://wpcoder.pro/category/documentation/?utm_source=wordpress&utm_medium=admin-menu&utm_campaign=documentation"
114 + class="wowp-button button button-secondary">
115 + <span class="dashicons dashicons-book-alt"></span> Documentation
116 + </a>
117 + <a href="https://wordpress.org/support/plugin/wp-coder/reviews/" class="wowp-button button button-secondary">
118 + <span class="dashicons dashicons-star-filled"></span> Reviews
119 + </a>
120 +
121 + <a href="https://wpcoder.pro/" target="_blank"
122 + class="wowp-button button button-dark">
123 + <span>⭐</span> See PRO Features
124 + </a>
204 125 <?php
205 126 }
206 127
207 128
208 129 }