PluginProbe
CSS & JavaScript Toolbox / 8.0.3
CSS & JavaScript Toolbox v8.0.3
trunk 0.3 0.8 10 10.1 11 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 11.9.1 12 12.0 12.0.1 12.0.3 12.0.4 12.0.5 12.0.6 12.0.7 6.0 6.0.11 All 60 releases
← All changes | css-js-toolbox.php +120 -212 12.0.48.0.3 View file →
@@ -1,48 +1,45 @@
1 1 <?php
2 2 /*
3 3 Plugin Name: CSS & JavaScript Toolbox
4 -Plugin URI: https://css-javascript-toolbox.com/
5 -Description: Easily add CSS, JavaScript, HTML and PHP code to unique CJT code blocks and assign them anywhere on your website.
6 -Version: 12.0.4
7 -Author: Wipeout Media
8 -Author URI: https://css-javascript-toolbox.com
9 -Text Domain: css-javascript-toolbox
10 -Domain Path: /locals/languages/
4 +Plugin URI: http://css-javascript-toolbox.com/
5 +Description: CJT Plugin for WordPress to easily add custom CSS and JavaScript to individual pages
6 +Version: 8.0.3
7 +Author: Wipeout Media
8 +Author URI: http://css-javascript-toolbox.com
11 9 License:
12 10
13 11 The Software is package as a WordPress¨ plugin. The PHP code associated with the Software is licensed under the GPL version 2.0 license (as found at http://www.gnu.org/licenses/gpl-2.0.txt GNU/GPLv2 or "GPLv2"). You may redistribute, repackage, and modify the PHP code as you see fit and as consistent with GPLv2.
14 12
15 -The remaining portions of the Software ("Proprietary Portion"), which includes all images, cascading style sheets, and JavaScript are NOT licensed under GPLv2 and are considered proprietary to Licensor and are solely licensed under the remaining terms of this Agreement. The Proprietary Portion may not be redistributed, repackaged, or otherwise modified.
13 +The remaining portions of the Software ("Proprietary Portion"), which includes all images, cascading style sheets, and JavaScript are NOT licensed under GPLv2 and are considered proprietary to Licensor and are solely licensed under the remaining terms of this Agreement. The Proprietary Portion may not be redistributed, repackaged, or otherwise modified.
16 14 */
17 15
18 16 // Disallow direct access.
19 -defined( 'ABSPATH' ) or die( 'Access denied' );
17 +defined('ABSPATH') or die("Access denied");
20 18
21 -
22 19 /** * */
23 -define( 'CJTOOLBOX_PLUGIN_BASE', basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ) );
20 +define('CJTOOLBOX_PLUGIN_BASE', basename(dirname(__FILE__)) . '/' . basename(__FILE__));
24 21
25 22 /** * */
26 -define( 'CJTOOLBOX_PLUGIN_FILE', __FILE__ );
23 +define('CJTOOLBOX_PLUGIN_FILE', __FILE__);
27 24
28 25 /** CJT Name */
29 -define( 'CJTOOLBOX_NAME', plugin_basename( dirname( __FILE__ ) ) );
26 +define('CJTOOLBOX_NAME', plugin_basename(dirname(__FILE__)));
30 27
31 28 /** CJT Text Domain used for localize texts */
32 -define( 'CJTOOLBOX_TEXT_DOMAIN', CJTOOLBOX_NAME );
29 +define('CJTOOLBOX_TEXT_DOMAIN', CJTOOLBOX_NAME);
33 30
34 31 /** */
35 -define( 'CJTOOLBOX_LANGUAGES', CJTOOLBOX_NAME . '/locals/languages/' );
32 +define('CJTOOLBOX_LANGUAGES', CJTOOLBOX_NAME . '/locals/languages/');
36 33
37 34 /** CJT Absoulte path */
38 -define( 'CJTOOLBOX_PATH', dirname( __FILE__ ) );
35 +define('CJTOOLBOX_PATH', dirname(__FILE__));
39 36
40 37 /** Dont use!! @deprecated */
41 -define( 'CJTOOLBOX_INCLUDE_PATH', CJTOOLBOX_PATH . '/framework' );
38 +define('CJTOOLBOX_INCLUDE_PATH', CJTOOLBOX_PATH . '/framework');
42 39
43 40 /** Access Points path */
44 -define( 'CJTOOLBOX_ACCESS_POINTS', CJTOOLBOX_PATH . '/access.points' );
41 +define('CJTOOLBOX_ACCESS_POINTS', CJTOOLBOX_PATH . '/access.points');
45 42
46 43 /** Frmaework path */
47 44 define('CJTOOLBOX_FRAMEWORK', CJTOOLBOX_INCLUDE_PATH); // Alias to include path!
48 45
@@ -57,355 +54,266 @@
57 54 require_once CJTOOLBOX_FRAMEWORK . '/events/hookable.interface.php';
58 55 require_once CJTOOLBOX_FRAMEWORK . '/events/hookable.class.php';
59 56
60 57 // Initialize events engine/system!
61 -CJTWordpressEvents::_init( array( 'hookType' => CJTWordpressEvents::HOOK_ACTION ) );
62 -CJTWordpressEvents::$paths[ 'subjects' ][ 'core' ] = CJTOOLBOX_FRAMEWORK . '/events/subjects';
63 -CJTWordpressEvents::$paths[ 'observers' ][ 'core' ] = CJTOOLBOX_FRAMEWORK . '/events/observers';
58 +CJTWordpressEvents::__init(array('hookType' => CJTWordpressEvents::HOOK_ACTION));
59 +CJTWordpressEvents::$paths['subjects']['core'] = CJTOOLBOX_FRAMEWORK . '/events/subjects';
60 +CJTWordpressEvents::$paths['observers']['core'] = CJTOOLBOX_FRAMEWORK . '/events/observers';
64 61
65 62 /**
66 63 * CJT Plugin interface.
67 -*
64 +*
68 65 * The CJT Plugin is maximum deferred.
69 66 * All functionality here is just to detect if the request should be processed!
70 -*
67 +*
71 68 * The main class is located css-js-toolbox.class.php cssJSToolbox class
72 69 * The plugin is fully developed using Model-View-Controller design pattern.
73 -*
70 +*
74 71 * access.points directory has all the entry points that processed by the Plugin.
75 -*
72 +*
76 73 * @package CJT
77 74 * @author Ahmed Said
78 75 * @version 6
79 76 */
80 -class CJTPlugin extends CJTHookableClass
81 -{
77 +class CJTPlugin extends CJTHookableClass {
82 78
83 79 /**
84 - *
80 + *
85 81 */
86 - const DB_VERSION = '1.7';
87 -
88 - /**
89 - * put your comment there...
90 - *
91 - * @var mixed
92 - */
93 - CONST ENV_PHP_MIN_VERSION = '5.3';
94 -
82 + const DB_VERSION = '1.6';
83 +
95 84 /**
96 - *
85 + *
97 86 */
98 - const FW_Version = '5.0';
99 -
87 + const FW_Version = '4.0';
88 +
100 89 /**
101 - *
90 + *
102 91 */
103 - const VERSION = '12.0.4';
104 -
92 + const VERSION = '8.0.3' ;
93 +
105 94 /**
106 - *
95 + *
107 96 */
108 97 const DB_VERSION_OPTION_NAME = 'cjtoolbox_db_version';
109 98
110 99 /**
111 - *
100 + *
112 101 */
113 102 const PLUGIN_REQUEST_ID = 'cjtoolbox';
114 -
103 +
115 104 /**
116 105 * put your comment there...
117 - *
106 + *
118 107 * @var mixed
119 108 */
120 109 protected $accessPoints;
121 -
110 +
122 111 /**
123 112 * put your comment there...
124 - *
113 + *
125 114 * @var mixed
126 115 */
127 116 protected $extensions;
128 -
117 +
129 118 /**
130 119 * put your comment there...
131 - *
120 + *
132 121 * @var mixed
133 122 */
134 123 protected $installed;
135 -
124 +
136 125 /**
137 126 * put your comment there...
138 - *
127 + *
139 128 * @var CJTPlugin
140 129 */
141 130 protected static $instance;
142 -
131 +
143 132 /**
144 133 * put your comment there...
145 - *
134 + *
146 135 * @var mixed
147 136 */
148 137 protected $mainAC;
149 -
138 +
150 139 /**
151 140 * put your comment there...
152 - *
141 + *
153 142 * @var mixed
154 143 */
155 - protected $onloaddbversion = array( 'parameters' => array( 'dbVersion' ) );
156 -
144 + protected $onloaddbversion = array('parameters' => array('dbVersion'));
145 +
157 146 /**
158 147 * put your comment there...
159 - *
148 + *
160 149 * @var mixed
161 150 */
162 - protected $onimportcontroller = array( 'parameters' => array( 'file' ) );
163 -
151 + protected $onimportbasefile = array('parameters' => array('file'));
152 +
164 153 /**
165 154 * put your comment there...
166 - *
155 + *
167 156 * @var mixed
168 157 */
169 - protected $onimportmodel = array( 'parameters' => array( 'file' ) );
170 -
158 + protected $onimportcontroller = array('parameters' => array('file'));
159 +
171 160 /**
172 161 * put your comment there...
173 - *
162 + *
174 163 * @var mixed
175 164 */
176 - protected $onload = array( 'parameters' => array( 'instance' ) );
165 + protected $onimportmodel = array('parameters' => array('file'));
166 +
167 + /**
168 + * put your comment there...
169 + *
170 + * @var mixed
171 + */
172 + protected $onload = array('parameters' => array('instance'));
177 173
178 174 /**
179 175 * put your comment there...
180 - *
176 + *
181 177 */
182 - protected function __construct()
183 - {
178 + protected function __construct() {
184 179 // Hookable!
185 180 parent::__construct();
186 -
187 181 // Allow access points to utilize from CJTPlugin functionality
188 182 // even if the call is recursive inside getInstance/construct methods!!!
189 - self::$instance = $this;
190 -
191 - // Installation version
192 - $dbVersion = $this->onloaddbversion( get_option( self::DB_VERSION_OPTION_NAME ) );
193 - $this->installed = ( ( $dbVersion ) == self::DB_VERSION );
194 -
183 + self::$instance = $this;
184 + // Read vars!
185 + $dbVersion = $this->onloaddbversion(get_option(self::DB_VERSION_OPTION_NAME));
186 + $this->installed = (($dbVersion) == self::DB_VERSION);
195 187 // Load plugin and all installed extensions!.
196 188 $this->load();
197 189 $this->loadExtensions();
198 -
199 190 // Run MAIN access point!
200 191 $this->main();
201 192 }
202 -
193 +
203 194 /**
204 195 * put your comment there...
205 - *
196 + *
206 197 */
207 - public function & extensions()
208 - {
209 - return $this->extensions;
198 + public function & extensions() {
199 + return $this->extensions;
210 200 }
211 -
201 +
212 202 /**
213 203 * put your comment there...
214 - *
204 + *
215 205 */
216 - public function getAccessPoint( $name )
217 - {
218 - return $this->accessPoints[ $name ];
206 + public function getAccessPoint($name) {
207 + return $this->accessPoints[$name];
219 208 }
220 -
209 +
221 210 /**
222 211 * put your comment there...
223 - *
212 + *
224 213 */
225 - public static function getInstance()
226 - {
227 -
228 - if ( ! self::$instance )
229 - {
214 + public static function getInstance() {
215 + if (!self::$instance) {
230 216 self::$instance = new CJTPlugin();
231 217 }
232 -
233 218 return self::$instance;
234 219 }
235 -
236 - /**
237 - * put your comment there...
238 - *
239 - */
240 - public static function isCompatibleEnvironment()
241 - {
242 -
243 - if ( version_compare( PHP_VERSION, self::ENV_PHP_MIN_VERSION, '<' ) )
244 - {
245 -
246 - $importHTMLFileCode = 'require "includes" . DIRECTORY_SEPARATOR . "html" . DIRECTORY_SEPARATOR . "incompatible_environment_message.html.php";';
247 -
248 - add_action( 'admin_notices', create_function( '', $importHTMLFileCode ) );
249 -
250 - return false;
251 - }
252 -
253 - return true;
254 - }
220 +
255 221 /**
256 222 * put your comment there...
257 - *
223 + *
258 224 */
259 - public function isInstalled()
260 - {
261 - return $this->installed;
225 + public function isInstalled() {
226 + return $this->installed;
262 227 }
263 -
228 +
264 229 /**
265 230 * put your comment there...
266 - *
231 + *
267 232 */
268 - public function listen()
269 - {
233 + public function listen() {
270 234 // For now we've only admin access points! Future versions might has something changed!
271 - if ( is_admin() )
272 - {
273 -
235 + if (is_admin()) {
274 236 // Import access points core classes.
275 237 require_once 'framework/access-points/page.class.php';
276 238 require_once 'framework/access-points/directory-spider.class.php';
277 -
278 239 // Get access points!
279 - $accessPoints = CJTAccessPointsDirectorySpider::getInstance( 'CJT', CJTOOLBOX_ACCESS_POINTS );
280 -
240 + $accessPoints = CJTAccessPointsDirectorySpider::getInstance('CJT', CJTOOLBOX_ACCESS_POINTS);
281 241 // For every access point create instance and LISTEN to the request!
282 - foreach ( $accessPoints as $name => $info )
283 - {
242 + foreach ($accessPoints as $name => $info) {
284 243 /**
285 244 * @var CJTAccessPoint
286 245 */
287 - $this->accessPoints[ $name ] = $point = $accessPoints->point()->listen();
288 -
246 + $this->accessPoints[$name] = $point = $accessPoints->point()->listen();
289 247 // We need to do some work with there is a connected access point.
290 - $point->onconnected = array( & $this, 'onconnected' );
291 -
248 + $point->onconnected = array(&$this, 'onconnected');
292 249 }
293 -
294 250 }
295 -
251 + // Chaining!
296 252 return $this;
297 253 }
298 -
254 +
299 255 /**
300 256 * put your comment there...
301 - *
257 + *
302 258 */
303 - protected function load()
304 - {
259 + protected function load() {
305 260 // Bootstrap the Plugin!
261 + require_once $this->onimportbasefile('css-js-toolbox.class.php');
306 262 cssJSToolbox::getInstance();
307 -
308 263 // Load MVC framework core!
309 - require_once $this->onimportmodel( CJTOOLBOX_MVC_FRAMEWOK . '/model.inc.php' );
310 - require_once $this->onimportcontroller( CJTOOLBOX_MVC_FRAMEWOK . '/controller.inc.php' );
311 -
264 + require_once $this->onimportmodel(CJTOOLBOX_MVC_FRAMEWOK . '/model.inc.php');
265 + require_once $this->onimportcontroller(CJTOOLBOX_MVC_FRAMEWOK . '/controller.inc.php');
266 + // Chaining!
312 267 return $this;
313 268 }
314 -
269 +
315 270 /**
316 271 * put your comment there...
317 - *
272 + *
318 273 */
319 - protected function loadExtensions()
320 - {
274 + protected function loadExtensions() {
321 275 // Load extensions lib!
322 276 require_once 'framework/extensions/extensions.class.php';
323 -
324 277 $this->extensions = new CJTExtensions();
278 + // Load all extensions!
325 279 $this->extensions->load();
326 -
280 + // Chaining!
327 281 return $this;
328 282 }
329 -
283 +
330 284 /**
331 285 * Run MAIN access point!
332 - *
286 + *
333 287 * @return $this
334 288 */
335 - protected function main()
336 - {
289 + protected function main() {
337 290 // Fire laod event
338 - $this->onload( $this );
339 -
291 + $this->onload($this);
340 292 // Access point base class is a dependency!
341 293 require_once 'framework/access-points/access-point.class.php';
342 -
343 294 // Run Main Acces Point!
344 295 include_once 'access.points/main.accesspoint.php';
345 -
346 296 $this->mainAC = new CJTMainAccessPoint();
347 297 $this->mainAC->listen();
348 298 }
349 -
299 +
350 300 /**
351 - * Called When any In-Listen-State (ILS) Access point is
301 + * Called When any In-Listen-State (ILS) Access point is
352 302 * connected (called by Wordpress hooking system).
353 - *
303 + *
354 304 * @return boolean TRUE.
355 305 */
356 - public function onconnected( $observer, $state )
357 - {
358 - // Always connect the access point!
306 + public function onconnected($observer, $state) {
307 + // In all cases that we'll process the request load the localization file.
308 + load_plugin_textdomain(CJTOOLBOX_TEXT_DOMAIN, false, CJTOOLBOX_LANGUAGES);
309 + // Always connet the access point!
359 310 return $state;
360 311 }
361 -
312 +
362 313 }// End Class
363 314
364 -// Dont run if environment (e.g PHP version) is incomaptible
365 -if ( ! CJTPlugin::isCompatibleEnvironment() )
366 -{
367 - return;
368 -}
369 -
370 315 // Initialize events!
371 -CJTPlugin::define( 'CJTPlugin', array( 'hookType' => CJTWordpressEvents::HOOK_FILTER ) );
316 +CJTPlugin::define('CJTPlugin', array('hookType' => CJTWordpressEvents::HOOK_FILTER));
372 317
373 318 // Let's Go!
374 -function deprecatedPHPCheck()
375 -{ ?>
376 - <div class="notice notice-error">
377 - <p><strong>CJT</strong>: CSS & JavaScript Toolbox need PHP version 7.3 or greater to operate properly. Please ask your hosting provider to update the PHP version.<br>
378 - Current PHP Version: <strong><?php echo phpversion(); ?></strong>
379 - </p>
380 - </div>
381 -<?php }
382 -
383 -if ( version_compare( phpversion(), 7, '>=' ) ) {
384 - CJTPlugin::getInstance();
385 -} else {
386 - add_action( 'admin_notices', 'deprecatedPHPCheck' );
387 -}
388 -
389 -add_action( 'upgrader_process_complete', 'upgradeCheck',10, 2 );
390 -
391 -function upgradeCheck( $upgrader_object, $options ) {
392 - $CJTPluginPath = plugin_basename( __FILE__ );
393 -
394 - global $wpdb;
395 - $table_name = $wpdb->base_prefix.'cjtoolbox_blocks';
396 - $query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table_name ) );
397 - $preCheck = get_option( '__existing_cjt_user' );
398 -
399 - if ( $options['action'] == 'update' && $options['type'] == 'plugin' ) {
400 - foreach( $options['plugins'] as $each_plugin ) {
401 - if ( $each_plugin == $CJTPluginPath ) {
402 - $preCheck = get_option( '__existing_cjt_user' );
403 -
404 - // Only create it once.
405 - if ( empty( $preCheck ) ) {
406 - update_option( '__existing_cjt_user', $wpdb->get_var( $query ) === $table_name ? 'true' : 'false' );
407 - }
408 - }
409 - }
410 - }
411 -}
319 +CJTPlugin::getInstance();