PluginProbe ʕ •ᴥ•ʔ
Code Manager / 1.0.16
Code Manager v1.0.16
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 4 years ago class-code-manager-loader.php 4 years ago class-code-manager-switch.php 4 years ago class-code-manager.php 4 years ago
class-code-manager.php
186 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 send).
66 $this->loader->add_action( 'admin_init', $this, 'handle_plugin_cookies' );
67
68 // Add Code Manager specific actions.
69 $code_manager_class = CODE_MANAGER_CLASS;
70 $code_manager = new $code_manager_class();
71 $code_manager->add_actions( $this->loader );
72
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 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-code-manager-loader.php';
88 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-code-manager-i18n.php';
89 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-code-manager-admin.php';
90 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-code-manager-public.php';
91
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 $code_manager_i18n = new Code_Manager_I18n();
104 $this->loader->add_action( 'init', $code_manager_i18n, 'load_plugin_textdomain' );
105 }
106
107 /**
108 * Add admin hooks
109 *
110 * Initiates {@see Code_Manager_Admin} (admin functionality).
111 * Adds admin actions to loader (see below).
112 *
113 * @since 1.0.0
114 *
115 * @see Code_Manager_Admin
116 */
117 private function define_admin_hooks() {
118 if ( is_admin() && current_user_can( 'manage_options' ) ) {
119 $plugin_admin = new Code_Manager_Admin();
120
121 // Add plugin settings page.
122 $this->loader->add_action( 'admin_menu', $plugin_admin, 'code_manager_register_settings_page' );
123
124 // Admin plugin menu.
125 $this->loader->add_action( 'admin_menu', $plugin_admin, 'add_menu_items' );
126 $this->loader->add_filter( 'submenu_file', $plugin_admin, 'submenu_filter' );
127
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 * Add public hooks
137 *
138 * Initiates {@see Code_Manager_Public} (public functionality).
139 *
140 * @since 1.0.0
141 *
142 * @see Code_Manager_Public
143 * @see Code_Manager
144 */
145 private function define_public_hooks() {
146 if ( ! is_admin() ) {
147 // Shortcodes.
148 $plugin_public = new Code_Manager_Public();
149 $this->loader->add_action( 'init', $plugin_public, 'register_shortcodes' );
150
151 // Public scripts.
152 $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
153 $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
154 }
155 }
156
157 /**
158 * Start plugin loader
159 *
160 * @since 1.0.0
161 */
162 public function run() {
163 $this->loader->run();
164 }
165
166 /**
167 * Handle plugin cookies to remember list table search value and selected code type
168 *
169 * @since 1.0.0
170 */
171 public function handle_plugin_cookies() {
172 if ( CODE_MANAGER_MENU_SLUG === $this->page ) {
173 if ( isset( $_REQUEST[ CODE_MANAGER_SEARCH_ITEM_NAME ] ) ) {
174 $search_value = sanitize_text_field( wp_unslash( $_REQUEST[ CODE_MANAGER_SEARCH_ITEM_NAME ] ) ); // input var okay.
175 setcookie( CODE_MANAGER_COOKIES_SEARCH, $search_value, time() + 3600 );
176 }
177
178 if ( isset( $_REQUEST[ CODE_MANAGER_LIST_ITEM_NAME ] ) ) {
179 $search_value = sanitize_text_field( wp_unslash( $_REQUEST[ CODE_MANAGER_LIST_ITEM_NAME ] ) ); // input var okay.
180 setcookie( CODE_MANAGER_COOKIES_LIST, $search_value, time() + 3600 );
181 }
182 }
183 }
184
185 }
186