CSS & JavaScript Toolbox - Version 8.0.4

Version Description

  • Check Wordpress 4.3 compatibility
  • List future deprecated features
Download this release

Release Info

Developer wipeoutmedia
Plugin Icon 128x128 CSS & JavaScript Toolbox
Version 8.0.4
Comparing to
See all releases

Code changes from version 8.0.3 to 8.0.4

access.points/extensions.accesspoint.php CHANGED
@@ -19,7 +19,7 @@ class CJTExtensionsAccessPoint extends CJTAccessPoint {
19
  /**
20
  *
21
  */
22
- const PLUGINS_PAGE_SEARCH_TERM = 'CJT-Extension';
23
 
24
  /**
25
  * put your comment there...
19
  /**
20
  *
21
  */
22
+ const PLUGINS_PAGE_SEARCH_TERM = 'css-javascript-toolbox';
23
 
24
  /**
25
  * put your comment there...
access.points/main.accesspoint.php CHANGED
@@ -31,6 +31,36 @@ class CJTMainAccessPoint extends CJTAccessPoint {
31
  self::$instance = $this;
32
  }
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  /**
35
  * put your comment there...
36
  *
@@ -44,6 +74,8 @@ class CJTMainAccessPoint extends CJTAccessPoint {
44
  // If not in uninstall state then plugins_loaded hook
45
  // used to run the plugin!
46
  add_action('plugins_loaded', array(&$this, 'main'));
 
 
47
  }
48
 
49
  /**
31
  self::$instance = $this;
32
  }
33
 
34
+ /**
35
+ * put your comment there...
36
+ *
37
+ */
38
+ public function _adminNotice() {
39
+ # Initialize
40
+ static $displayed = 0;
41
+
42
+ # Display only for admins
43
+ if ( ! current_user_can( 'administrator' ) ) {
44
+ return;
45
+ }
46
+
47
+ # Dismiss if dimisssed
48
+ if( isset( $_GET[ 'cjtgp-dismiss-803-notice' ] ) ) {
49
+ update_user_meta( get_current_user_id(), 'cjtgp-dismiss-803-notice', true );
50
+ }
51
+ # Exit if dismissed
52
+ if ( get_user_meta( get_current_user_id(), 'cjtgp-dismiss-803-notice' ) ) {
53
+ return;
54
+ }
55
+ # Admin notices might run twice!!
56
+ if( ! $displayed ) {
57
+ # Don't display again
58
+ $displayed = true;
59
+ # Display notice
60
+ require __DIR__ . DIRECTORY_SEPARATOR . 'main' . DIRECTORY_SEPARATOR . '8.0.4-AdminNotice.html';
61
+ }
62
+ }
63
+
64
  /**
65
  * put your comment there...
66
  *
74
  // If not in uninstall state then plugins_loaded hook
75
  // used to run the plugin!
76
  add_action('plugins_loaded', array(&$this, 'main'));
77
+ # Admin NOTICE
78
+ add_action( 'admin_notices', array( $this, '_adminNotice' ) );
79
  }
80
 
81
  /**
access.points/main/8.0.4-AdminNotice.html ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <style type="text/css">
2
+ .cjt-notice strong {
3
+ font-size: 18px;
4
+ color: black;
5
+ display: inline-block;
6
+ padding: 12px 0;
7
+ }
8
+ .cjt-notice {
9
+ background-color: rgba(250, 242, 234, 0.6);
10
+ padding-bottom: 14px;
11
+ -webkit-box-shadow: 0px 0px 0px 3px #D07B32;
12
+ -moz-box-shadow: 0px 0px 0px 3px #D07B32;
13
+ box-shadow: 0px 0px 0px 3px #D07B32;
14
+ width: 97%;
15
+ margin-top: 35px;
16
+ padding: 0 10px 10px;
17
+ position: relative;
18
+ }
19
+ .cjt-notice p {
20
+ margin: 0 0 0 0 !important;
21
+ padding: 0 !important;
22
+ }
23
+ .cjt-notice #cjtgp-dismiss {
24
+ width: 16px;
25
+ height: 16px;
26
+ display: inline-block;
27
+ position: absolute;
28
+ right: 40px;
29
+ top: 5px;
30
+ text-decoration: underline;
31
+ color: #8B2F09;
32
+ font-size: 12px;
33
+ font-weight: bold;
34
+ }
35
+
36
+ .cjt-notice #cjtgp-dismiss:hover {
37
+ color: black;
38
+ }
39
+
40
+ .cjt-notice a {
41
+ color:#D07B32;
42
+ }
43
+ </style>
44
+ <div class='cjt-notice'>
45
+ <strong>CSS & JavaScript Toolbox - Important Notice!!!</strong>
46
+ <a id="cjtgp-dismiss" href="javascript:void(cjtDismiss803Notice())">Close</a>
47
+ <p>
48
+ For the next update (not this one), we will be removing features from CSS & JavaScript Toolbox Free including: Custom Posts, Categories, Auxiliary assignments (e.g. entire website,
49
+ website backend, etc), Advanced assignments (i.e. URLs and Expressions), Code Files, Code Templates, Template Lookup System, and Script Packages.
50
+ Unfortunately we will not be providing any support or solutions to help you get things to work. You will either need to get <a target='_blank' href='http://css-javascript-toolbox.com/css-javascript-toolbox-plus/'>CSS & JavaScript Toolbox PLUS</a> or revert back to the previous
51
+ version of CJT Free (v8.0.3 or less).
52
+ </p>
53
+ <br />
54
+ <p>IF you want to retain these features and a lot more, consider purchasing <a target='_blank' href='http://css-javascript-toolbox.com/css-javascript-toolbox-plus/'>CSS & JavaScript Toolbox PLUS</a></p>
55
+ </div>
56
+ <script type="text/javascript">
57
+ function cjtDismiss803Notice() {
58
+ // Refresh the page with new parameter added
59
+ var url = window.location.href;
60
+ // Use ? if no query string in current url or use & instead
61
+ url += ( url.indexOf( '?' ) != -1 ) ? '&' : '?';
62
+ // Add query string parameter
63
+ url += 'cjtgp-dismiss-803-notice=true';
64
+ // Refresh
65
+ window.location.href = url;
66
+ }
67
+ </script>
autoload.inc.php CHANGED
@@ -23,3 +23,7 @@ $map->offsetSet('CJTBlockModel', 'models/block.php');
23
  $map->offsetSet('CJTBlocksModel', 'models/blocks.php');
24
  $map->offsetSet('CJTAccessPoint', 'framework/access-points/access-point.class.php');
25
  $map->offsetSet('CJTPageAccessPoint', 'framework/access-points/page.class.php');
 
 
 
 
23
  $map->offsetSet('CJTBlocksModel', 'models/blocks.php');
24
  $map->offsetSet('CJTAccessPoint', 'framework/access-points/access-point.class.php');
25
  $map->offsetSet('CJTPageAccessPoint', 'framework/access-points/page.class.php');
26
+
27
+
28
+ # Composer Autoloads (All the above autoloads is deprecated and will be revmoed later)
29
+ require 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
composer.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name" : "css-javascript-toolbox/css-javascript-toolbox",
3
+ "description" : "CSS & JavaScript Toolbox Plugin",
4
+ "autoload" : {
5
+ "classmap" : [
6
+ "framework/"
7
+ ]
8
+ }
9
+ }
controllers/auto-upgrade.php CHANGED
@@ -30,8 +30,6 @@ class CJTAutoUpgradeController extends CJTController {
30
  // Get all CJT-Plugins (Include CJT Plugin itself + all its extensions) that has activate
31
  // license key!
32
  $activeLicenses = $model->getStatedLicenses();
33
- // Import EDD updater Class!
34
- cssJSToolbox::import('framework:third-party:easy-digital-download:auto-upgrade.class.php');
35
  // Activate Automatic upgrade for all activated licenses/components!
36
  foreach ($activeLicenses as $name => $state) {
37
  // Get extension def doc.
@@ -43,19 +41,14 @@ class CJTAutoUpgradeController extends CJTController {
43
  if (!$updateSrcServer || ($updateSrcServer == 'CJT')) {
44
  // Initializingn vars for a single state/component!
45
  $pluginFile = ABSPATH . PLUGINDIR . '/' . $state['component']['pluginBase'];
46
- // Stop using Cached Data as it causes issue, always
47
- // get fresh plugin data.
48
- $plugin = get_plugin_data($pluginFile);
49
  $license =& $state['license'];
50
- // Edd API parameter to be send along with he check!
51
- $requestParams= array(
52
- 'version' => $plugin['Version'],
53
- 'author' => $plugin['AuthorName'],
54
- 'license' => $license['key'],
55
- 'item_name' => $name,
56
- );
57
  // Set EDD Automatic Updater!
58
- $updated = new CJT_EDD_SL_Plugin_Updater($cjtWebServer, $pluginFile, $requestParams);
 
 
 
 
 
59
  }
60
  }
61
  }
30
  // Get all CJT-Plugins (Include CJT Plugin itself + all its extensions) that has activate
31
  // license key!
32
  $activeLicenses = $model->getStatedLicenses();
 
 
33
  // Activate Automatic upgrade for all activated licenses/components!
34
  foreach ($activeLicenses as $name => $state) {
35
  // Get extension def doc.
41
  if (!$updateSrcServer || ($updateSrcServer == 'CJT')) {
42
  // Initializingn vars for a single state/component!
43
  $pluginFile = ABSPATH . PLUGINDIR . '/' . $state['component']['pluginBase'];
 
 
 
44
  $license =& $state['license'];
 
 
 
 
 
 
 
45
  // Set EDD Automatic Updater!
46
+ try {
47
+ CJTStoreUpdate::autoUpgrade( $name, $license[ 'key' ], $pluginFile );
48
+ }
49
+ catch ( CJTServicesAPICallException $exception ) {
50
+ die( 'CJT AUTO-UPGRADE EXCAPTION!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' );
51
+ }
52
  }
53
  }
54
  }
controllers/setup.php CHANGED
@@ -60,28 +60,15 @@ class CJTsetupController extends CJTAjaxController {
60
  */
61
  protected function licenseAction() {
62
  // Read request parameters!
63
- $action = $_REQUEST['eddAction'];
64
  $state['component'] = $_REQUEST['component'];
65
  $state['license'] = $_REQUEST['license'];
66
  // Initializing!
67
  $model =& $this->model;
68
  // Request EDD through EDD SL APIs!
69
- $state['response'] = $model->dispatchEddCall($action, $state['component'], $state['license']);
70
- // Standarize response object! As check and activate responde by 'valid' and 'invalid' and deactivate responde
71
- // by deactivated and faild we then need to make them all likce check and activate!
72
- if (($action == 'deactivate') && ($state['response']['license'] != 'error')) {
73
- $map = array('deactivated' => 'valid', 'failed' => 'invalid');
74
- $deactivateResponseState = $state['response']['license'];
75
- $state['response']['license'] = $map[$deactivateResponseState];
76
- }
77
  // Cahe only if the request is 'activate' or 'deactivate' and the returned state is valid or 'deactivated! respectively.
78
  if (($action != 'check') && ($state['response']['license'] == 'valid')) {
79
- // We need to standarize the response object so the access will be always the same
80
- // EDD return 'deactivated' and 'valid' with the success request using 'deactivate' and 'activate' repectively!
81
- // Use valid instead of deactivate!
82
- if ($action == 'deactivate') {
83
- $state['response']['license'] = 'valid';
84
- }
85
  $state['action'] = $model->cacheState($state['component'], $action, $state);
86
  }
87
  // Return state object includes (component, license, edd response [and action only if valid])
60
  */
61
  protected function licenseAction() {
62
  // Read request parameters!
63
+ $action = $_REQUEST['licenseAction'];
64
  $state['component'] = $_REQUEST['component'];
65
  $state['license'] = $_REQUEST['license'];
66
  // Initializing!
67
  $model =& $this->model;
68
  // Request EDD through EDD SL APIs!
69
+ $state['response'] = $model->dispatchLicenseAction($action, $state['component'], $state['license']);
 
 
 
 
 
 
 
70
  // Cahe only if the request is 'activate' or 'deactivate' and the returned state is valid or 'deactivated! respectively.
71
  if (($action != 'check') && ($state['response']['license'] == 'valid')) {
 
 
 
 
 
 
72
  $state['action'] = $model->cacheState($state['component'], $action, $state);
73
  }
74
  // Return state object includes (component, license, edd response [and action only if valid])
css-js-toolbox.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: CSS & JavaScript Toolbox
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
9
  License:
3
  Plugin Name: CSS & JavaScript Toolbox
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.4
7
  Author: Wipeout Media
8
  Author URI: http://css-javascript-toolbox.com
9
  License:
framework/CJTStoreUpdate.class.php ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ */
5
+
6
+ /**
7
+ *
8
+ */
9
+ class CJTStoreUpdate {
10
+
11
+ /**
12
+ * put your comment there...
13
+ *
14
+ * @var mixed
15
+ */
16
+ private $store;
17
+
18
+ /**
19
+ * put your comment there...
20
+ *
21
+ * @param mixed $name
22
+ * @param mixed $license
23
+ * @param mixed $pluginFile
24
+ * @return CJTStoreUpdate
25
+ */
26
+ public function __construct($name, $license, $pluginFile) {
27
+ # Interact with store
28
+ $this->store = new CJTStore( $name, $license, $pluginFile );
29
+ }
30
+
31
+ /**
32
+ * put your comment there...
33
+ *
34
+ */
35
+ public function _connectErrorAdminNotice() {
36
+ # Create DOm Document
37
+ $message = new DOMDocument();
38
+ $message->loadXML('<span><div><p></p></div></span>');
39
+ # Create notice element
40
+ $rootElement = $message->documentElement;
41
+ $notice = $rootElement->childNodes->item( 0 );
42
+ $notice->setAttribute( 'class', 'error' );
43
+ $notice->childNodes->item( 0 )->nodeValue = 'Unable to fetch update! CJT Store unavailable!';
44
+ echo $message->saveHTML();
45
+ }
46
+
47
+ /**
48
+ * put your comment there...
49
+ *
50
+ * @param mixed $data
51
+ * @param mixed $action
52
+ * @param mixed $args
53
+ */
54
+ public function _overridePluginInformation($data, $action, $args) {
55
+ # Act only with plugins_information action
56
+ switch ( $action ) {
57
+ case 'plugin_information' :
58
+ # INitialize
59
+ $store =& $this->getStore();
60
+ # Try to Get Plugin information
61
+ try {
62
+ $pluginInfo = $store->getPluginInformation();
63
+ $pluginData = get_plugin_data( $store->getPluginFile() );
64
+ # Make sure the requested Plugin is the one
65
+ # associated with this object
66
+ if ( $args && $args->slug && ( $this->getStore()->getSlug() == $args->slug ) ) {
67
+ # Fill Plugin information data and return it back
68
+ $data = (object) array(
69
+ 'version' => $pluginInfo[ 'currentVersion' ],
70
+ 'last_updated' => $pluginInfo[ 'lastUpdated' ],
71
+ 'author' => $pluginData[ 'Author' ],
72
+ 'requires' => $pluginInfo[ 'requires' ],
73
+ 'tested' => $pluginInfo[ 'tested' ],
74
+ 'homepage' => $pluginInfo[ 'url' ],
75
+ 'downloaded' => $pluginInfo[ 'downloadsCount' ],
76
+ 'slug' => $store->getSlug(),
77
+ 'name' => $pluginData[ 'Name' ],
78
+ 'sections' => array(
79
+ 'description' => $pluginInfo[ 'description' ],
80
+ 'installation' => $pluginInfo[ 'installation' ],
81
+ 'faq' => $pluginInfo[ 'faq' ],
82
+ 'screenshots' => $pluginInfo[ 'screenshots' ],
83
+ 'changelog' => $pluginInfo[ 'changeLog' ],
84
+ 'reviews' => $pluginInfo[ 'reviews' ],
85
+ 'other_notes' => $pluginInfo[ 'otherNotes' ]
86
+ )
87
+ );
88
+ }
89
+ }
90
+ catch ( CJTServicesAPICallException $exception ) {
91
+ # We will do nothing if CJT Store Server if not availabel
92
+ # Just wait for subsequence requestes to get response!!!
93
+ }
94
+ break;
95
+ }
96
+ # Return either FALSE or plugin information if
97
+ # the plugin is belongs to CJT store
98
+ return $data;
99
+ }
100
+
101
+ /**
102
+ * put your comment there...
103
+ *
104
+ * @param mixed $transient
105
+ */
106
+ public function _transientPluginUpdate($transient) {
107
+ # INitialize
108
+ $store =& $this->getStore();
109
+ try {
110
+ # Try to get Plugin update
111
+ $pluginUpdate = $store->hasUpdate();
112
+ # Transient Plugin updaate if thereis new version
113
+ if ( $pluginUpdate ) {
114
+ # Get Plugin base name
115
+ $pluginBaseName = plugin_basename( $store->getPluginFile() );
116
+ # Add to update list
117
+ $transient->response[ $pluginBaseName ] = (object) array(
118
+ 'id' => null,
119
+ 'plugin' => $pluginBaseName,
120
+ 'slug' => basename( $pluginBaseName, '.php' ),
121
+ 'new_version' => $pluginUpdate[ 'currentVersion' ],
122
+ 'url' => $pluginUpdate[ 'url' ],
123
+ 'package' => $pluginUpdate[ 'package' ],
124
+ );
125
+ }
126
+ }
127
+ catch ( CJTServicesAPICallException $exception ) {
128
+ # We will do nothing if CJT Store Server if not availabel
129
+ # Just wait for subsequence requestes to get response!!!
130
+ add_action( 'admin_notices', array( $this, '_connectErrorAdminNotice' ) );
131
+ }
132
+ # Return transient array
133
+ return $transient;
134
+ }
135
+
136
+ /**
137
+ * put your comment there...
138
+ *
139
+ * @param mixed $itemName
140
+ * @param mixed $license
141
+ * @param mixed $pluginFile
142
+ */
143
+ public static function & autoUpgrade($itemName, $license, $pluginFile) {
144
+ # Get instance
145
+ $instance = new CJTStoreUpdate( $itemName, $license, $pluginFile );
146
+ # Start update and return $instance
147
+ return $instance->update();
148
+ }
149
+
150
+ /**
151
+ * put your comment there...
152
+ *
153
+ */
154
+ public function & getStore() {
155
+ return $this->store;
156
+ }
157
+
158
+ /**
159
+ * put your comment there...
160
+ *
161
+ */
162
+ public function & update() {
163
+ # Hook for adding CJT Extension to UPDATE Plugins list
164
+ add_filter( 'pre_set_site_transient_update_plugins', array( $this, '_transientPluginUpdate' ) );
165
+ # Hook for displaying Plugin Information form
166
+ add_filter( 'plugins_api', array( $this, '_overridePluginInformation' ), 10, 3 );
167
+ # Chain
168
+ return $this;
169
+ }
170
+
171
+ }
framework/ServicesAPI/Exceptions.class.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ */
5
+ class CJTServicesAPICallException extends Exception {}
framework/ServicesAPI/Module.class.php ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ */
5
+
6
+ /**
7
+ *
8
+ */
9
+ abstract class CJTServicesClientModule {
10
+
11
+ /**
12
+ * put your comment there...
13
+ *
14
+ * @var WP_Error
15
+ */
16
+ private $response;
17
+
18
+ /**
19
+ * put your comment there...
20
+ *
21
+ * @var mixed
22
+ */
23
+ private $responseData;
24
+
25
+ /**
26
+ * put your comment there...
27
+ *
28
+ * @var mixed
29
+ */
30
+ private $servicesAPI;
31
+
32
+ /**
33
+ * put your comment there...
34
+ *
35
+ * @param mixed $extensionData
36
+ * @return CJTProUpdateCheck
37
+ */
38
+ public function __construct() {
39
+ # Get Services API instance
40
+ $this->servicesAPI =& CJTServicesClient::getInstance();
41
+ # Obtain module name from $this class name with CJT prefix removed
42
+ $this->moduleName = strtolower( substr( get_class( $this ), 3 ) );
43
+ }
44
+
45
+ /**
46
+ * put your comment there...
47
+ *
48
+ * @param mixed $name
49
+ */
50
+ protected function get($name) {
51
+ return isset( $this->responseData[ $name ] ) ? $this->responseData[ $name ] : null;
52
+ }
53
+
54
+ /**
55
+ * put your comment there...
56
+ *
57
+ */
58
+ public function getModuleName() {
59
+ return $this->moduleName;
60
+ }
61
+
62
+ /**
63
+ * put your comment there...
64
+ *
65
+ */
66
+ public function getResponseData() {
67
+ return $this->responseData;
68
+ }
69
+
70
+ /**
71
+ * put your comment there...
72
+ *
73
+ */
74
+ public function & getServicesAPI() {
75
+ return $this->servicesAPI;
76
+ }
77
+
78
+ /**
79
+ * put your comment there...
80
+ *
81
+ * @param mixed $json
82
+ */
83
+ protected function jsonDecode( $json ) {
84
+ return json_decode( $json, true );
85
+ }
86
+
87
+ /**
88
+ * put your comment there...
89
+ *
90
+ * @param mixed $method
91
+ * @param mixed $params
92
+ * @param mixed $postData
93
+ */
94
+ public function makeCall($method, $params = null, $postData = null) {
95
+ # Reset response object
96
+ $this->response = null;
97
+ $this->responseData = null;
98
+ # Dispatch and store response
99
+ $this->response = $this->getServicesAPI()->makeCall( $this->getModuleName(), $method, $params, $postData );
100
+ # Read response data
101
+ $this->responseData = wp_remote_retrieve_body( $this->response );
102
+ # Chain
103
+ return $this;
104
+ }
105
+
106
+ }
framework/ServicesAPI/Services.class.php ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ */
5
+
6
+ /**
7
+ *
8
+ */
9
+ class CJTServicesClient {
10
+
11
+ /**
12
+ * put your comment there...
13
+ *
14
+ * @var mixed
15
+ */
16
+ protected static $instance;
17
+
18
+ /**
19
+ * put your comment there...
20
+ *
21
+ * @var mixed
22
+ */
23
+ private $sslVerify = false;
24
+
25
+ /**
26
+ * put your comment there...
27
+ *
28
+ * @var mixed
29
+ */
30
+ private $timeOut = 10;
31
+
32
+ /**
33
+ * put your comment there...
34
+ *
35
+ * @var mixed
36
+ */
37
+ private $url;
38
+
39
+ /**
40
+ * put your comment there...
41
+ *
42
+ */
43
+ public function __construct() {
44
+ # Initialize
45
+ $this->url = cssJSToolbox::getCJTWebSiteURL() . "cjtservices-api";
46
+ }
47
+
48
+ /**
49
+ * put your comment there...
50
+ *
51
+ * @return CJTServicesClient
52
+ */
53
+ public static function & getInstance() {
54
+ # Maintain only ONE instance
55
+ if (!self::$instance) {
56
+ self::$instance = new CJTServicesClient();
57
+ }
58
+ return self::$instance;
59
+ }
60
+
61
+ /**
62
+ * put your comment there...
63
+ *
64
+ */
65
+ public function getSSLVerify() {
66
+ return $this->sslVerify;
67
+ }
68
+
69
+ /**
70
+ * put your comment there...
71
+ *
72
+ */
73
+ public function getTimeOut() {
74
+ return $this->timeOut;
75
+ }
76
+
77
+ /**
78
+ * put your comment there...
79
+ *
80
+ */
81
+ public function getUrl() {
82
+ return $this->url;
83
+ }
84
+
85
+ /**
86
+ * put your comment there...
87
+ *
88
+ * @param mixed $module
89
+ * @param mixed $method
90
+ * @param mixed $params
91
+ */
92
+ public function makeCall($module, $method, $params = null, $postData = null) {
93
+ # Prepare method name by replacing all UPPER Letters to Lower
94
+ # precedence by _
95
+ while ( preg_match( '/[A-Z]/', $method, $upperLetter, PREG_OFFSET_CAPTURE ) ) {
96
+ $method = substr_replace( $method,
97
+ ( '_' . strtolower( $upperLetter[ 0 ][ 0 ] ) ),
98
+ $upperLetter[ 0 ][ 1 ], 1
99
+ );
100
+ };
101
+ # Lowercase module name
102
+ $module = strtolower( $module );
103
+ # Construct method call uri
104
+ $methodUri = "{$this->url}/{$module}/{$method}";
105
+ # Defaults and E_ALL Complains
106
+ if ( !$params ) {
107
+ $params = array();
108
+ }
109
+ # Encode parameters
110
+ foreach ($params as $name => $value) {
111
+ $params[ $name ] = urlencode( $value );
112
+ }
113
+ # Add query string parameters
114
+ $methodUri = add_query_arg( $params, $methodUri );
115
+ # Request parameters
116
+ $requestParams = array(
117
+ 'timeout' => $this->getTimeOut(),
118
+ 'sslverify' => $this->getSSLVerify(),
119
+ 'body' => json_encode( $postData ),
120
+ );
121
+ # POST Server
122
+ $postRequest = wp_remote_post( $methodUri, $requestParams );
123
+ if ( ! $postRequest || ( $postRequest instanceof WP_Error ) ) {
124
+ throw new CJTServicesAPICallException( 'CJTStore: Unable to call CJT Services API' );
125
+ }
126
+ # Make sure its CJT Services Response (E.g CJT Services is not activated or the returned
127
+ # content is not belong to CJT Services response)
128
+ if ( ! wp_remote_retrieve_header( $postRequest, 'cjt-store' ) ) {
129
+ throw new CJTServicesAPICallException( 'CJTStore: Invalid response!!!' );
130
+ }
131
+ # Return response Wordpress Handle
132
+ return $postRequest;
133
+ }
134
+
135
+ /**
136
+ * put your comment there...
137
+ *
138
+ * @param mixed $value
139
+ * @return {CJTServicesClient|mixed}
140
+ */
141
+ public function & setSSLVerify($value) {
142
+ # Set
143
+ $this->sslVerify = $value;
144
+ # Chaining
145
+ return $this;
146
+ }
147
+
148
+ /**
149
+ * put your comment there...
150
+ *
151
+ * @param mixed $value
152
+ * @return CJTServicesClient
153
+ */
154
+ public function & setTimeOut($value) {
155
+ # Set
156
+ $this->timeOut = $value;
157
+ # Chaining
158
+ return $this;
159
+ }
160
+
161
+
162
+ }
framework/ServicesAPI/Store.php ADDED
@@ -0,0 +1,191 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ */
5
+
6
+ /**
7
+ *
8
+ */
9
+ class CJTStore extends CJTServicesClientModule {
10
+
11
+ /**
12
+ * put your comment there...
13
+ *
14
+ * @var mixed
15
+ */
16
+ private $baseName;
17
+
18
+ /**
19
+ * put your comment there...
20
+ *
21
+ * @var mixed
22
+ */
23
+ private $itemName;
24
+
25
+ /**
26
+ * put your comment there...
27
+ *
28
+ * @var mixed
29
+ */
30
+ private $license;
31
+
32
+ /**
33
+ * put your comment there...
34
+ *
35
+ * @var mixed
36
+ */
37
+ private $pluginFile;
38
+
39
+ /**
40
+ * put your comment there...
41
+ *
42
+ * @var mixed
43
+ */
44
+ private $slug;
45
+
46
+ /**
47
+ * put your comment there...
48
+ *
49
+ * @param mixed $itemName
50
+ * @param mixed $license
51
+ * @param mixed $pluginFile
52
+ * @return CJTStore
53
+ */
54
+ public function __construct($itemName, $license, $pluginFile) {
55
+ # Initialize module base class
56
+ parent::__construct();
57
+ # Initialize
58
+ $this->pluginFile = $pluginFile;
59
+ $this->baseName = plugin_basename( $pluginFile );
60
+ $this->slug = basename( $this->baseName, '.php' );
61
+ $this->license = $license;
62
+ $this->itemName = $itemName;
63
+ }
64
+
65
+ /**
66
+ * put your comment there...
67
+ *
68
+ * @param mixed $ownerName
69
+ * @return mixed
70
+ */
71
+ public function activateLicense($ownerName) {
72
+ return (int) $this->makeCall( __FUNCTION__, compact( 'ownerName' ) )->getResponseData();
73
+ }
74
+
75
+ /**
76
+ * put your comment there...
77
+ *
78
+ * @param mixed $ownerName
79
+ * @return mixed
80
+ */
81
+ public function checkLicense($ownerName) {
82
+ return (int) $this->makeCall( __FUNCTION__, compact( 'ownerName' ) )->getResponseData();
83
+ }
84
+
85
+ /**
86
+ * put your comment there...
87
+ *
88
+ * @param mixed $ownerName
89
+ * @return mixed
90
+ */
91
+ public function deactivateLicense($ownerName) {
92
+ return (int) $this->makeCall( __FUNCTION__, compact( 'ownerName' ) )->getResponseData();
93
+ }
94
+
95
+ /**
96
+ * put your comment there...
97
+ *
98
+ */
99
+ public function getBaseName() {
100
+ return $this->baseName;
101
+ }
102
+
103
+ /**
104
+ * put your comment there...
105
+ *
106
+ */
107
+ public function getItemName() {
108
+ return $this->itemName;
109
+ }
110
+
111
+ /**
112
+ * put your comment there...
113
+ *
114
+ */
115
+ public function getPluginInformation() {
116
+ # Check if there is update available for current extension
117
+ $info = $this->jsonDecode( $this->makeCall( __FUNCTION__ )->getResponseData() );
118
+ # Return result
119
+ return $info;
120
+ }
121
+
122
+ /**
123
+ * put your comment there...
124
+ *
125
+ */
126
+ public function getPluginUpdate() {
127
+ # Check if there is update available for current extension
128
+ $pluginUpdate = $this->jsonDecode( $this->makeCall( __FUNCTION__ )->getResponseData() );
129
+ # Return result
130
+ return $pluginUpdate;
131
+ }
132
+
133
+ /**
134
+ * put your comment there...
135
+ *
136
+ */
137
+ public function getLicense() {
138
+ return $this->license;
139
+ }
140
+
141
+ /**
142
+ * put your comment there...
143
+ *
144
+ */
145
+ public function getPluginFile() {
146
+ return $this->pluginFile;
147
+ }
148
+
149
+ /**
150
+ * put your comment there...
151
+ *
152
+ */
153
+ public function getSlug() {
154
+ return $this->slug;
155
+ }
156
+
157
+ /**
158
+ * put your comment there...
159
+ *
160
+ */
161
+ public function hasUpdate() {
162
+ # Get Version
163
+ $pluginUpdate = $this->getPluginUpdate();
164
+ $version = $pluginUpdate[ 'currentVersion' ];
165
+ # Get Plugin version
166
+ $pluginData = get_plugin_data( $this->getPluginFile() );
167
+ # Return version details if there is new version/ otherwise return false
168
+ $result = ( version_compare( $version, $pluginData[ 'Version' ] ) == 1 ) ? $pluginUpdate : false;
169
+ return $result;
170
+ }
171
+
172
+ /**
173
+ * put your comment there...
174
+ *
175
+ * @param mixed $method
176
+ * @param mixed $params
177
+ * @param mixed $postData
178
+ * @return CJTServicesClientModule
179
+ */
180
+ public function makeCall($method, $params = null, $postData = null) {
181
+ # Always include the following parameters
182
+ $params = array_merge( array(
183
+ 'itemName' => $this->getItemName(),
184
+ 'license' => $this->getLicense() ),
185
+ $params ? $params : array()
186
+ );
187
+ # Call method
188
+ return parent::makeCall( $method, $params, $postData );
189
+ }
190
+
191
+ }
framework/extensions/extensions.class.php CHANGED
@@ -24,7 +24,7 @@ class CJTExtensions extends CJTHookableClass {
24
  /**
25
  *
26
  */
27
- const PREFIX = 'cjte-';
28
 
29
  /**
30
  * put your comment there...
@@ -162,11 +162,11 @@ class CJTExtensions extends CJTHookableClass {
162
  * @param mixed $loadMethod
163
  * @return CJTExtensions
164
  */
165
- public function __construct($prefix = self::PREFIX, $loadMethod = self::LOAD_METHOD) {
166
  // Hookable!
167
  parent::__construct();
168
  // Initializing!
169
- $this->prefix = $prefix;
170
  $this->loadMethod = $loadMethod;
171
  }
172
 
@@ -203,7 +203,8 @@ class CJTExtensions extends CJTHookableClass {
203
  $pluginDir = dirname($file);
204
  $pluginName = basename($pluginDir);
205
  // Any plugin with our prefix is a CJT extension!
206
- if (strpos($pluginName, $this->prefix) === 0) {
 
207
  // CJT Extsnsion must has the definition XML file!
208
  // First try for Edition-Specific file
209
  // if not exists try the generic one.
24
  /**
25
  *
26
  */
27
+ const PREFIXS = 'cjte-,css-javascript-toolbox-';
28
 
29
  /**
30
  * put your comment there...
162
  * @param mixed $loadMethod
163
  * @return CJTExtensions
164
  */
165
+ public function __construct($prefix = self::PREFIXS, $loadMethod = self::LOAD_METHOD) {
166
  // Hookable!
167
  parent::__construct();
168
  // Initializing!
169
+ $this->prefix = explode( ',', $prefix );
170
  $this->loadMethod = $loadMethod;
171
  }
172
 
203
  $pluginDir = dirname($file);
204
  $pluginName = basename($pluginDir);
205
  // Any plugin with our prefix is a CJT extension!
206
+ if ( ( strpos( $pluginName, $this->prefix[0] ) === 0 ) ||
207
+ ( strpos( $pluginName, $this->prefix[1] ) === 0 ) ) {
208
  // CJT Extsnsion must has the definition XML file!
209
  // First try for Edition-Specific file
210
  // if not exists try the generic one.
framework/third-party/easy-digital-download/auto-upgrade.class.php DELETED
@@ -1,167 +0,0 @@
1
- <?php
2
-
3
- // uncomment this line for testing
4
- //set_site_transient( 'update_plugins', null );
5
-
6
- /**
7
- * Allows plugins to use their own update API.
8
- *
9
- * Class below has been modified by CJT.
10
- *
11
- * The name of the class is also changed
12
- * as CJT cannot use another non-modified copy.
13
- * CJT Must use THIS class and not the original one.
14
- *
15
- * @author Pippin Williamson
16
- * @version 1.0
17
- */
18
- class CJT_EDD_SL_Plugin_Updater {
19
- private $api_url = '';
20
- private $api_data = array();
21
- private $name = '';
22
- private $slug = '';
23
-
24
- /**
25
- * Class constructor.
26
- *
27
- * @uses plugin_basename()
28
- * @uses hook()
29
- *
30
- * @param string $_api_url The URL pointing to the custom API endpoint.
31
- * @param string $_plugin_file Path to the plugin file.
32
- * @param array $_api_data Optional data to send with API calls.
33
- * @return void
34
- */
35
- function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
36
- $this->api_url = trailingslashit( $_api_url );
37
- $this->api_data = urlencode_deep( $_api_data );
38
- $this->name = plugin_basename( $_plugin_file );
39
- $this->slug = basename( $_plugin_file, '.php');
40
- $this->version = $_api_data['version'];
41
-
42
- // Set up hooks.
43
- $this->hook();
44
- }
45
-
46
- /**
47
- * Set up Wordpress filters to hook into WP's update process.
48
- *
49
- * @uses add_filter()
50
- *
51
- * @return void
52
- */
53
- private function hook() {
54
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'pre_set_site_transient_update_plugins_filter' ) );
55
- add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3);
56
- }
57
-
58
- /**
59
- * Check for Updates at the defined API endpoint and modify the update array.
60
- *
61
- * This function dives into the update api just when Wordpress creates its update array,
62
- * then adds a custom API call and injects the custom plugin data retrieved from the API.
63
- * It is reassembled from parts of the native Wordpress plugin update code.
64
- * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
65
- *
66
- * @uses api_request()
67
- *
68
- * @param array $_transient_data Update array build by Wordpress.
69
- * @return array Modified update array with custom plugin data.
70
- */
71
- function pre_set_site_transient_update_plugins_filter( $_transient_data ) {
72
-
73
-
74
- if( empty( $_transient_data ) ) return $_transient_data;
75
-
76
- $to_send = array( 'slug' => $this->slug );
77
-
78
- $api_response = $this->api_request( 'plugin_latest_version', $to_send );
79
-
80
- if( false !== $api_response && is_object( $api_response ) ) {
81
- if( version_compare( $this->version, $api_response->new_version, '<' ) ) {
82
- $_transient_data->response[$this->name] = $api_response;
83
- }
84
- else {
85
- /**
86
- * Remove FREE edition update that cached by
87
- * Wordpress plugins update.
88
- *
89
- * @author CJT
90
- */
91
- unset( $_transient_data->response[$this->name] );
92
- }
93
- }
94
- else {
95
- /**
96
- * Remove FREE edition update that cached by
97
- * Wordpress plugins update. Is must do if the
98
- * HTTP reqeust fail as it will allo user to get a FREE
99
- * copy!
100
- *
101
- * @author CJT
102
- */
103
- unset( $_transient_data->response[$this->name] );
104
- }
105
- return $_transient_data;
106
- }
107
-
108
-
109
- /**
110
- * Updates information on the "View version x.x details" page with custom data.
111
- *
112
- * @uses api_request()
113
- *
114
- * @param mixed $_data
115
- * @param string $_action
116
- * @param object $_args
117
- * @return object $_data
118
- */
119
- function plugins_api_filter( $_data, $_action = '', $_args = null ) {
120
- if ( ( $_action != 'plugin_information' ) || !isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) return $_data;
121
-
122
- $to_send = array( 'slug' => $this->slug );
123
-
124
- $api_response = $this->api_request( 'plugin_information', $to_send );
125
- if ( false !== $api_response ) $_data = $api_response;
126
-
127
- return $_data;
128
- }
129
-
130
- /**
131
- * Calls the API and, if successfull, returns the object delivered by the API.
132
- *
133
- * @uses get_bloginfo()
134
- * @uses wp_remote_post()
135
- * @uses is_wp_error()
136
- *
137
- * @param string $_action The requested action.
138
- * @param array $_data Parameters for the API action.
139
- * @return false||object
140
- */
141
- private function api_request( $_action, $_data ) {
142
-
143
- global $wp_version;
144
-
145
- $data = array_merge( $this->api_data, $_data );
146
- if( $data['slug'] != $this->slug )
147
- return;
148
-
149
- $api_params = array(
150
- 'edd_action' => 'get_version',
151
- 'license' => $data['license'],
152
- 'name' => $data['item_name'],
153
- 'slug' => $this->slug,
154
- 'author' => $data['author']
155
- );
156
- $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'ssverify' => false, 'body' => $api_params ) );
157
-
158
- if ( !is_wp_error( $request ) ):
159
- $request = json_decode( wp_remote_retrieve_body( $request ) );
160
- if( $request )
161
- $request->sections = maybe_unserialize( $request->sections );
162
- return $request;
163
- else:
164
- return false;
165
- endif;
166
- }
167
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/setup.php CHANGED
@@ -67,19 +67,28 @@ class CJTSetupModel {
67
  * @param mixed $component
68
  * @param mixed $license
69
  */
70
- public function dispatchEddCall($action, $component, $license) {
71
- // Activating License key thorugh EDD APIs!
72
- $request['edd_action'] = "{$action}_license";
73
- $request['item_name'] = urlencode($component['name']);
74
- $request['license'] = $license['key'];
75
- /* CJT Extra Fields For EDD */
76
- //$request['CJTEFFEDD_licenseName'] = $license['name'];
77
- // Request the server!
78
- $response = wp_remote_get(add_query_arg($request, cssJSToolbox::getCJTWebSiteURL()));
79
- // We need only the JSON object returned by EDD APIs.
80
- $response = @json_decode(wp_remote_retrieve_body($response), true);
81
- // If request error compaitble the response object to be used!
82
- if (!$response) {
 
 
 
 
 
 
 
 
 
83
  $response = array('license' => 'error', 'component' => $component['name']);
84
  }
85
  return $response;
67
  * @param mixed $component
68
  * @param mixed $license
69
  */
70
+ public function dispatchLicenseAction($action, $component, $license) {
71
+ # Get Plugin File from component base name
72
+ $pluginFile = WP_PLUGIN_DIR . $component[ 'pluginBase' ];
73
+ # Get CJT Store object
74
+ $store = new CJTStore( $component [ 'name' ], $license[ 'key' ], $pluginFile );
75
+ # Build method name from the given action
76
+ $methodName = "{$action}License";
77
+ try {
78
+ # Call requested method
79
+ $result = $store->$methodName( $license[ 'name' ] );
80
+ # Build response object locally
81
+ # The structure is taken from EDD license extension as it was used here
82
+ # when the plugin is orignally developed
83
+ if ( $result ) { // Success operation
84
+ $response['license'] = 'valid';
85
+ }
86
+ else { // Operation faild
87
+ $response['license'] = 'invalid';
88
+ }
89
+ }
90
+ catch ( CJTServicesAPICallException $exception ) {
91
+ // If request error compaitble the response object to be used!
92
  $response = array('license' => 'error', 'component' => $component['name']);
93
  }
94
  return $response;
readme.txt CHANGED
@@ -6,20 +6,54 @@ Tags: post, posts, admin, sidebar, page, pages, widget, image, shortcode, plugin
6
  License: GPLv2 or later
7
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
8
  Requires at least: 3.9
9
- Tested up to: 4.1
10
- Stable tag: 8.0.3
11
 
12
  Easily add custom CSS, JavaScript, HTML and PHP code to unique CJT code blocks and assign them wherever you want.
13
 
14
  == Description ==
15
- = We need your support =
16
- Your purchase of CJTe Developer will assist us in the continued development of all CJT plugins on WordPress.org.
17
-
18
- This project is 100% developed and maintained by only two people since the very start in August 2011. We have plenty of [feature ideas that we want to include](http://css-javascript-toolbox.com/development/request), and this can only be possible with funding.
19
-
20
- If you would like to learn more about the additional benefits, please click: [CJTe Developer](http://css-javascript-toolbox.com/cjte-developer).
21
-
22
- = About =
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  CSS & JavaScript Toolbox (or CJT) is a powerful code management plugin that gives you the tools to easily and safely modify or extend the functionality and appearance of your WordPress-powered website.
24
 
25
  = Perfect for WordPress website development =
@@ -33,26 +67,10 @@ Since CJT was designed to be easy, adding scripts and styles can be done in as l
33
 
34
  CJT code blocks can be assigned to pages, posts, custom posts, categories, URLs, expressions, and practically anywhere you want on your website. Code block shortcodes can also provide you with further placement accuracy.
35
 
36
- = Want more features for free? =
37
- Get CJT extension plugins that provide more features such as:
38
-
39
- - [Advanced Theme Editor](https://wordpress.org/plugins/cjte-advanced-theme-editor)
40
- - [Advanced Plugins Editor](https://wordpress.org/plugins/cjte-advanced-plugins-editor)
41
- - [WP Core Editor](https://wordpress.org/plugins/cjte-wp-core-editor)
42
-
43
- = Want to add script plugins? =
44
- Get script plugins that can be installed on your website running CJT:
45
-
46
- - [Image Zoomer](https://wordpress.org/plugins/cjte-image-zoomer/)
47
- - [Black & White Image Effect](https://wordpress.org/plugins/cjte-black-white-image-effect/)
48
-
49
  = Support Us =
50
- Thank you for your interest in CSS & JavaScript Toolbox.
51
- Please support us by:
52
 
53
- - Joining in with the voting and discussion on [new CJT feature ideas](http://css-javascript-toolbox.com/development/request).
54
- - Providing a [feedback review and rating](http://wordpress.org/support/view/plugin-reviews/css-javascript-toolbox) on WordPress.org
55
- - Spreading the word and recommending CJT to others.
56
 
57
  = Follow the Developments =
58
  If you like to know more about the development state, issues and to track future versions code please follow us on [GitHub Plugin repository](https://github.com/css-javascript-toolbox/css-javascript-toolbox-plugin).
@@ -137,6 +155,10 @@ Due to the overwhelming amount of emails we get for users requesting support for
137
  21. See Code Block information at a glance
138
 
139
  == Changelog ==
 
 
 
 
140
  = 8.0.3 =
141
  * Add support us link to Dashboard metabpx
142
  * Add support us link to CJT header
@@ -346,7 +368,7 @@ Due to the overwhelming amount of emails we get for users requesting support for
346
 
347
  == Credits ==
348
 
349
- Copyright © 2013, Wipeout Media.
350
 
351
  This program is free software; you can redistribute it and/or
352
  modify it under the terms of the GNU General Public License
6
  License: GPLv2 or later
7
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
8
  Requires at least: 3.9
9
+ Tested up to: 4.3
10
+ Stable tag: 8.0.4
11
 
12
  Easily add custom CSS, JavaScript, HTML and PHP code to unique CJT code blocks and assign them wherever you want.
13
 
14
  == Description ==
15
+ = Update Notice =
16
+ After a long hiatus in development, we have decided to focus our entire efforts on our new premium extension plugin called [CSS & JavaScript Toolbox PLUS](http://css-javascript-toolbox.com/css-javascript-toolbox-plus/), which is designed to work with and UPGRADE the free version. Unfortunately we will be moving many features from the free version into the premium.
17
+
18
+ = What does this mean? =
19
+ For the next update (not this one), we will be removing features from CSS & JavaScript Toolbox Free including:
20
+ - Custom Posts
21
+ - Categories
22
+ - Auxiliary assignments (e.g. entire website, website backend, etc)
23
+ - Advanced assignments (i.e. URLs and Expressions)
24
+ - Code Files
25
+ - Code Templates
26
+ - Template Lookup System
27
+ - Packages
28
+
29
+ If you rely on the features above, then you can do one of two things:
30
+
31
+ 1) Stay on [CSS & JavaScript Toolbox Free v8.0.3](https://downloads.wordpress.org/plugin/css-javascript-toolbox.8.0.3.zip), and when the next update arrives, DO NOT UPDATE!!!
32
+
33
+ OR
34
+
35
+ 2) Purchase our premium extension plugin: [CSS & JavaScript Toolbox PLUS](http://css-javascript-toolbox.com/css-javascript-toolbox-plus/)
36
+
37
+ Of course if you have already updated, you can use FTP to rollback to the earlier version by manually overwriting the css-javascript-toolbox folder with: [CSS & JavaScript Toolbox Free v8.0.3](https://downloads.wordpress.org/plugin/css-javascript-toolbox.8.0.3.zip)
38
+
39
+ = Why purchase PLUS? =
40
+ [CSS & JavaScript Toolbox PLUS](http://css-javascript-toolbox.com/css-javascript-toolbox-plus/) is our new premium plugin, which will now take up all our time and efforts. It will also contain all of the above features - PLUS these features below:
41
+ - Editor Themes
42
+ - Editor Toolbox
43
+ - Editor Menu Tools
44
+ - Code Auto Completion (CAC)
45
+ - Import Export Tool
46
+ - Block Widget Linker
47
+ - PLUS more
48
+
49
+ We intend to give PLUS a complete makeover, including:
50
+ - code optimisation and bug fixes
51
+ - 100% compatibility with the the latest WordPress
52
+ - a faster and more powerful core
53
+ - full codebase documentation
54
+ - and eventually a brand new flat responsive user interface
55
+
56
+ = About the CSS & JavaScript Toolbox Plugin =
57
  CSS & JavaScript Toolbox (or CJT) is a powerful code management plugin that gives you the tools to easily and safely modify or extend the functionality and appearance of your WordPress-powered website.
58
 
59
  = Perfect for WordPress website development =
67
 
68
  CJT code blocks can be assigned to pages, posts, custom posts, categories, URLs, expressions, and practically anywhere you want on your website. Code block shortcodes can also provide you with further placement accuracy.
69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  = Support Us =
71
+ The CSS & JavaScript Toolbox project is 100% developed and maintained by only two people since the very beginnings in August 2011. We have plenty of feature ideas that we want to introduce and this can only be possible with funding.
 
72
 
73
+ You can also support us by providing a [feedback review and rating](http://wordpress.org/support/view/plugin-reviews/css-javascript-toolbox) on WordPress.org, and spreading the word and recommending CJT to others.
 
 
74
 
75
  = Follow the Developments =
76
  If you like to know more about the development state, issues and to track future versions code please follow us on [GitHub Plugin repository](https://github.com/css-javascript-toolbox/css-javascript-toolbox-plugin).
155
  21. See Code Block information at a glance
156
 
157
  == Changelog ==
158
+ = 8.0.4 =
159
+ * Check Wordpress 4.3 compatibility
160
+ * List future deprecated features
161
+
162
  = 8.0.3 =
163
  * Add support us link to Dashboard metabpx
164
  * Add support us link to CJT header
368
 
369
  == Credits ==
370
 
371
+ Copyright © 2015, Wipeout Media.
372
 
373
  This program is free software; you can redistribute it and/or
374
  modify it under the terms of the GNU General Public License
vendor/autoload.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload.php @generated by Composer
4
+
5
+ require_once __DIR__ . '/composer' . '/autoload_real.php';
6
+
7
+ return ComposerAutoloaderInit4fa452c8944c65a2d19d46ecd72a469f::getLoader();
vendor/composer/ClassLoader.php ADDED
@@ -0,0 +1,387 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
+
13
+ namespace Composer\Autoload;
14
+
15
+ /**
16
+ * ClassLoader implements a PSR-0 class loader
17
+ *
18
+ * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
19
+ *
20
+ * $loader = new \Composer\Autoload\ClassLoader();
21
+ *
22
+ * // register classes with namespaces
23
+ * $loader->add('Symfony\Component', __DIR__.'/component');
24
+ * $loader->add('Symfony', __DIR__.'/framework');
25
+ *
26
+ * // activate the autoloader
27
+ * $loader->register();
28
+ *
29
+ * // to enable searching the include path (eg. for PEAR packages)
30
+ * $loader->setUseIncludePath(true);
31
+ *
32
+ * In this example, if you try to use a class in the Symfony\Component
33
+ * namespace or one of its children (Symfony\Component\Console for instance),
34
+ * the autoloader will first look for the class under the component/
35
+ * directory, and it will then fallback to the framework/ directory if not
36
+ * found before giving up.
37
+ *
38
+ * This class is loosely based on the Symfony UniversalClassLoader.
39
+ *
40
+ * @author Fabien Potencier <fabien@symfony.com>
41
+ * @author Jordi Boggiano <j.boggiano@seld.be>
42
+ */
43
+ class ClassLoader
44
+ {
45
+ // PSR-4
46
+ private $prefixLengthsPsr4 = array();
47
+ private $prefixDirsPsr4 = array();
48
+ private $fallbackDirsPsr4 = array();
49
+
50
+ // PSR-0
51
+ private $prefixesPsr0 = array();
52
+ private $fallbackDirsPsr0 = array();
53
+
54
+ private $useIncludePath = false;
55
+ private $classMap = array();
56
+
57
+ public function getPrefixes()
58
+ {
59
+ if (!empty($this->prefixesPsr0)) {
60
+ return call_user_func_array('array_merge', $this->prefixesPsr0);
61
+ }
62
+
63
+ return array();
64
+ }
65
+
66
+ public function getPrefixesPsr4()
67
+ {
68
+ return $this->prefixDirsPsr4;
69
+ }
70
+
71
+ public function getFallbackDirs()
72
+ {
73
+ return $this->fallbackDirsPsr0;
74
+ }
75
+
76
+ public function getFallbackDirsPsr4()
77
+ {
78
+ return $this->fallbackDirsPsr4;
79
+ }
80
+
81
+ public function getClassMap()
82
+ {
83
+ return $this->classMap;
84
+ }
85
+
86
+ /**
87
+ * @param array $classMap Class to filename map
88
+ */
89
+ public function addClassMap(array $classMap)
90
+ {
91
+ if ($this->classMap) {
92
+ $this->classMap = array_merge($this->classMap, $classMap);
93
+ } else {
94
+ $this->classMap = $classMap;
95
+ }
96
+ }
97
+
98
+ /**
99
+ * Registers a set of PSR-0 directories for a given prefix, either
100
+ * appending or prepending to the ones previously set for this prefix.
101
+ *
102
+ * @param string $prefix The prefix
103
+ * @param array|string $paths The PSR-0 root directories
104
+ * @param bool $prepend Whether to prepend the directories
105
+ */
106
+ public function add($prefix, $paths, $prepend = false)
107
+ {
108
+ if (!$prefix) {
109
+ if ($prepend) {
110
+ $this->fallbackDirsPsr0 = array_merge(
111
+ (array) $paths,
112
+ $this->fallbackDirsPsr0
113
+ );
114
+ } else {
115
+ $this->fallbackDirsPsr0 = array_merge(
116
+ $this->fallbackDirsPsr0,
117
+ (array) $paths
118
+ );
119
+ }
120
+
121
+ return;
122
+ }
123
+
124
+ $first = $prefix[0];
125
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
126
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
127
+
128
+ return;
129
+ }
130
+ if ($prepend) {
131
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
132
+ (array) $paths,
133
+ $this->prefixesPsr0[$first][$prefix]
134
+ );
135
+ } else {
136
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
137
+ $this->prefixesPsr0[$first][$prefix],
138
+ (array) $paths
139
+ );
140
+ }
141
+ }
142
+
143
+ /**
144
+ * Registers a set of PSR-4 directories for a given namespace, either
145
+ * appending or prepending to the ones previously set for this namespace.
146
+ *
147
+ * @param string $prefix The prefix/namespace, with trailing '\\'
148
+ * @param array|string $paths The PSR-0 base directories
149
+ * @param bool $prepend Whether to prepend the directories
150
+ *
151
+ * @throws \InvalidArgumentException
152
+ */
153
+ public function addPsr4($prefix, $paths, $prepend = false)
154
+ {
155
+ if (!$prefix) {
156
+ // Register directories for the root namespace.
157
+ if ($prepend) {
158
+ $this->fallbackDirsPsr4 = array_merge(
159
+ (array) $paths,
160
+ $this->fallbackDirsPsr4
161
+ );
162
+ } else {
163
+ $this->fallbackDirsPsr4 = array_merge(
164
+ $this->fallbackDirsPsr4,
165
+ (array) $paths
166
+ );
167
+ }
168
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
169
+ // Register directories for a new namespace.
170
+ $length = strlen($prefix);
171
+ if ('\\' !== $prefix[$length - 1]) {
172
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
173
+ }
174
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
175
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
176
+ } elseif ($prepend) {
177
+ // Prepend directories for an already registered namespace.
178
+ $this->prefixDirsPsr4[$prefix] = array_merge(
179
+ (array) $paths,
180
+ $this->prefixDirsPsr4[$prefix]
181
+ );
182
+ } else {
183
+ // Append directories for an already registered namespace.
184
+ $this->prefixDirsPsr4[$prefix] = array_merge(
185
+ $this->prefixDirsPsr4[$prefix],
186
+ (array) $paths
187
+ );
188
+ }
189
+ }
190
+
191
+ /**
192
+ * Registers a set of PSR-0 directories for a given prefix,
193
+ * replacing any others previously set for this prefix.
194
+ *
195
+ * @param string $prefix The prefix
196
+ * @param array|string $paths The PSR-0 base directories
197
+ */
198
+ public function set($prefix, $paths)
199
+ {
200
+ if (!$prefix) {
201
+ $this->fallbackDirsPsr0 = (array) $paths;
202
+ } else {
203
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
204
+ }
205
+ }
206
+
207
+ /**
208
+ * Registers a set of PSR-4 directories for a given namespace,
209
+ * replacing any others previously set for this namespace.
210
+ *
211
+ * @param string $prefix The prefix/namespace, with trailing '\\'
212
+ * @param array|string $paths The PSR-4 base directories
213
+ *
214
+ * @throws \InvalidArgumentException
215
+ */
216
+ public function setPsr4($prefix, $paths)
217
+ {
218
+ if (!$prefix) {
219
+ $this->fallbackDirsPsr4 = (array) $paths;
220
+ } else {
221
+ $length = strlen($prefix);
222
+ if ('\\' !== $prefix[$length - 1]) {
223
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
224
+ }
225
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
226
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
227
+ }
228
+ }
229
+
230
+ /**
231
+ * Turns on searching the include path for class files.
232
+ *
233
+ * @param bool $useIncludePath
234
+ */
235
+ public function setUseIncludePath($useIncludePath)
236
+ {
237
+ $this->useIncludePath = $useIncludePath;
238
+ }
239
+
240
+ /**
241
+ * Can be used to check if the autoloader uses the include path to check
242
+ * for classes.
243
+ *
244
+ * @return bool
245
+ */
246
+ public function getUseIncludePath()
247
+ {
248
+ return $this->useIncludePath;
249
+ }
250
+
251
+ /**
252
+ * Registers this instance as an autoloader.
253
+ *
254
+ * @param bool $prepend Whether to prepend the autoloader or not
255
+ */
256
+ public function register($prepend = false)
257
+ {
258
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
259
+ }
260
+
261
+ /**
262
+ * Unregisters this instance as an autoloader.
263
+ */
264
+ public function unregister()
265
+ {
266
+ spl_autoload_unregister(array($this, 'loadClass'));
267
+ }
268
+
269
+ /**
270
+ * Loads the given class or interface.
271
+ *
272
+ * @param string $class The name of the class
273
+ * @return bool|null True if loaded, null otherwise
274
+ */
275
+ public function loadClass($class)
276
+ {
277
+ if ($file = $this->findFile($class)) {
278
+ includeFile($file);
279
+
280
+ return true;
281
+ }
282
+ }
283
+
284
+ /**
285
+ * Finds the path to the file where the class is defined.
286
+ *
287
+ * @param string $class The name of the class
288
+ *
289
+ * @return string|false The path if found, false otherwise
290
+ */
291
+ public function findFile($class)
292
+ {
293
+ // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
294
+ if ('\\' == $class[0]) {
295
+ $class = substr($class, 1);
296
+ }
297
+
298
+ // class map lookup
299
+ if (isset($this->classMap[$class])) {
300
+ return $this->classMap[$class];
301
+ }
302
+
303
+ $file = $this->findFileWithExtension($class, '.php');
304
+
305
+ // Search for Hack files if we are running on HHVM
306
+ if ($file === null && defined('HHVM_VERSION')) {
307
+ $file = $this->findFileWithExtension($class, '.hh');
308
+ }
309
+
310
+ if ($file === null) {
311
+ // Remember that this class does not exist.
312
+ return $this->classMap[$class] = false;
313
+ }
314
+
315
+ return $file;
316
+ }
317
+
318
+ private function findFileWithExtension($class, $ext)
319
+ {
320
+ // PSR-4 lookup
321
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
322
+
323
+ $first = $class[0];
324
+ if (isset($this->prefixLengthsPsr4[$first])) {
325
+ foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
326
+ if (0 === strpos($class, $prefix)) {
327
+ foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
328
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
329
+ return $file;
330
+ }
331
+ }
332
+ }
333
+ }
334
+ }
335
+
336
+ // PSR-4 fallback dirs
337
+ foreach ($this->fallbackDirsPsr4 as $dir) {
338
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
339
+ return $file;
340
+ }
341
+ }
342
+
343
+ // PSR-0 lookup
344
+ if (false !== $pos = strrpos($class, '\\')) {
345
+ // namespaced class name
346
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
347
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
348
+ } else {
349
+ // PEAR-like class name
350
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
351
+ }
352
+
353
+ if (isset($this->prefixesPsr0[$first])) {
354
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
355
+ if (0 === strpos($class, $prefix)) {
356
+ foreach ($dirs as $dir) {
357
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
358
+ return $file;
359
+ }
360
+ }
361
+ }
362
+ }
363
+ }
364
+
365
+ // PSR-0 fallback dirs
366
+ foreach ($this->fallbackDirsPsr0 as $dir) {
367
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
368
+ return $file;
369
+ }
370
+ }
371
+
372
+ // PSR-0 include paths.
373
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
374
+ return $file;
375
+ }
376
+ }
377
+ }
378
+
379
+ /**
380
+ * Scope isolated include.
381
+ *
382
+ * Prevents access to $this/self from included files.
383
+ */
384
+ function includeFile($file)
385
+ {
386
+ include $file;
387
+ }
vendor/composer/autoload_classmap.php ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_classmap.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'CJTAccessPoint' => $baseDir . '/framework/access-points/access-point.class.php',
10
+ 'CJTAccessPointsDirectorySpider' => $baseDir . '/framework/access-points/directory-spider.class.php',
11
+ 'CJTAjaxController' => $baseDir . '/framework/mvc/controller-ajax.inc.php',
12
+ 'CJTAttributes' => $baseDir . '/framework/types/attributes.class.php',
13
+ 'CJTController' => $baseDir . '/framework/mvc/controller.inc.php',
14
+ 'CJTDBFileInstaller' => $baseDir . '/framework/installer/dbfile.class.php',
15
+ 'CJTEEISubject' => $baseDir . '/framework/events/subjects/subject.interface.php',
16
+ 'CJTEESubject' => $baseDir . '/framework/events/subjects/subject.subject.php',
17
+ 'CJTEEWordpressHook' => $baseDir . '/framework/events/subjects/hook.subject.php',
18
+ 'CJTEEWordpressHookAction' => $baseDir . '/framework/events/subjects/action.subject.php',
19
+ 'CJTEEWordpressHookFilter' => $baseDir . '/framework/events/subjects/filter.subject.php',
20
+ 'CJTEvents' => $baseDir . '/framework/events/events.class.php',
21
+ 'CJTEventsDefinition' => $baseDir . '/framework/events/definition.class.php',
22
+ 'CJTExceptionBase' => $baseDir . '/framework/exceptions.inc.php',
23
+ 'CJTExtensions' => $baseDir . '/framework/extensions/extensions.class.php',
24
+ 'CJTHTMLField' => $baseDir . '/framework/html/field.inc.php',
25
+ 'CJTHookableClass' => $baseDir . '/framework/events/hookable.class.php',
26
+ 'CJTIAccessPoint' => $baseDir . '/framework/access-points/access-point.class.php',
27
+ 'CJTIHookable' => $baseDir . '/framework/events/hookable.interface.php',
28
+ 'CJTIObserver' => $baseDir . '/framework/events/observers/observer.interface.php',
29
+ 'CJTIncludes' => $baseDir . '/framework/php/includes.class.php',
30
+ 'CJTInstallerReflection' => $baseDir . '/framework/installer/reflection.class.php',
31
+ 'CJTListField' => $baseDir . '/framework/html/list.php',
32
+ 'CJTMYSQLQuery' => $baseDir . '/framework/db/mysql/single-table-simple-view.inc.php',
33
+ 'CJTMYSQLQueueDriver' => $baseDir . '/framework/db/mysql/queue-driver.inc.php',
34
+ 'CJTModel' => $baseDir . '/framework/mvc/model.inc.php',
35
+ 'CJTObserver' => $baseDir . '/framework/events/observers/observer.observer.php',
36
+ 'CJTPHPCodeEvaluator' => $baseDir . '/framework/php/evaluator/evaluator.inc.php',
37
+ 'CJTPackageFile' => $baseDir . '/framework/packages/package.class.php',
38
+ 'CJTPageAccessPoint' => $baseDir . '/framework/access-points/page.class.php',
39
+ 'CJTPropertyNotFoundException' => $baseDir . '/framework/exceptions.inc.php',
40
+ 'CJTSQLView' => $baseDir . '/framework/db/mysql/sql-view.inc.php',
41
+ 'CJTServicesAPICallException' => $baseDir . '/framework/ServicesAPI/Exceptions.class.php',
42
+ 'CJTServicesClient' => $baseDir . '/framework/ServicesAPI/Services.class.php',
43
+ 'CJTServicesClientModule' => $baseDir . '/framework/ServicesAPI/Module.class.php',
44
+ 'CJTSettingsPage' => $baseDir . '/framework/settings/page.inc.php',
45
+ 'CJTStore' => $baseDir . '/framework/ServicesAPI/Store.php',
46
+ 'CJTStoreUpdate' => $baseDir . '/framework/CJTStoreUpdate.class.php',
47
+ 'CJTTable' => $baseDir . '/framework/db/mysql/table.inc.php',
48
+ 'CJTView' => $baseDir . '/framework/mvc/view.inc.php',
49
+ 'CJTWordpressActionHookObserver' => $baseDir . '/framework/events/observers/wordpress-hook-action.observer.php',
50
+ 'CJTWordpressEvents' => $baseDir . '/framework/events/wordpress.class.php',
51
+ 'CJTWordpressFilterHookObserver' => $baseDir . '/framework/events/observers/wordpress-hook-filter.observer.php',
52
+ 'CJTWordpressHookObserver' => $baseDir . '/framework/events/observers/wordpress-hook.observer.php',
53
+ 'CJT_Framework_Autoload_Loader' => $baseDir . '/framework/autoload/loader.php',
54
+ 'CJT_Framework_DB_Mysql_Driver_Exception_Invalidkey' => $baseDir . '/framework/db/mysql/driver/exception/invalidkey.php',
55
+ 'CJT_Framework_Developer_Developer' => $baseDir . '/framework/developer/developer.php',
56
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Parameters' => $baseDir . '/framework/developer/interface/block/parameters/parameters.php',
57
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Array' => $baseDir . '/framework/developer/interface/block/parameters/types/array.php',
58
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Base_Abstract' => $baseDir . '/framework/developer/interface/block/parameters/types/base/abstract.php',
59
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Base_Factory' => $baseDir . '/framework/developer/interface/block/parameters/types/base/factory.php',
60
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Base_List' => $baseDir . '/framework/developer/interface/block/parameters/types/base/list.php',
61
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Base_Scalar' => $baseDir . '/framework/developer/interface/block/parameters/types/base/scalar.php',
62
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Boolean' => $baseDir . '/framework/developer/interface/block/parameters/types/boolean.php',
63
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Interface_Type' => $baseDir . '/framework/developer/interface/block/parameters/types/interface/type.php',
64
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_List' => $baseDir . '/framework/developer/interface/block/parameters/types/list.php',
65
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Number' => $baseDir . '/framework/developer/interface/block/parameters/types/number.php',
66
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Raw' => $baseDir . '/framework/developer/interface/block/parameters/types/raw.php',
67
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Structure' => $baseDir . '/framework/developer/interface/block/parameters/types/structure.php',
68
+ 'CJT_Framework_Developer_Interface_Block_Parameters_Types_Text' => $baseDir . '/framework/developer/interface/block/parameters/types/text.php',
69
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Base_Abstract' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/base/abstract.php',
70
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Base_List' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/base/list.php',
71
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Base_Scalar' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/base/scalar.php',
72
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Factory' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/factory.php',
73
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Interface_Type' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/interface/type.php',
74
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Parameters' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/parameters.php',
75
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Types_Array' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/types/array.php',
76
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Types_Boolean' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/types/boolean.php',
77
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Types_List' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/types/list.php',
78
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Types_Number' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/types/number.php',
79
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Types_Raw' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/types/raw.php',
80
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Types_Structure' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/types/structure.php',
81
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Parameters_Types_Text' => $baseDir . '/framework/developer/interface/block/shortcode/parameters/types/text.php',
82
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Segments_Segments' => $baseDir . '/framework/developer/interface/block/shortcode/segments/segments.php',
83
+ 'CJT_Framework_Developer_Interface_Block_Shortcode_Shortcode' => $baseDir . '/framework/developer/interface/block/shortcode/shortcode.php',
84
+ 'CJT_Framework_Developer_Lib_Template' => $baseDir . '/framework/developer/lib/template/template.php',
85
+ 'CJT_Framework_Extensions_Package_Activator' => $baseDir . '/framework/extensions/package/activator.php',
86
+ 'CJT_Framework_Extensions_Package_Blocks' => $baseDir . '/framework/extensions/package/blocks.php',
87
+ 'CJT_Framework_Extensions_Package_Extension' => $baseDir . '/framework/extensions/package/extension.php',
88
+ 'CJT_Framework_Extensions_Package_State_Extension' => $baseDir . '/framework/extensions/package/state/extension.php',
89
+ 'CJT_Framework_Extensions_Package_State_Packages' => $baseDir . '/framework/extensions/package/state/packages.php',
90
+ 'CJT_Framework_Html_Dom_Element_Script' => $baseDir . '/framework/html/dom/element/script.php',
91
+ 'CJT_Framework_Html_Dom_Elementbase' => $baseDir . '/framework/html/dom/elementbase.php',
92
+ 'CJT_Framework_Version_Version' => $baseDir . '/framework/version/version.php',
93
+ 'CJT_Framework_View_Block_Parameter_Base_Abstract' => $baseDir . '/framework/view/block/parameter/base/abstract.php',
94
+ 'CJT_Framework_View_Block_Parameter_Base_List' => $baseDir . '/framework/view/block/parameter/base/list.php',
95
+ 'CJT_Framework_View_Block_Parameter_Base_Scalar' => $baseDir . '/framework/view/block/parameter/base/scalar.php',
96
+ 'CJT_Framework_View_Block_Parameter_Grouper_Factory' => $baseDir . '/framework/view/block/parameter/grouper/factory.php',
97
+ 'CJT_Framework_View_Block_Parameter_Grouper_Tab_Tab' => $baseDir . '/framework/view/block/parameter/grouper/tab/tab.php',
98
+ 'CJT_Framework_View_Block_Parameter_Interface_Type' => $baseDir . '/framework/view/block/parameter/interface/type.php',
99
+ 'CJT_Framework_View_Block_Parameter_Parameters' => $baseDir . '/framework/view/block/parameter/parameters.php',
100
+ 'CJT_Framework_View_Block_Parameter_Renderer_Array_Array' => $baseDir . '/framework/view/block/parameter/renderer/array/array.php',
101
+ 'CJT_Framework_View_Block_Parameter_Renderer_Checkbox_Checkbox' => $baseDir . '/framework/view/block/parameter/renderer/checkbox/checkbox.php',
102
+ 'CJT_Framework_View_Block_Parameter_Renderer_Dropdown_Dropdown' => $baseDir . '/framework/view/block/parameter/renderer/dropdown/dropdown.php',
103
+ 'CJT_Framework_View_Block_Parameter_Renderer_Factory' => $baseDir . '/framework/view/block/parameter/renderer/factory.php',
104
+ 'CJT_Framework_View_Block_Parameter_Renderer_Imageslist_Imageslist' => $baseDir . '/framework/view/block/parameter/renderer/imageslist/imageslist.php',
105
+ 'CJT_Framework_View_Block_Parameter_Renderer_Input_Input' => $baseDir . '/framework/view/block/parameter/renderer/input/input.php',
106
+ 'CJT_Framework_View_Block_Parameter_Renderer_List_List' => $baseDir . '/framework/view/block/parameter/renderer/list/list.php',
107
+ 'CJT_Framework_View_Block_Parameter_Renderer_Structure_Structure' => $baseDir . '/framework/view/block/parameter/renderer/structure/structure.php',
108
+ 'CJT_Framework_View_Block_Parameter_Renderer_Textarea_Textarea' => $baseDir . '/framework/view/block/parameter/renderer/textarea/textarea.php',
109
+ 'CJT_Framework_Wordpress_Currentversion' => $baseDir . '/framework/wordpress/currentversion.php',
110
+ 'CJT_Framework_Wordpress_Feed' => $baseDir . '/framework/wordpress/feed.php',
111
+ 'CJT_Framework_Xml_Fetchscalars' => $baseDir . '/framework/xml/fetchscalars.php',
112
+ 'CJTxTable' => $baseDir . '/framework/db/mysql/xtable.inc.php',
113
+ 'HTMLCheckboxList' => $baseDir . '/framework/html/components/checkbox-list/checkbox-list.class.php',
114
+ 'HTMLComponent' => $baseDir . '/framework/html/component.class.php',
115
+ );
vendor/composer/autoload_namespaces.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_namespaces.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ );
vendor/composer/autoload_psr4.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_psr4.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ );
vendor/composer/autoload_real.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_real.php @generated by Composer
4
+
5
+ class ComposerAutoloaderInit4fa452c8944c65a2d19d46ecd72a469f
6
+ {
7
+ private static $loader;
8
+
9
+ public static function loadClassLoader($class)
10
+ {
11
+ if ('Composer\Autoload\ClassLoader' === $class) {
12
+ require __DIR__ . '/ClassLoader.php';
13
+ }
14
+ }
15
+
16
+ public static function getLoader()
17
+ {
18
+ if (null !== self::$loader) {
19
+ return self::$loader;
20
+ }
21
+
22
+ spl_autoload_register(array('ComposerAutoloaderInit4fa452c8944c65a2d19d46ecd72a469f', 'loadClassLoader'), true, true);
23
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit4fa452c8944c65a2d19d46ecd72a469f', 'loadClassLoader'));
25
+
26
+ $map = require __DIR__ . '/autoload_namespaces.php';
27
+ foreach ($map as $namespace => $path) {
28
+ $loader->set($namespace, $path);
29
+ }
30
+
31
+ $map = require __DIR__ . '/autoload_psr4.php';
32
+ foreach ($map as $namespace => $path) {
33
+ $loader->setPsr4($namespace, $path);
34
+ }
35
+
36
+ $classMap = require __DIR__ . '/autoload_classmap.php';
37
+ if ($classMap) {
38
+ $loader->addClassMap($classMap);
39
+ }
40
+
41
+ $loader->register(true);
42
+
43
+ return $loader;
44
+ }
45
+ }
46
+
47
+ function composerRequire4fa452c8944c65a2d19d46ecd72a469f($file)
48
+ {
49
+ require $file;
50
+ }
views/blocks/block/tmpl/codefile/codefile.html.tmpl CHANGED
@@ -40,7 +40,7 @@
40
  <li class="code-file-item create-file-row"><a class="create-file" href="#"><?php echo cssJSToolbox::getText('Create File') ?> ...</a></li>
41
  <li class="separator"></li>
42
  <li class="quick-toolbar">
43
- <input type="checkbox" class="select-code-file"> |
44
  <a class="edit" href="#"><?php echo cssJSToolbox::getText('Edit') ?></a>
45
  </li>
46
  </ul>
40
  <li class="code-file-item create-file-row"><a class="create-file" href="#"><?php echo cssJSToolbox::getText('Create File') ?> ...</a></li>
41
  <li class="separator"></li>
42
  <li class="quick-toolbar">
43
+ <input type="checkbox" class="select-code-file" /> |
44
  <a class="edit" href="#"><?php echo cssJSToolbox::getText('Edit') ?></a>
45
  </li>
46
  </ul>
views/blocks/block/tmpl/edit.html.tmpl CHANGED
@@ -7,7 +7,7 @@
7
  defined('ABSPATH') or die("Access denied");
8
  ?>
9
  <div class="cjt-toolbox edit-block-name">
10
- <input type="text" class="block-name" value="" maxlength="50">
11
  <div class="icons-group">
12
  <a class="cjt-tb-link cancel" title="<?php echo cssJSToolbox::getText('Cancel editing code block title') ?>"></a>
13
  <a class="cjt-tb-link save" title="<?php echo cssJSToolbox::getText('Save code block title') ?>"></a>
7
  defined('ABSPATH') or die("Access denied");
8
  ?>
9
  <div class="cjt-toolbox edit-block-name">
10
+ <input type="text" class="block-name" value="" maxlength="50" />
11
  <div class="icons-group">
12
  <a class="cjt-tb-link cancel" title="<?php echo cssJSToolbox::getText('Cancel editing code block title') ?>"></a>
13
  <a class="cjt-tb-link save" title="<?php echo cssJSToolbox::getText('Save code block title') ?>"></a>
views/blocks/manager/tmpl/blocks.html.tmpl CHANGED
@@ -13,11 +13,14 @@ defined('ABSPATH') or die("Access denied");
13
  ?>
14
  <?php require CJTOOLBOX_VIEWS_PATH . '/blocks/block/tmpl/codefile/codefile.html.tmpl' ?>
15
  <div id="custom-icon" class="icon32 blocks-icon32"></div>
16
- <h2><?php echo cssJSToolbox::getText('CSS & Javascript Toolbox') ?></h2>
17
- <span id="support-us"><?php echo cssJSToolbox::getText('Support us by purchasing') ?>: <a target="_blank" href="http://css-javascript-toolbox.com/cjte-developer/">CJTe Developer</a></span>
 
 
 
 
18
  <div id="cjt-banner-bar-right">
19
  <span class="cjt-banner-link">
20
- <a target="_blank" href="http://<?php echo cssJSToolbox::CJT_WEB_SITE_DOMAIN ?>/support/"><?php echo cssJSToolbox::getText('Support Forum') ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;
21
  <a target="_blank" href="http://<?php echo cssJSToolbox::CJT_WEB_SITE_DOMAIN ?>/documentation/"><?php echo cssJSToolbox::getText('Online Documentation') ?></a>
22
  </span>
23
  </div>
13
  ?>
14
  <?php require CJTOOLBOX_VIEWS_PATH . '/blocks/block/tmpl/codefile/codefile.html.tmpl' ?>
15
  <div id="custom-icon" class="icon32 blocks-icon32"></div>
16
+ <h2 class="cjt-main-title"><?php echo htmlentities( cssJSToolbox::getText('CSS & Javascript Toolbox') ) ?><?php echo apply_filters( 'cjt_after_main_title', '' ) ?></h2>
17
+
18
+ <?php ob_start(); ?>
19
+ <span id="support-us"><?php echo cssJSToolbox::getText('Support us by purchasing') ?>: <a target="_blank" href="http://css-javascript-toolbox.com/css-javascript-toolbox-plus/"><?php echo htmlentities( cssJSToolbox::getText('CSS & Javascript Toolbox PLUS') ) ?></a></span>
20
+ <?php echo apply_filters( 'cjt_main_titlt_supportus_link', ob_get_clean() ); ?>
21
+
22
  <div id="cjt-banner-bar-right">
23
  <span class="cjt-banner-link">
 
24
  <a target="_blank" href="http://<?php echo cssJSToolbox::CJT_WEB_SITE_DOMAIN ?>/documentation/"><?php echo cssJSToolbox::getText('Online Documentation') ?></a>
25
  </span>
26
  </div>
views/blocks/manager/tmpl/help/intro.html.tmpl CHANGED
@@ -7,14 +7,14 @@
7
  defined('ABSPATH') or die("Access denied");
8
  ?>
9
 
10
- <h2><?php echo cssJSToolbox::getText('Welcome to the CSS & JavaScript Toolbox dashboard') ?></h2>
11
  <p><?php echo cssJSToolbox::getText('Since you do not have any code blocks active, you can either: create a new code block or create a new code template.') ?></p>
12
  <h4><?php echo cssJSToolbox::getText('Create a new Code Block') ?></h4>
13
  <p><?php echo cssJSToolbox::getText('You can add a new code block by clicking the New Code Block button. Once your code block has been added, simply choose the editor you wish to work with and write your code. You can then select if you want your code to run in the header or the footer of the webpage. Now it\'s just a matter of selecting the webpage where you want the code to run on, by using the Assignment Panel. This panel lets you assign your code block to Pages, Posts, Categories, URLs, and much more, and you can select as many as you need. Once you have saved your code block by clicking the Save button (or Save All Changes button), you can see it in action by refreshing the assigned webpage.') ?></p>
14
  <h4><?php echo cssJSToolbox::getText('Create a new Code Template') ?></h4>
15
  <p><?php echo cssJSToolbox::getText('You can create code templates when you click into the Code Template Manager. To find this, hover over the icon showing a small cog over pages, and a tooltip should say Code Template Manager. Press this and if you have chosen to install the Template Samples, you will notice them sitting in there ready to be used. If you want to create a code template from scratch, click the Create Template button. Here you can choose a name for your code template, select a code language type (i.e. CSS, JavaScript, HTML, PHP), choose whether the template is in Draft or Published state, and then write your code. You have other tabs that allow you to write a Description, add Keywords and Version number, etc. Once you are happy with your code template, you can click the Save button') ?></p>
16
  <h4><?php echo cssJSToolbox::getText('Embedding or Linking a Code Templates') ?></h4>
17
- <p> <?php echo cssJSToolbox::getText('Code Templates can be either embedded or linked into your code blocks. To see all your code templates, you have to click the Template Lookup icon by hovering over the icon with the open/closed angled brackets. A popup will appear showing you code templates in the form of users and they are:') ?></p>
18
  <ol>
19
  <li><?php echo cssJSToolbox::getText('WordPress: default code templates that are packaged with WordPress') ?></li>
20
  <li><?php echo cssJSToolbox::getText('Sample Templates: CJT Sample Templates (depending if Sample Templates were selected during install)') ?></li>
7
  defined('ABSPATH') or die("Access denied");
8
  ?>
9
 
10
+ <h2><?php echo htmlentities( cssJSToolbox::getText('Welcome to the CSS & JavaScript Toolbox dashboard') ) ?></h2>
11
  <p><?php echo cssJSToolbox::getText('Since you do not have any code blocks active, you can either: create a new code block or create a new code template.') ?></p>
12
  <h4><?php echo cssJSToolbox::getText('Create a new Code Block') ?></h4>
13
  <p><?php echo cssJSToolbox::getText('You can add a new code block by clicking the New Code Block button. Once your code block has been added, simply choose the editor you wish to work with and write your code. You can then select if you want your code to run in the header or the footer of the webpage. Now it\'s just a matter of selecting the webpage where you want the code to run on, by using the Assignment Panel. This panel lets you assign your code block to Pages, Posts, Categories, URLs, and much more, and you can select as many as you need. Once you have saved your code block by clicking the Save button (or Save All Changes button), you can see it in action by refreshing the assigned webpage.') ?></p>
14
  <h4><?php echo cssJSToolbox::getText('Create a new Code Template') ?></h4>
15
  <p><?php echo cssJSToolbox::getText('You can create code templates when you click into the Code Template Manager. To find this, hover over the icon showing a small cog over pages, and a tooltip should say Code Template Manager. Press this and if you have chosen to install the Template Samples, you will notice them sitting in there ready to be used. If you want to create a code template from scratch, click the Create Template button. Here you can choose a name for your code template, select a code language type (i.e. CSS, JavaScript, HTML, PHP), choose whether the template is in Draft or Published state, and then write your code. You have other tabs that allow you to write a Description, add Keywords and Version number, etc. Once you are happy with your code template, you can click the Save button') ?></p>
16
  <h4><?php echo cssJSToolbox::getText('Embedding or Linking a Code Templates') ?></h4>
17
+ <p> <?php echo cssJSToolbox::getText('Code Templates can be either embedded or linked into your code blocks. To see all your code templates, you have to click the Template Lookup icon by hovering over the icon with the open|closed angled brackets. A popup will appear showing you code templates in the form of users and they are:') ?></p>
18
  <ol>
19
  <li><?php echo cssJSToolbox::getText('WordPress: default code templates that are packaged with WordPress') ?></li>
20
  <li><?php echo cssJSToolbox::getText('Sample Templates: CJT Sample Templates (depending if Sample Templates were selected during install)') ?></li>
views/setup/activation-form/public/js/default/default.js CHANGED
@@ -96,7 +96,7 @@
96
  // Disable form fields!
97
  progress.inputs = this.activationForm.find('input').prop('disabled', 'disabled').addClass('disabled');
98
  // Pass licene action along out with the form data!
99
- var request = $.extend(formData, {eddAction : this.todo});
100
  // Requesing server!
101
  var action = this.action ? this.action : 'license';
102
  this.server.send('setup', action, request)
96
  // Disable form fields!
97
  progress.inputs = this.activationForm.find('input').prop('disabled', 'disabled').addClass('disabled');
98
  // Pass licene action along out with the form data!
99
+ var request = $.extend(formData, {licenseAction : this.todo});
100
  // Requesing server!
101
  var action = this.action ? this.action : 'license';
102
  this.server.send('setup', action, request)