PluginProbe
WP Coder – Insert & Manage Code Snippets / 3.5.1
WP Coder – Insert & Manage Code Snippets v3.5.1
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 3.5.1 All 39 releases
wp-coder / includes / class-wowp-dashboard.php

class-wowp-dashboard.php in WP Coder – Insert & Manage Code Snippets 3.5.1, at includes/class-wowp-dashboard.php

137 lines 5.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPCoder;
4
5 use WPCoder\Admin\AdminInitializer;
6 use WPCoder\Dashboard\DashboardInitializer;
7
8 defined( 'ABSPATH' ) || exit;
9
10 class WOWP_Dashboard {
11
12 public function __construct() {
13 add_filter( WPCoder::PREFIX . '_menu_logo', [ $this, 'menu_logo' ] );
14 add_action( WPCoder::PREFIX . '_admin_load_styles_scripts', [ $this, 'load_styles_scripts' ] );
15 add_action( WPCoder::PREFIX . '_admin_page', [ $this, 'dashboard' ] );
16 add_action( WPCoder::PREFIX . '_admin_header_links', [ $this, 'header_links' ] );
17 add_filter( WPCoder::PREFIX . '_save_settings', [ $this, 'save_settings' ], 10, 2 );
18 add_filter( WPCoder::PREFIX . '_default_custom_post', [ $this, 'default_custom_post' ] );
19 AdminInitializer::init();
20 }
21
22 public function menu_logo( $logo ) {
23 $logo = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" width="15" height="15" fill="currentColor">
24 <path d="M234.8 511.7L196 500.4c-4.2-1.2-6.7-5.7-5.5-9.9L331.3 5.8c1.2-4.2 5.7-6.7 9.9-5.5L380 11.6c4.2 1.2 6.7 5.7 5.5 9.9L244.7 506.2c-1.2 4.3-5.6 6.7-9.9 5.5zm-83.2-121.1l27.2-29c3.1-3.3 2.8-8.5-.5-11.5L72.2 256l106.1-94.1c3.4-3 3.6-8.2.5-11.5l-27.2-29c-3-3.2-8.1-3.4-11.3-.4L2.5 250.2c-3.4 3.2-3.4 8.5 0 11.7L140.3 391c3.2 3 8.2 2.8 11.3-.4zm284.1.4l137.7-129.1c3.4-3.2 3.4-8.5 0-11.7L435.7 121c-3.2-3-8.3-2.9-11.3.4l-27.2 29c-3.1 3.3-2.8 8.5.5 11.5L503.8 256l-106.1 94.1c-3.4 3-3.6 8.2-.5 11.5l27.2 29c3.1 3.2 8.1 3.4 11.3.4z"/>
25 </svg>';
26
27 return $logo;
28 }
29
30 public function default_custom_post( $display_def ) {
31 if ( str_contains( $display_def, 'custom_post_selected' ) ) {
32 return 'post_selected';
33 }
34 if ( str_contains( $display_def, 'custom_post_tax' ) ) {
35 return 'post_category';
36 }
37 if ( str_contains( $display_def, 'custom_post_all' ) ) {
38 return 'post_all';
39 }
40
41 return $display_def;
42 }
43
44 public function save_settings( $settings, $request ): array {
45 $param = ! empty( $request['param'] ) ? map_deep( $request['param'], [ $this, 'sanitize_param' ] ) : [];
46
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
64 if ( ! empty( $request['param']['include_file'] ) ) {
65 $param['include_file'] = ! empty( $request['param']['include_file'] ) ? map_deep( $request['param']['include_file'],
66 'esc_url' ) : [];
67 }
68
69 $settings['data']['param'] = maybe_serialize( $param );
70 $settings['formats'][] = '%s';
71
72 return $settings;
73 }
74
75 public function sanitize_param( $value ) {
76 return wp_unslash( sanitize_text_field( $value ) );
77 }
78
79 public function load_styles_scripts(): void {
80 $assets_url = WPCoder::url() . 'assets/';
81 $version = WPCoder::info('version');
82 $slug = WPCoder::SLUG;
83
84 wp_enqueue_style( $slug . '-icons', $assets_url . 'icons/css/icons.css', null, $version );
85 wp_enqueue_style( $slug . '-admin', $assets_url . 'css/admin.css', null, $version );
86
87 wp_enqueue_script( 'code-editor' );
88 wp_enqueue_style( 'code-editor' );
89 wp_enqueue_script( 'htmlhint' );
90 wp_enqueue_script( 'csslint' );
91 wp_enqueue_script( 'jshint' );
92
93 wp_enqueue_media();
94
95 wp_enqueue_script( $slug . '-admin', $assets_url . 'js/admin.js', array( 'jquery' ), $version );
96
97 wp_enqueue_script( $slug . '-admin-jquery', $assets_url . 'js/admin-jquery.js', array( 'jquery' ), $version );
98 }
99
100 public function dashboard(): void {
101 DashboardInitializer::init();
102 }
103
104
105 public function header_links(): void {
106 $logo = WPCoder::url() . 'assets/img/wow-icon.png';
107 ?>
108 <div class="wowp-links">
109 <a href="https://wpcoder.pro/?utm_source=wordpress&utm_medium=admin-menu&utm_campaign=main" target="_blank">
110 <span>PRO Version</span>
111 </a>
112 <a href="https://wpcoder.pro/category/documentation/?utm_source=wordpress&utm_medium=admin-menu&utm_campaign=documentation"
113 target="_blank">
114 <span>Documentation</span>
115 </a>
116 <a href="https://wpcoder.pro/category/snippet/?utm_source=wordpress&utm_medium=admin-menu&utm_campaign=snippets"
117 target="_blank">
118 <span>Snippets</span>
119 </a>
120 <a href="https://wpcoder.pro/category/tutorials/?utm_source=wordpress&utm_medium=admin-menu&utm_campaign=tutorials"
121 target="_blank">
122 <span>Tutorials</span>
123 </a>
124 <a href="https://wpcoder.pro/category/web-items/?utm_source=wordpress&utm_medium=admin-menu&utm_campaign=items"
125 target="_blank">
126 <span>Web Elements</span>
127 </a>
128 <a href="https://wordpress.org/support/plugin/wp-coder/reviews/" target="_blank">
129 <span>Reviews</span>
130 </a>
131 </div>
132
133 <?php
134 }
135
136
137 }