PluginProbe ʕ •ᴥ•ʔ
Code Manager / 1.0.32
Code Manager v1.0.32
1.0.47 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.2 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.3 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.4 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9
code-manager / includes / class-code-manager.php
code-manager / includes Last commit date
class-code-manager-i18n.php 2 years ago class-code-manager-loader.php 2 years ago class-code-manager-switch.php 2 years ago class-code-manager.php 2 years ago
class-code-manager.php
197 lines
1 <?php
2
3 /**
4 * Code Manager main
5 *
6 * @package .
7 */
8 /**
9 * Class Code_Manager
10 *
11 * Core plugin class used to define:
12 * + admin specific functionality {@see Code_Manager_Admin}
13 * + public specific functionality {@see Code_Manager_Public}
14 * + internationalization {@see Code_Manager_I18n}
15 * + plugin activation and deactivation {@see Code_Manager_Loader}
16 *
17 * @author Peter Schulz
18 * @since 1.0.0
19 *
20 * @see Code_Manager_Admin
21 * @see Code_Manager_Public
22 * @see Code_Manager_I18n
23 * @see Code_Manager_Loader
24 */
25 class Code_Manager
26 {
27 /**
28 * Handle to loader object
29 *
30 * @var Code_Manager_Loader
31 */
32 protected $loader ;
33 /**
34 * Menu slug of current page
35 *
36 * @var string
37 */
38 protected $page ;
39 /**
40 * Code_Manager constructor
41 *
42 * Calls method the following methods to setup plugin:
43 * + {@see Code_Manager::load_dependencies()}
44 * + {@see Code_Manager::set_locale()}
45 * + {@see Code_Manager::define_admin_hooks()}
46 * + {@see Code_Manager::define_public_hooks()}
47 *
48 * @since 1.0.0
49 *
50 * @see Code_Manager::load_dependencies()
51 * @see Code_Manager::set_locale()
52 * @see Code_Manager::define_admin_hooks()
53 * @see Code_Manager::define_public_hooks()
54 */
55 public function __construct()
56 {
57
58 if ( isset( $_REQUEST['page'] ) ) {
59 $this->page = sanitize_text_field( wp_unslash( $_REQUEST['page'] ) );
60 // input var okay.
61 }
62
63 $this->load_dependencies();
64 $this->set_locale();
65 // Handle plugin cookies (handle before any response is sent).
66 $this->loader->add_action( 'admin_init', $this, 'handle_plugin_cookies' );
67 // Add Code Manager specific actions.
68 $code_manager = null;
69 if ( null === $code_manager ) {
70 $code_manager = new \Code_Manager\Code_Manager();
71 }
72 $code_manager->add_actions( $this->loader );
73 $this->define_admin_hooks();
74 $this->define_public_hooks();
75 }
76
77 /**
78 * Load required dependencies
79 *
80 * Loads required plugin files and initiates the plugin loader.
81 *
82 * @since 1.0.0
83 *
84 * @see Code_Manager_Loader
85 */
86 private function load_dependencies()
87 {
88 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-code-manager-loader.php';
89 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-code-manager-i18n.php';
90 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-code-manager-admin.php';
91 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-code-manager-public.php';
92 $this->loader = new Code_Manager_Loader();
93 }
94
95 /**
96 * Set locale for internationalization
97 *
98 * @since 1.0.0
99 *
100 * @see Code_Manager_I18n
101 */
102 private function set_locale()
103 {
104 $code_manager_i18n = new Code_Manager_I18n();
105 $this->loader->add_action( 'init', $code_manager_i18n, 'load_plugin_textdomain' );
106 }
107
108 /**
109 * Add admin hooks
110 *
111 * Initiates {@see Code_Manager_Admin} (admin functionality).
112 * Adds admin actions to loader (see below).
113 *
114 * @since 1.0.0
115 *
116 * @see Code_Manager_Admin
117 */
118 private function define_admin_hooks()
119 {
120
121 if ( is_admin() && current_user_can( 'manage_options' ) ) {
122 $plugin_admin = new Code_Manager_Admin();
123 // Add plugin settings page.
124 $this->loader->add_action( 'admin_menu', $plugin_admin, 'code_manager_register_settings_page' );
125 // Admin plugin menu.
126 $this->loader->add_action( 'admin_menu', $plugin_admin, 'add_menu_items' );
127 $this->loader->add_filter( 'submenu_file', $plugin_admin, 'submenu_filter' );
128 // Add admin styles and scripts.
129 $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
130 $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
131 $this->loader->add_action( 'in_admin_header', $plugin_admin, 'user_admin_notices' );
132 }
133
134 }
135
136 /**
137 * Add public hooks
138 *
139 * Initiates {@see Code_Manager_Public} (public functionality).
140 *
141 * @since 1.0.0
142 *
143 * @see Code_Manager_Public
144 * @see Code_Manager
145 */
146 private function define_public_hooks()
147 {
148
149 if ( !is_admin() ) {
150 // Shortcodes.
151 $plugin_public = new Code_Manager_Public();
152 $this->loader->add_action( 'init', $plugin_public, 'register_shortcodes' );
153 // Public scripts.
154 $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
155 $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
156 }
157
158 }
159
160 /**
161 * Start plugin loader
162 *
163 * @since 1.0.0
164 */
165 public function run()
166 {
167 $this->loader->run();
168 }
169
170 /**
171 * Handle plugin cookies to remember list table search value and selected code type
172 *
173 * @since 1.0.0
174 */
175 public function handle_plugin_cookies()
176 {
177
178 if ( CODE_MANAGER_MENU_SLUG === $this->page ) {
179
180 if ( isset( $_REQUEST[CODE_MANAGER_SEARCH_ITEM_NAME] ) ) {
181 $search_value = sanitize_text_field( wp_unslash( $_REQUEST[CODE_MANAGER_SEARCH_ITEM_NAME] ) );
182 // input var okay.
183 setcookie( CODE_MANAGER_COOKIES_SEARCH, $search_value, time() + 3600 );
184 }
185
186
187 if ( isset( $_REQUEST[CODE_MANAGER_LIST_ITEM_NAME] ) ) {
188 $search_value = sanitize_text_field( wp_unslash( $_REQUEST[CODE_MANAGER_LIST_ITEM_NAME] ) );
189 // input var okay.
190 setcookie( CODE_MANAGER_COOKIES_LIST, $search_value, time() + 3600 );
191 }
192
193 }
194
195 }
196
197 }