PluginProbe ʕ •ᴥ•ʔ
Code Manager / 1.0.6
Code Manager v1.0.6
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 5 years ago class-code-manager-loader.php 5 years ago class-code-manager-switch.php 5 years ago class-code-manager.php 5 years ago
class-code-manager.php
179 lines
1 <?php
2
3 /**
4 * Class Code_Manager
5 *
6 * Core plugin class used to define:
7 * + admin specific functionality {@see Code_Manager_Admin}
8 * + public specific functionality {@see Code_Manager_Public}
9 * + internationalization {@see Code_Manager_i18n}
10 * + plugin activation and deactivation {@see Code_Manager_Loader}
11 *
12 * @author Peter Schulz
13 * @since 1.0.0
14 *
15 * @see Code_Manager_Admin
16 * @see Code_Manager_Public
17 * @see Code_Manager_i18n
18 * @see Code_Manager_Loader
19 */
20 class Code_Manager {
21
22 /**
23 * Handle to loader object
24 *
25 * @var Code_Manager_Loader
26 */
27 protected $loader;
28
29 /**
30 * Menu slug of current page
31 *
32 * @var string
33 */
34 protected $page;
35
36 /**
37 * Code_Manager constructor
38 *
39 * Calls method the following methods to setup plugin:
40 * + {@see Code_Manager::load_dependencies()}
41 * + {@see Code_Manager::set_locale()}
42 * + {@see Code_Manager::define_admin_hooks()}
43 * + {@see Code_Manager::define_public_hooks()}
44 *
45 * @since 1.0.0
46 *
47 * @see Code_Manager::load_dependencies()
48 * @see Code_Manager::set_locale()
49 * @see Code_Manager::define_admin_hooks()
50 * @see Code_Manager::define_public_hooks()
51 */
52 public function __construct() {
53 if ( isset( $_REQUEST['page'] ) ) {
54 $this->page = sanitize_text_field( wp_unslash( $_REQUEST['page'] ) ); // input var okay.
55 }
56
57 $this->load_dependencies();
58 $this->set_locale();
59
60 // Handle plugin cookies (handle before any response is send)
61 $this->loader->add_action( 'admin_init', $this, 'handle_plugin_cookies' );
62
63 // Add Code Manager specific actions
64 $code_manager_class = CODE_MANAGER_CLASS;
65 $code_manager = new $code_manager_class();
66 $code_manager->add_actions( $this->loader );
67
68 $this->define_admin_hooks();
69 $this->define_public_hooks();
70 }
71
72 /**
73 * Load required dependencies
74 *
75 * Loads required plugin files and initiates the plugin loader.
76 *
77 * @since 1.0.0
78 *
79 * @see Code_Manager_Loader
80 */
81 private function load_dependencies() {
82 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-code-manager-loader.php';
83 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-code-manager-i18n.php';
84 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-code-manager-admin.php';
85 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-code-manager-public.php';
86
87 $this->loader = new Code_Manager_Loader();
88 }
89
90 /**
91 * Set locale for internationalization
92 *
93 * @since 1.0.0
94 *
95 * @see Code_Manager_i18n
96 */
97 private function set_locale() {
98 $code_manager_i18n = new Code_Manager_i18n();
99 $this->loader->add_action( 'init', $code_manager_i18n, 'load_plugin_textdomain' );
100 }
101
102 /**
103 * Add admin hooks
104 *
105 * Initiates {@see Code_Manager_Admin} (admin functionality).
106 * Adds admin actions to loader (see below).
107 *
108 * @since 1.0.0
109 *
110 * @see Code_Manager_Admin
111 */
112 private function define_admin_hooks() {
113 if ( is_admin() && current_user_can( 'manage_options' ) ) {
114 $plugin_admin = new Code_Manager_Admin();
115
116 // Add plugin settings page
117 $this->loader->add_action('admin_menu', $plugin_admin, 'code_manager_register_settings_page');
118
119 // Admin plugin menu
120 $this->loader->add_action( 'admin_menu', $plugin_admin, 'add_menu_items' );
121
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 }
126 }
127
128 /**
129 * Add public hooks
130 *
131 * Initiates {@see Code_Manager_Public} (public functionality).
132 *
133 * @since 1.0.0
134 *
135 * @see Code_Manager_Public
136 * @see Code_Manager
137 */
138 private function define_public_hooks() {
139 if ( ! is_admin() ) {
140 // Shortcodes
141 $plugin_public = new Code_Manager_Public();
142 $this->loader->add_action( 'init', $plugin_public, 'register_shortcodes' );
143
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 ( $this->page === CODE_MANAGER_MENU_SLUG ) {
166 if ( isset( $_REQUEST[ CODE_MANAGER_SEARCH_ITEM_NAME ] ) ) {
167 $search_value = sanitize_text_field( wp_unslash( $_REQUEST[ CODE_MANAGER_SEARCH_ITEM_NAME ] ) ); // input var okay.
168 setcookie( CODE_MANAGER_COOKIES_SEARCH, $search_value, time() + 3600 );
169 }
170
171 if ( isset( $_REQUEST[ CODE_MANAGER_LIST_ITEM_NAME ] ) ) {
172 $search_value = sanitize_text_field( wp_unslash( $_REQUEST[ CODE_MANAGER_LIST_ITEM_NAME ] ) ); // input var okay.
173 setcookie( CODE_MANAGER_COOKIES_LIST, $search_value, time() + 3600 );
174 }
175 }
176 }
177
178 }
179