PluginProbe
CSS & JavaScript Toolbox / 6.0.9
CSS & JavaScript Toolbox v6.0.9
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 +122 -221 12.0.46.0.9 View file →
@@ -1,55 +1,59 @@
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/
11 -License:
4 +Plugin URI: http://css-javascript-toolbox.com/css-javascript-toolbox-free
5 +Description: CJT Plugin for WordPress to easily add custom CSS and JavaScript to individual pages
6 +Version: 6.0.9
7 +Author: Wipeout Media
8 +Author URI: http://css-javascript-toolbox.com/
12 9
13 -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.
10 +Copyright (c) 2011, Wipeout Media.
11 +This program is free software; you can redistribute it and/or
12 +modify it under the terms of the GNU General Public License
13 +as published by the Free Software Foundation; either version 2
14 +of the License, or (at your option) any later version.
14 15
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.
16 +This program is distributed in the hope that it will be useful,
17 +but WITHOUT ANY WARRANTY; without even the implied warranty of
18 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 +GNU General Public License for more details.
20 +
21 +You should have received a copy of the GNU General Public License
22 +along with this program; if not, write to the Free Software
23 +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 24 */
17 25
18 26 // Disallow direct access.
19 -defined( 'ABSPATH' ) or die( 'Access denied' );
27 +defined('ABSPATH') or die("Access denied");
20 28
21 -
22 29 /** * */
23 -define( 'CJTOOLBOX_PLUGIN_BASE', basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ) );
30 +define('CJTOOLBOX_PLUGIN_BASE', basename(dirname(__FILE__)) . '/' . basename(__FILE__));
24 31
25 32 /** * */
26 -define( 'CJTOOLBOX_PLUGIN_FILE', __FILE__ );
33 +define('CJTOOLBOX_PLUGIN_FILE', __FILE__);
27 34
28 35 /** CJT Name */
29 -define( 'CJTOOLBOX_NAME', plugin_basename( dirname( __FILE__ ) ) );
36 +define('CJTOOLBOX_NAME', plugin_basename(dirname(__FILE__)));
30 37
31 38 /** CJT Text Domain used for localize texts */
32 -define( 'CJTOOLBOX_TEXT_DOMAIN', CJTOOLBOX_NAME );
39 +define('CJTOOLBOX_TEXT_DOMAIN', CJTOOLBOX_NAME);
33 40
34 41 /** */
35 -define( 'CJTOOLBOX_LANGUAGES', CJTOOLBOX_NAME . '/locals/languages/' );
42 +define('CJTOOLBOX_LANGUAGES', CJTOOLBOX_NAME . '/locals/languages/');
36 43
37 44 /** CJT Absoulte path */
38 -define( 'CJTOOLBOX_PATH', dirname( __FILE__ ) );
45 +define('CJTOOLBOX_PATH', dirname(__FILE__));
39 46
40 47 /** Dont use!! @deprecated */
41 -define( 'CJTOOLBOX_INCLUDE_PATH', CJTOOLBOX_PATH . '/framework' );
48 +define('CJTOOLBOX_INCLUDE_PATH', CJTOOLBOX_PATH . '/framework');
42 49
43 50 /** Access Points path */
44 -define( 'CJTOOLBOX_ACCESS_POINTS', CJTOOLBOX_PATH . '/access.points' );
51 +define('CJTOOLBOX_ACCESS_POINTS', CJTOOLBOX_PATH . '/access.points');
45 52
46 53 /** Frmaework path */
47 54 define('CJTOOLBOX_FRAMEWORK', CJTOOLBOX_INCLUDE_PATH); // Alias to include path!
48 55
49 -// Class Autoload Added @since 6.2.
50 -require 'autoload.inc.php';
51 -
52 56 // Import dependencies
53 57 require_once CJTOOLBOX_FRAMEWORK . '/php/includes.class.php';
54 58 require_once CJTOOLBOX_FRAMEWORK . '/events/definition.class.php';
55 59 require_once CJTOOLBOX_FRAMEWORK . '/events/events.class.php';
@@ -57,355 +61,252 @@
57 61 require_once CJTOOLBOX_FRAMEWORK . '/events/hookable.interface.php';
58 62 require_once CJTOOLBOX_FRAMEWORK . '/events/hookable.class.php';
59 63
60 64 // 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';
65 +CJTWordpressEvents::__init(array('hookType' => CJTWordpressEvents::HOOK_ACTION));
66 +CJTWordpressEvents::$paths['subjects']['core'] = CJTOOLBOX_FRAMEWORK . '/events/subjects';
67 +CJTWordpressEvents::$paths['observers']['core'] = CJTOOLBOX_FRAMEWORK . '/events/observers';
64 68
65 69 /**
66 70 * CJT Plugin interface.
67 -*
71 +*
68 72 * The CJT Plugin is maximum deferred.
69 73 * All functionality here is just to detect if the request should be processed!
70 -*
74 +*
71 75 * The main class is located css-js-toolbox.class.php cssJSToolbox class
72 76 * The plugin is fully developed using Model-View-Controller design pattern.
73 -*
77 +*
74 78 * access.points directory has all the entry points that processed by the Plugin.
75 -*
79 +*
76 80 * @package CJT
77 81 * @author Ahmed Said
78 82 * @version 6
79 83 */
80 -class CJTPlugin extends CJTHookableClass
81 -{
84 +class CJTPlugin extends CJTHookableClass {
82 85
83 86 /**
84 - *
87 + *
85 88 */
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 -
89 + const DB_VERSION = '1.0-CE';
90 +
95 91 /**
96 - *
92 + *
97 93 */
98 - const FW_Version = '5.0';
99 -
94 + const VERSION = '6.0 CE' ;
95 +
100 96 /**
101 - *
97 + *
102 98 */
103 - const VERSION = '12.0.4';
104 -
105 - /**
106 - *
107 - */
108 99 const DB_VERSION_OPTION_NAME = 'cjtoolbox_db_version';
109 100
110 101 /**
111 - *
102 + *
112 103 */
113 104 const PLUGIN_REQUEST_ID = 'cjtoolbox';
114 -
105 +
115 106 /**
116 107 * put your comment there...
117 - *
108 + *
118 109 * @var mixed
119 110 */
120 111 protected $accessPoints;
121 -
112 +
122 113 /**
123 114 * put your comment there...
124 - *
115 + *
125 116 * @var mixed
126 117 */
127 118 protected $extensions;
128 -
119 +
129 120 /**
130 121 * put your comment there...
131 - *
122 + *
132 123 * @var mixed
133 124 */
134 125 protected $installed;
135 -
126 +
136 127 /**
137 128 * put your comment there...
138 - *
129 + *
139 130 * @var CJTPlugin
140 131 */
141 132 protected static $instance;
142 -
133 +
143 134 /**
144 135 * put your comment there...
145 - *
136 + *
146 137 * @var mixed
147 138 */
148 139 protected $mainAC;
149 -
140 +
150 141 /**
151 142 * put your comment there...
152 - *
143 + *
153 144 * @var mixed
154 145 */
155 - protected $onloaddbversion = array( 'parameters' => array( 'dbVersion' ) );
156 -
146 + protected $onloaddbversion = array('parameters' => array('dbVersion'));
147 +
157 148 /**
158 149 * put your comment there...
159 - *
150 + *
160 151 * @var mixed
161 152 */
162 - protected $onimportcontroller = array( 'parameters' => array( 'file' ) );
163 -
153 + protected $onimportbasefile = array('parameters' => array('file'));
154 +
164 155 /**
165 156 * put your comment there...
166 - *
157 + *
167 158 * @var mixed
168 159 */
169 - protected $onimportmodel = array( 'parameters' => array( 'file' ) );
170 -
160 + protected $onimportcontroller = array('parameters' => array('file'));
161 +
171 162 /**
172 163 * put your comment there...
173 - *
164 + *
174 165 * @var mixed
175 166 */
176 - protected $onload = array( 'parameters' => array( 'instance' ) );
177 -
167 + protected $onimportmodel = array('parameters' => array('file'));
168 +
178 169 /**
179 170 * put your comment there...
180 - *
171 + *
181 172 */
182 - protected function __construct()
183 - {
173 + protected function __construct() {
184 174 // Hookable!
185 175 parent::__construct();
186 -
187 176 // Allow access points to utilize from CJTPlugin functionality
188 177 // 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 -
178 + self::$instance = $this;
179 + // Read vars!
180 + $dbVersion = $this->onloaddbversion(get_option(self::DB_VERSION_OPTION_NAME));
181 + $this->installed = (($dbVersion) == self::DB_VERSION);
195 182 // Load plugin and all installed extensions!.
196 183 $this->load();
197 184 $this->loadExtensions();
198 -
199 185 // Run MAIN access point!
200 186 $this->main();
201 187 }
202 -
188 +
203 189 /**
204 190 * put your comment there...
205 - *
191 + *
206 192 */
207 - public function & extensions()
208 - {
209 - return $this->extensions;
193 + public function extensions() {
194 + return $this->extensions;
210 195 }
211 -
196 +
212 197 /**
213 198 * put your comment there...
214 - *
199 + *
215 200 */
216 - public function getAccessPoint( $name )
217 - {
218 - return $this->accessPoints[ $name ];
201 + public function getAccessPoint($name) {
202 + return $this->accessPoints[$name];
219 203 }
220 -
204 +
221 205 /**
222 206 * put your comment there...
223 - *
207 + *
224 208 */
225 - public static function getInstance()
226 - {
227 -
228 - if ( ! self::$instance )
229 - {
209 + public static function getInstance() {
210 + if (!self::$instance) {
230 211 self::$instance = new CJTPlugin();
231 212 }
232 -
233 213 return self::$instance;
234 214 }
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 - }
215 +
255 216 /**
256 217 * put your comment there...
257 - *
218 + *
258 219 */
259 - public function isInstalled()
260 - {
261 - return $this->installed;
220 + public function isInstalled() {
221 + return $this->installed;
262 222 }
263 -
223 +
264 224 /**
265 225 * put your comment there...
266 - *
226 + *
267 227 */
268 - public function listen()
269 - {
228 + public function listen() {
270 229 // For now we've only admin access points! Future versions might has something changed!
271 - if ( is_admin() )
272 - {
273 -
230 + if (is_admin()) {
274 231 // Import access points core classes.
275 232 require_once 'framework/access-points/page.class.php';
276 233 require_once 'framework/access-points/directory-spider.class.php';
277 -
278 234 // Get access points!
279 - $accessPoints = CJTAccessPointsDirectorySpider::getInstance( 'CJT', CJTOOLBOX_ACCESS_POINTS );
280 -
235 + $accessPoints = CJTAccessPointsDirectorySpider::getInstance('CJT', CJTOOLBOX_ACCESS_POINTS);
281 236 // For every access point create instance and LISTEN to the request!
282 - foreach ( $accessPoints as $name => $info )
283 - {
237 + foreach ($accessPoints as $name => $info) {
284 238 /**
285 239 * @var CJTAccessPoint
286 240 */
287 - $this->accessPoints[ $name ] = $point = $accessPoints->point()->listen();
288 -
241 + $this->accessPoints[$name] = $point = $accessPoints->point()->listen();
289 242 // We need to do some work with there is a connected access point.
290 - $point->onconnected = array( & $this, 'onconnected' );
291 -
243 + $point->onconnected = array(&$this, 'onconnected');
292 244 }
293 -
294 245 }
295 -
246 + // Chaining!
296 247 return $this;
297 248 }
298 -
249 +
299 250 /**
300 251 * put your comment there...
301 - *
252 + *
302 253 */
303 - protected function load()
304 - {
254 + protected function load() {
305 255 // Bootstrap the Plugin!
256 + require_once $this->onimportbasefile('css-js-toolbox.class.php');
306 257 cssJSToolbox::getInstance();
307 -
308 258 // 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 -
259 + require_once $this->onimportmodel(CJTOOLBOX_MVC_FRAMEWOK . '/model.inc.php');
260 + require_once $this->onimportcontroller(CJTOOLBOX_MVC_FRAMEWOK . '/controller.inc.php');
261 + // Chaining!
312 262 return $this;
313 263 }
314 -
264 +
315 265 /**
316 266 * put your comment there...
317 - *
267 + *
318 268 */
319 - protected function loadExtensions()
320 - {
269 + protected function loadExtensions() {
321 270 // Load extensions lib!
322 271 require_once 'framework/extensions/extensions.class.php';
323 -
324 272 $this->extensions = new CJTExtensions();
273 + // Load all extensions!
325 274 $this->extensions->load();
326 -
275 + // Chaining!
327 276 return $this;
328 277 }
329 -
278 +
330 279 /**
331 280 * Run MAIN access point!
332 - *
281 + *
333 282 * @return $this
334 283 */
335 - protected function main()
336 - {
337 - // Fire laod event
338 - $this->onload( $this );
339 -
284 + protected function main() {
340 285 // Access point base class is a dependency!
341 286 require_once 'framework/access-points/access-point.class.php';
342 -
343 287 // Run Main Acces Point!
344 288 include_once 'access.points/main.accesspoint.php';
345 -
346 289 $this->mainAC = new CJTMainAccessPoint();
347 290 $this->mainAC->listen();
348 291 }
349 -
292 +
350 293 /**
351 - * Called When any In-Listen-State (ILS) Access point is
294 + * Called When any In-Listen-State (ILS) Access point is
352 295 * connected (called by Wordpress hooking system).
353 - *
296 + *
354 297 * @return boolean TRUE.
355 298 */
356 - public function onconnected( $observer, $state )
357 - {
358 - // Always connect the access point!
299 + public function onconnected($observer, $state) {
300 + // In all cases that we'll process the request load the localization file.
301 + load_plugin_textdomain(CJTOOLBOX_TEXT_DOMAIN, false, CJTOOLBOX_LANGUAGES);
302 + // Always connet the access point!
359 303 return $state;
360 304 }
361 -
305 +
362 306 }// End Class
363 307
364 -// Dont run if environment (e.g PHP version) is incomaptible
365 -if ( ! CJTPlugin::isCompatibleEnvironment() )
366 -{
367 - return;
368 -}
369 -
370 308 // Initialize events!
371 -CJTPlugin::define( 'CJTPlugin', array( 'hookType' => CJTWordpressEvents::HOOK_FILTER ) );
309 +CJTPlugin::define('CJTPlugin', array('hookType' => CJTWordpressEvents::HOOK_FILTER));
372 310
373 311 // 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 -}
312 +CJTPlugin::getInstance();