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