PluginProbe ʕ •ᴥ•ʔ
Code Manager / 1.0.37
Code Manager v1.0.37
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 1 year ago class-code-manager-loader.php 1 year ago class-code-manager-switch.php 1 year ago class-code-manager.php 1 year ago
class-code-manager.php
180 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 * Handle to loader object
28 *
29 * @var Code_Manager_Loader
30 */
31 protected $loader;
32
33 /**
34 * Menu slug of current page
35 *
36 * @var string
37 */
38 protected $page;
39
40 /**
41 * Code_Manager constructor
42 *
43 * Calls method the following methods to setup plugin:
44 * + {@see Code_Manager::load_dependencies()}
45 * + {@see Code_Manager::set_locale()}
46 * + {@see Code_Manager::define_admin_hooks()}
47 * + {@see Code_Manager::define_public_hooks()}
48 *
49 * @since 1.0.0
50 *
51 * @see Code_Manager::load_dependencies()
52 * @see Code_Manager::set_locale()
53 * @see Code_Manager::define_admin_hooks()
54 * @see Code_Manager::define_public_hooks()
55 */
56 public function __construct() {
57 if ( isset( $_REQUEST['page'] ) ) {
58 $this->page = sanitize_text_field( wp_unslash( $_REQUEST['page'] ) );
59 // input var okay.
60 }
61 $this->load_dependencies();
62 $this->set_locale();
63 // Handle plugin cookies (handle before any response is sent).
64 $this->loader->add_action( 'admin_init', $this, 'handle_plugin_cookies' );
65 // Add Code Manager specific actions.
66 $code_manager = null;
67 if ( null === $code_manager ) {
68 $code_manager = new \Code_Manager\Code_Manager();
69 }
70 $code_manager->add_actions( $this->loader );
71 $this->define_admin_hooks();
72 $this->define_public_hooks();
73 }
74
75 /**
76 * Load required dependencies
77 *
78 * Loads required plugin files and initiates the plugin loader.
79 *
80 * @since 1.0.0
81 *
82 * @see Code_Manager_Loader
83 */
84 private function load_dependencies() {
85 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-code-manager-loader.php';
86 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-code-manager-i18n.php';
87 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-code-manager-admin.php';
88 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-code-manager-public.php';
89 $this->loader = new Code_Manager_Loader();
90 }
91
92 /**
93 * Set locale for internationalization
94 *
95 * @since 1.0.0
96 *
97 * @see Code_Manager_I18n
98 */
99 private function set_locale() {
100 $code_manager_i18n = new Code_Manager_I18n();
101 $this->loader->add_action( 'init', $code_manager_i18n, 'load_plugin_textdomain' );
102 }
103
104 /**
105 * Add admin hooks
106 *
107 * Initiates {@see Code_Manager_Admin} (admin functionality).
108 * Adds admin actions to loader (see below).
109 *
110 * @since 1.0.0
111 *
112 * @see Code_Manager_Admin
113 */
114 private function define_admin_hooks() {
115 if ( is_admin() && current_user_can( 'manage_options' ) ) {
116 $plugin_admin = new Code_Manager_Admin();
117 // Add plugin settings page.
118 $this->loader->add_action( 'admin_menu', $plugin_admin, 'code_manager_register_settings_page' );
119 // Admin plugin menu.
120 $this->loader->add_action( 'admin_menu', $plugin_admin, 'add_menu_items' );
121 $this->loader->add_filter( 'submenu_file', $plugin_admin, 'submenu_filter' );
122 // Add admin styles and scripts.
123 $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
124 $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
125 $this->loader->add_action( 'in_admin_header', $plugin_admin, 'user_admin_notices' );
126 }
127 }
128
129 /**
130 * Add public hooks
131 *
132 * Initiates {@see Code_Manager_Public} (public functionality).
133 *
134 * @since 1.0.0
135 *
136 * @see Code_Manager_Public
137 * @see Code_Manager
138 */
139 private function define_public_hooks() {
140 if ( !is_admin() ) {
141 // Shortcodes.
142 $plugin_public = new Code_Manager_Public();
143 $this->loader->add_action( 'init', $plugin_public, 'register_shortcodes' );
144 // Public scripts.
145 $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
146 $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
147 }
148 }
149
150 /**
151 * Start plugin loader
152 *
153 * @since 1.0.0
154 */
155 public function run() {
156 $this->loader->run();
157 }
158
159 /**
160 * Handle plugin cookies to remember list table search value and selected code type
161 *
162 * @since 1.0.0
163 */
164 public function handle_plugin_cookies() {
165 if ( CODE_MANAGER_MENU_SLUG === $this->page ) {
166 if ( isset( $_REQUEST[CODE_MANAGER_SEARCH_ITEM_NAME] ) ) {
167 $search_value = sanitize_text_field( wp_unslash( $_REQUEST[CODE_MANAGER_SEARCH_ITEM_NAME] ) );
168 // input var okay.
169 setcookie( CODE_MANAGER_COOKIES_SEARCH, $search_value, time() + 3600 );
170 }
171 if ( isset( $_REQUEST[CODE_MANAGER_LIST_ITEM_NAME] ) ) {
172 $search_value = sanitize_text_field( wp_unslash( $_REQUEST[CODE_MANAGER_LIST_ITEM_NAME] ) );
173 // input var okay.
174 setcookie( CODE_MANAGER_COOKIES_LIST, $search_value, time() + 3600 );
175 }
176 }
177 }
178
179 }
180