CSS & JavaScript Toolbox - Version 8.4

Version Description

  • Enhancement: START and END comments for CJT Assignments, CJT Shortcodes, and CJT Metabox code blocks. You can now go into the Page Source and perform a search for these comments to quickly find your code block within the source code.
  • Removed: Admin notice CJT plugin is no longer supported"
Download this release

Release Info

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

Code changes from version 8.3.2 to 8.4

access.points/ajax.accesspoint.php CHANGED
@@ -48,10 +48,17 @@ class CJTAjaxAccessPoint extends CJTAccessPoint {
48
  if (isset($_REQUEST['cjtajaxmodule'])) {
49
  # try to get module associated to passed module
50
  $accessPointClassLoader = CJT_Framework_Autoload_Loader::autoLoad($_REQUEST['cjtajaxmodule']);
51
- if ($accessPointClassLoader) {
52
- $this->overrideControllersPath = $accessPointClassLoader->getPath() . DIRECTORY_SEPARATOR . 'controllers';
53
- $this->overrideControllersPrefix = $accessPointClassLoader->getPrefix();
54
- }
 
 
 
 
 
 
 
55
  }
56
  // Instantiate controller.
57
  $controller = parent::route($loadView, $request);
48
  if (isset($_REQUEST['cjtajaxmodule'])) {
49
  # try to get module associated to passed module
50
  $accessPointClassLoader = CJT_Framework_Autoload_Loader::autoLoad($_REQUEST['cjtajaxmodule']);
51
+
52
+ // CODE MODIFIED BY RBJ -- START
53
+ if ($accessPointClassLoader) {
54
+ if ($_REQUEST['cjtajaxmodule'] == 'ECMEHD') {
55
+ $this->overrideControllersPath = dirname(__DIR__) . '-plus/CJTEnv/controllers';
56
+ } else {
57
+ $this->overrideControllersPath = $accessPointClassLoader->getPath() . DIRECTORY_SEPARATOR . 'controllers';
58
+ }
59
+ $this->overrideControllersPrefix = $accessPointClassLoader->getPrefix();
60
+ }
61
+ // CODE MODIFIED BY RBJ -- END
62
  }
63
  // Instantiate controller.
64
  $controller = parent::route($loadView, $request);
access.points/main.accesspoint.php CHANGED
@@ -30,29 +30,6 @@ class CJTMainAccessPoint extends CJTAccessPoint {
30
  // Needed for calling from nuinstall static method!
31
  self::$instance = $this;
32
  }
33
-
34
- /**
35
- * put your comment there...
36
- *
37
- */
38
- public function _OnCJTDeadNotice()
39
- {
40
- require CJTOOLBOX_PATH . DIRECTORY_SEPARATOR . 'includes' .
41
- DIRECTORY_SEPARATOR . 'html' .
42
- DIRECTORY_SEPARATOR . 'CJTDeadNotice.html.php';
43
- }
44
-
45
- /**
46
- * put your comment there...
47
- *
48
- */
49
- public function _OnDismissCJTDeadNotice()
50
- {
51
-
52
- update_option('cjt-dead-notice-dismissed', true);
53
-
54
- die();
55
- }
56
 
57
  /**
58
  * put your comment there...
@@ -80,16 +57,6 @@ class CJTMainAccessPoint extends CJTAccessPoint {
80
  public function main()
81
  {
82
 
83
- if (!get_option('cjt-dead-notice-dismissed'))
84
- {
85
-
86
- add_action('wp_ajax_cjt-dead-notice', array($this, '_OnDismissCJTDeadNotice'));
87
-
88
- add_action('admin_notices', array($this, '_OnCJTDeadNotice'));
89
- add_action('network_admin_notices', array($this, '_OnCJTDeadNotice'));
90
- }
91
-
92
-
93
  // Run the coupling only if installed!
94
  if (CJTPlugin::getInstance()->isInstalled())
95
  {
30
  // Needed for calling from nuinstall static method!
31
  self::$instance = $this;
32
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
  /**
35
  * put your comment there...
57
  public function main()
58
  {
59
 
 
 
 
 
 
 
 
 
 
 
60
  // Run the coupling only if installed!
61
  if (CJTPlugin::getInstance()->isInstalled())
62
  {
controllers/blocks-coupling.php CHANGED
@@ -404,7 +404,18 @@ class CJTBlocksCouplingController extends CJTController {
404
 
405
  /** @todo Include Debuging info only if we're in debuging mode! */
406
  if ( 1 ) {
407
- $evaluatedCode = "\n<!-- Block ({$blockId}) START-->\n{$evaluatedCode}\n<!-- Block ({$blockId}) END -->\n";
 
 
 
 
 
 
 
 
 
 
 
408
  }
409
 
410
  $this->blocks[ 'code' ][ $block->location ] .= $this->onappendcode( $evaluatedCode );
404
 
405
  /** @todo Include Debuging info only if we're in debuging mode! */
406
  if ( 1 ) {
407
+ // CODE UPDATED BY RBJ -- START
408
+ if (trim($evaluatedCode) != ''):
409
+ global $post;
410
+ $checkMetaBlock = get_post_meta($post->ID, '__CJT-BLOCK-ID', true);
411
+
412
+ if (!empty($checkMetaBlock) && $checkMetaBlock == $blockId):
413
+ $evaluatedCode = "\n\n<!-- CJT Meta Block ({$blockId}) - {$block->name} - START -->\n{$evaluatedCode}\n<!-- CJT Meta Block ({$blockId}) - {$block->name} - END -->\n\n";
414
+ else:
415
+ $evaluatedCode = "\n\n<!-- CJT Global Block ({$blockId}) - {$block->name} - START -->\n{$evaluatedCode}\n<!-- CJT Global Block ({$blockId}) - {$block->name} - END -->\n\n";
416
+ endif;
417
+ endif;
418
+ // CODE UPDATED BY RBJ -- END
419
  }
420
 
421
  $this->blocks[ 'code' ][ $block->location ] .= $this->onappendcode( $evaluatedCode );
controllers/coupling/shortcode/block/block.php CHANGED
@@ -94,7 +94,11 @@ class CJT_Controllers_Coupling_Shortcode_Block extends CJTHookableClass {
94
  $blockCode = CJTPHPCodeEvaluator::getInstance($block)->exec(array('cb' => $spi))->getOutput();
95
  // CJT Shortcode markup interface (CSMI)!
96
  // CSMI is HTML markup to identify the CJT block Shortcode replacement.
97
- $replacement = "<{$this->options['tag']} id='{$spi->containerElementId()}' class='csmi csmi-bid-{$block->id} csmi-{$block->name}'>{$this->content}{$blockCode}</{$this->options['tag']}>";
 
 
 
 
98
  // Get linked templates.
99
  $linkedStylesheets = '';
100
  $templates = $model->getLinkedTemplates($block->id);
@@ -116,7 +120,7 @@ class CJT_Controllers_Coupling_Shortcode_Block extends CJTHookableClass {
116
  }
117
  }
118
  // Prepend linked Stylesheets to the replacement.
119
- if (isset($linkedStylesheets)) {
120
  $replacement = "<style type='text/css'>{$linkedStylesheets}</style>{$replacement}";
121
  }
122
  }
94
  $blockCode = CJTPHPCodeEvaluator::getInstance($block)->exec(array('cb' => $spi))->getOutput();
95
  // CJT Shortcode markup interface (CSMI)!
96
  // CSMI is HTML markup to identify the CJT block Shortcode replacement.
97
+
98
+ // CODE UPDATED BY RBJ -- START
99
+ $replacement = "\n\n<!-- CJT Shortcode Block ({$block->id}) - {$block->name} - START -->\n<{$this->options['tag']} id='{$spi->containerElementId()}' class='csmi csmi-bid-{$block->id} csmi-{$block->name}'>{$this->content}{$blockCode}</{$this->options['tag']}>\n<!-- CJT Shortcode Block ({$block->id}) - {$block->name} - END -->\n\n";
100
+ // CODE UPDATED BY RBJ -- END
101
+
102
  // Get linked templates.
103
  $linkedStylesheets = '';
104
  $templates = $model->getLinkedTemplates($block->id);
120
  }
121
  }
122
  // Prepend linked Stylesheets to the replacement.
123
+ if (isset($linkedStylesheets) && !empty($linkedStylesheets)) {
124
  $replacement = "<style type='text/css'>{$linkedStylesheets}</style>{$replacement}";
125
  }
126
  }
css-js-toolbox.php CHANGED
@@ -2,8 +2,8 @@
2
  /*
3
  Plugin Name: CSS & JavaScript Toolbox
4
  Plugin URI: http://css-javascript-toolbox.com/
5
- Description: The CSS & JavaScript Toolbox plugin on WordPress.org is no longer supported. This has been replaced by our new code management plugin also on WordPress.org called <a href="https://wordpress.org/plugins/easy-code-manager">Easy Code Manager</a>.
6
- Version: 8.3.2
7
  Author: Wipeout Media
8
  Author URI: http://css-javascript-toolbox.com
9
  License:
2
  /*
3
  Plugin Name: CSS & JavaScript Toolbox
4
  Plugin URI: http://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: 8.4
7
  Author: Wipeout Media
8
  Author URI: http://css-javascript-toolbox.com
9
  License:
framework/developer/interface/block/shortcode/parameters/parameters.php CHANGED
@@ -132,7 +132,7 @@ extends CJT_Framework_Developer_Interface_Block_Parameters_Parameters {
132
  */
133
  public function shortcode($blockName) {
134
  // Initialize.
135
- $shortcode = "[cjtoolbox name='{$blockName}'\n\t\t%s]%s\n[/cjtoolbox]";
136
  $shortcodeContent = '';
137
  $params = $this->getParams();
138
  $attributes = array();
132
  */
133
  public function shortcode($blockName) {
134
  // Initialize.
135
+ $shortcode = "[cjtoolbox name='{$blockName}'%s]%s[/cjtoolbox]"; // <-- CODE MODIFIED BY RBJ
136
  $shortcodeContent = '';
137
  $params = $this->getParams();
138
  $attributes = array();
readme.txt CHANGED
@@ -1,35 +1,77 @@
1
  === CSS & JavaScript Toolbox ===
2
  Contributors: wipeoutmedia
3
- Author URL: https://easy-code-manager.com
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EWDWF75JHT9Q6
5
  Tags: post, posts, admin, sidebar, page, pages, widget, image, shortcode, plugin, google, customise, style, scripts, hack, Wordpress, HTML, CSS, JavaScript, HTML5, jQuery, PHP, code, script, scripts, manage, management, display, output, header, footer, apply, requests, match, hook, execute, run
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.8.1
10
- Stable tag: 8.3.2
 
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
 
16
- = IMPORTANT NOTE: =
17
- The CSS & JavaScript Toolbox plugin on WordPress.org is no longer supported. This has been replaced by our new code management plugin called Easy Code Manager, which you can download for free here: [Easy Code Manager on WordPress.org](https://wordpress.org/plugins/easy-code-manager)
18
 
19
- This free version has been fully redesigned and does not have a number of features you would expect in CSS & JavaScript Toolbox. That said, you may wish to stay on CSS & JavaScript Toolbox unless you intend to update to our premium Easy Code Manager PLUS plugin.
20
 
21
- = Easy Code Manager PLUS =
22
- This is our premium plugin that extends the free version of Easy Code Manager - adding an amazing amount of features. Why not take a look to see if it suits your needs. Click here: [Easy Code Manager PLUS](https://easy-code-manager.com)
23
 
24
- = Compatibility =
25
- At this stage CSS & JavaScript Toolbox and Easy Code Manager cannot be installed and activated at the same time. It is advised to BACKUP all your CSS & JavaScript Toolbox code blocks, code files and template data, and take note of all your assignments and shortcode placements. This is a precautionary recommendation so you don’t lose your work.
 
 
 
 
 
 
 
 
 
 
26
 
27
- Once CSS & JavaScript Toolbox is deactivated, then you should be able to install and activate Easy Code Manager. Currently, both plugins share the same database structure and depending on your current version of CSS & JavaScript Toolbox, you may just see all your original CJT code blocks intact in the Easy Code Manager main dashboard. However, please do not rely on this and BACKUP all of your work before trying to install the Easy Code Manager plugins on your site.
 
28
 
29
- = CSS & JavaScript Toolbox premium license holders =
30
- If you are a premium CSS & JavaScript Toolbox (CJT) license holder with a valid license key that has NOT expired, you will be eligible to receive Easy Code Manager for free with one year of premium updates. Please send us a message along with your valid license key via our Contact page OR via: info (at) easy-code-manager.com
31
 
32
- Thanks for your support.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
  == Installation ==
35
  1. If you're upgrading from older versions its highly recommended to backup your database before upgrading.
@@ -37,103 +79,178 @@ Thanks for your support.
37
  3. Activate the plugin through the 'Plugins' menu in WordPress
38
  4. Click 'CSS & JavaScript Toolbox' link in the main navigation (left side of your Dashboard).
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  == Changelog ==
41
 
 
 
 
 
42
  = 8.3.2 =
43
- * Warning: Add CJT Plugin "not longer supported" notice
44
 
45
  = 8.3.1 =
46
  * Fix: Development log files created at production
47
 
48
  = 8.3 =
49
- * Enahnce: CJT Won't work and admin notice displayed when PHP version < 5.3
50
- * Enahnce: Dashboard Statictics Metabox display more fields
51
- * Enahnce: Update ACE Editor
52
- * Fix: some commonly detected Plugins conflict compatibility
53
- * Fix: SQL errors commonly appears in Error log file
54
- * Fix: Dashboard Statictics Metabox exception when CJT server is not reachable
55
- * Fix: Dashboard Statictics Metabox blocks count includs backups block
56
- * Enahnce: Update ACE Editor to the last version
57
 
58
  = 8.2 =
59
- * PHP version check on activation
60
- * Fixed fatal error: 'break' not in the 'loop' or 'switch' context in /path/to/wp-content/plugins/css-javascript-toolbox/controllers/block.php on line 145
61
- * Will display message during installation steps on network-level errors (before only endless animation was shown)
62
- * Now CJT is compatible with BulletProof Security WP plugin, so CJT can be installed / used without extra changes in this security plugin
63
 
64
  = 8.1 =
65
- * Compatibility with Wordpress 4.3.1
66
- * Core Upgrades/Enhancements
67
 
68
  = 8.0.4 =
69
- * Check Wordpress 4.3 compatibility
70
- * List future deprecated features
71
 
72
  = 8.0.3 =
73
- * Add support us link to Dashboard metabpx
74
- * Add support us link to CJT header
75
 
76
  = 8.0.2 =
77
- * Remove: CJT License Setup form as CJT is now 100% FREE.
78
- * Fix: Multi site CJT Network Extensions is not loaded.
79
 
80
  = 8.0.1 =
81
- * Fix: Fresh installer stopped when 'Adding Wordpress built-in scripts and styles as CJT Templates'
82
- * Fix: Dashboard metabox notices when CJT is not yet installed
83
 
84
  = 8.0 =
85
- * Show premium extensions list in Dashboard Widget instead of Scripts Packages
86
- * Framework update that makes CJT functionality more extendable
87
- * Remove: Editor Toolbox Buttons and Block File, Edit and View menu as it now presented in separated extension
88
- * Remove: Editor Themes Switcher list as it now presented in separated extension
89
- * Remove: Import and Export Tools as it not presented in separated extension
90
- * Fix: Conflict with other themes like X Theme
91
 
92
  = 7.2 =
93
  * Fix: Block Code file name moving away when open/close Block metabox
94
  * Fix: Shortcode list is too small for Shortcode names
95
- * Enhance: CJT Framework for packages and extensions updates
96
 
97
  = 7.1.2 =
98
- * Enhance: Show Latest News on Dashboard Widget
99
 
100
  = 7.1.1 =
101
- * Enhance: Add Statistics Dashboard Widget that shows few useful fields.
102
 
103
  = 7.1 =
104
- * Enhance: Processing and Memory optimization for better performance.
105
- * Enhance: Block Box Themes Support.
106
- * Enhance: 32 Themes is now supported to be applied for the whole block box.
107
- * Enhance: Applying theme per browser. Allow for assigning appropriate theme for different devices.
108
- * Enhance: Assigned/All mode switchers for assignment panel list. You can show all items even not selected ones or show only assigned to the block.
109
- * Enhance: Bullet-Proof Assignment Panel layout so it would always reserved even if another Plugin wrongly load jQuery TABS/ACCORDION Styles.
110
- * Enahnce: General UI enhancements.
111
- * Enahnce: Code editor updates.
112
- * Enhance: Turns CJT Block into a tiny Project that host Multiple "Managed" Code-Files instead of just one.
113
- * Enhance: No need to create a Block for each Language Type and assign them to the same Wordpress Page. One Block with Multiple Code Files solved that by creating only one Block for each assgined request.
114
- * Enhance: Code Files Support Language Type, Code, Description and TAG fields.
115
- * Enhance: Write Design-Time Organized Code by separating them into code-files (JS, CSS, PHP, HTML) and CJT will merge them all at run-time.
116
- * Enhance: There is no need to write <script>, <style> or <?php ?> tags when writing Javascript, CSS or PHP Codes. Code File assigned language would take care of that.
117
- * Enhance: Control/Modify auto-added <script>, <style> or <?php ?> TAGS by modifying Code File TAG field.
118
- * Enhance: Automatically Change Code Editor language to currently active Code File language.
119
- * Enhance: Manage Code Files without leaving the Block Page.
120
- * Enhance: Block revision is now created based on the Current Active Code File. Therefore each Code File has its owen revisions.
121
- * Enhance: Its now possible for multiple Authors to work on the same Block by creating Multiple Code-Files.
122
- * Enhance: Add Multiple Code Files to CJT Packages.
123
- * Enhance: Block File, Edit and View Menus.
124
- * Enhance: 'Load Local', 'Load Url' and 'Reload' to load Block Code from Local File, Url and Reload From Server respectively.
125
- * Enhance: Save/Download Block Current Active Code File.
126
- * Enhance: Undo, Redo, Find, Find Next, Find Previous, Replace, Goto Line, Goto Line Up, GoTo Line Down, GoTo Next Error, GoTo Previous Error, Fold, Fold All, UnFold, UnFold All, To Lower Case and To Upper Case Edit Menu functions added.
127
- * Enhance: 'Settings' Edit Menu item for Fully Customize Code Editor Fonts, Show/Hide Print Margine, Keybinding Methods, Show/Hide Scroll, Scroll Speed, Readonly, Show/Hide Gutter, TAB Size, New Line Mode and much more!
128
- * Enhance: Show/Hide StatusBar via View StatusBar Menu.
129
- * Enhance: CJT Website is now support Full documentation Tutorials that expose many internal features/possibilities that can be achived by CJT.
130
- * Enhance: Code Blocks disappeared after upgrading to Wordpress 3.9 and sever running PHP >= 5.5.
131
- * Enhance: Packages Management System (BETA)
132
- * Enhance: Define Shortcode Parameters by creating package and input their values from the CJT Shortcode Parameters form.
133
 
134
  = 6.1.5 =
135
- * Enhance: Editor enhancements and updates.
136
- * Enhance: Framework updates (Allow installing New CAC extension).
137
  * Fix: Safari Browser pagination icon position.
138
 
139
  = 6.1.4 =
@@ -150,12 +267,12 @@ Thanks for your support.
150
  * Remove: Don't load more assignment objects by scroll (Community users has to use the pagination list).
151
 
152
  = 6.1.3 =
153
- * Enhance: UI Compatibility with Wordpress >= 3.8.
154
  * Deprecated: New Block Form Activate, Location Hook and Initial position fields.
155
  * Deprecated: Block Revisions.
156
  * Deprecated: Blocks Backup and Restore.
157
  * Deprecated: Assignment Panel Select-Childs Checkboxes.
158
- * Deprecated: Minimize and Mazimize All.
159
  * Deprecated: Batch Process (Delete All and Delete Empty).
160
  * Deprecated: Output Location Switch (Header and Footer).
161
  * Deprecated: State Switch (Activate, Deactivate and Invert).
@@ -169,14 +286,14 @@ Thanks for your support.
169
  * Fix: Validate block name when editing and adding blocks.
170
  * Fix: Code Blocks is not being applied on WPEngine servers and other servers related to the MYSQL query error.
171
  * Fix: Load block code one time after its first time opened as it was loaded every time the block is opened.
172
- * Enhance: Show User-PHP code errors only when WP_DEBUG is set to TRUE.
173
- * Enhance: Auto-Size edit-block-name text field to fit the current block-name, therefor display the name without the need of moving the cursor to the end.
174
- * Enhance: Disable new-block form fields while saving prevent user from duplicating block when traffic is slow.
175
 
176
  = 6.1 =
177
- * Enhance: Initially don't load Block assignment panel items: Speed up Blocks page loading time when its initially opened, also affect the browser performance as the items is not loaded or rendered before its required.
178
- * Enhance: Initially don't load Block code for the closed/minimised Blocks: Loading those Blocks will be done through AJAX once the Block is opened by user.
179
- * Enhance: The ability to 'Cancel' revision mode and get back to the normal mode without refreshing the whole page.
180
  * Update: Animate Block 'Save' button for not-saved Blocks.
181
  * Update: The Assignment-Panel is now Loads the assigned items only when enter the revision and backup modes.
182
  * Update: Set assignment-Panel Advanced-TAB as the default active TAB.
@@ -184,15 +301,15 @@ Thanks for your support.
184
  * Fix: Block 'Save' and 'Save All Changes' buttons are stay enabled after updating Block Assignment-Panel items and revert them back again. The buttons is enabled even if the Block content has not been changed.
185
 
186
  = 6.0.15 =
187
- * Enhance: Uninstaller is now configurable so that admin can specify is to wipeout the data or not! This is really great for manual upgrade to the PE versions!
188
 
189
  = 6.0.14 =
190
- * Add: Accept Shortcode parameters and segments. Provide PHP framework for code blocks to define, validate and reading Shortcode parameters.
191
- * Add: Allow using block 'name' in additional to 'id' when using Shortcodes.
192
  * Fix: Failed to work with non-ascii (e.g Arabic) characters.
193
- * Enhance: Viewing block info is now showing Shortcode using block 'name' instead of 'id'.
194
- * Enhance: Embedded Shortcode with its closing tag as the Shortcode content is now being used by the handler blocks.
195
- * Enhance: Revert block Shortcode 'force' parameter default value to 'true' therefore allow using multiple Shortcode for the same block without setting 'force' attribute.
196
 
197
  = 6.0.13 =
198
  * Fix: CJT hijacks Plugins page after activate or deactivate a Plugin.
@@ -201,7 +318,7 @@ Thanks for your support.
201
  * Fix: PHP code is not getting evaluated when CJT code Block delegated using Shortcode.
202
 
203
  = 6.0.11 =
204
- * Fix: Add ACE Editor PHP Worker as it was missing.
205
  * Enhancement: List only Public Custom Posts that can be accessed through Wordpress URL under Assignment Panel Custom Posts Tab. Therefor enhance performance for sites that has 'Log' custom post that might has hundreds or records read for every code block.
206
 
207
  = 6.0.9 =
@@ -209,76 +326,76 @@ Thanks for your support.
209
  * Fix: Installer operations state is cleared after the install/upgrade is interrupted, cause the repeats/re-executes of the install/upgrade operations.
210
 
211
  = 6.0.7 =
212
- * Fix: textarea HTML tag break down CJT Block code.
213
 
214
  = 6.0.6 =
215
  * Fix: Conflict with other Plugins!
216
  * Fix: Javascript exception thrown when dismissing the install/upgrade notice.
217
- * Enhancement: Disallow (with user notice) upgrade/downgrade if the target version is not being supported, therefor saving user data!
218
  * Enhancement: Don't break down the site if manual upgrade/downgrade process is uncompleted! Allow user to revert back manually or disable the Plugin.
219
  * Enhancement: E_ALL complain! Suppress all notices when WP_DEBUG set to true, allow better development, fast performance and error handling.
220
 
221
  = 6.0 =
222
- * Core code is 100% re-written for optimum performance and future enhancements, and is 100% based on MVC (Model–view–controller) design.
223
- * 100% Using Web 2.0
224
- * Applying code blocks to the requests are now enhanced to boost performance.
225
- * The ability of interacting with admin pages too - not only the website side as in the previous versions.
226
- * Light-weight and smart user-interface.
227
- * Multiple operations can be executed at a time! For example, you can work on a code block while another block(s) is saving.
228
- * Code block data is automatically revisioned after saving.
229
- * Hot Key added for saving code block.
230
- * Empty blocks can now exist.
231
- * Interaction with each code block from a simple smart graphical Toolbox using Web 2.0
232
- * Delegate code block using Shortcodes. You can do that manually or through CJT smart TinyMCE dropdown list button.
233
- * Integrate ACE Editor to provide syntax highlighting and correction while writing codes!
234
- * Syntax highlighting for 4 languages: CSS, HTML, JavaScript and PHP.
235
- * Entire plugin is now extensible! CJT supports installed extensions to extend or enhance its features.
236
- * Batch operations (Toggling On and Off, Activate, Deactivate and Revert states, Delete empty and Delete all) toolbox allow for batch update of all code blocks.
237
- * Rename and save code block name.
238
- * You can now save multiple backups.
239
- * Activate and Deactivate code blocks feature.
240
  * Fix: blocks order was correctly displayed from the admin side, but had no effect while applying blocks to the website side.
241
- * Templates system is totally removed and will be presented with many enhancements via a separate extension.
242
- * Allow assigning code blocks to Posts and Custom Posts.
243
- * Apply 'Category' block to all the child posts (or sub-posts) within that category.
244
- * Assignment Panel smart feature to assist while working with hierarchical items (sub-pages, sub-categories, etc).
245
- * Auxiliary tab has been added to the Assignment Panel in order to organise all the predefined items (or requests) under a single tab.
246
- * Moved and added: 'Front Page', 'All Pages' and 'All Posts' predefined items to appear under the Auxiliary tab.
247
- * Newly defined: Blog Index, All Categories, Recent Posts, Entire Website, Website Backend, Search Pages, All Archives, Tag Archives, Author Archives, Attachment Pages and 404 Error, which are listed under the Auxiliary tab.
248
- * Support of regular expressions for defining code block Point-To-Hook
249
- * Security enhancements, only administrators can execute CJT backend operations.
250
- * Each block has an Information metabox (Author, created date, modification date, and Shortcode).
251
- * Create new block with initial properties (state, name and position).
252
- * Internal error detection routine for detecting Ajax errors that may have happened away from users view.
253
- * There is an extensive CJT User Manual PDF file attached in the /docs folder. You can also download this file through the website - click for [CJT Free User Manual](http://css-javascript-toolbox.com/css-javascript-toolbox-free)
254
- * Use of a separated Dashboard item to embrace all CJT plugin pages.
255
- * Added separate installer and upgrade pages for both CJT v0.3 and v0.8 to allow watching of the installation processes.
256
- * Added an uninstaller to completely erase all CJT data from the system.
257
- * 100% tested and working with BPS (BulletProof Security) plugin, after applying [simple Ajax bypass rule](http://css-javascript-toolbox.com/support/topic/bulletproof-security-ajax-issue-and-resolution-2)
258
 
259
  = 0.8 =
260
- * Modifying template code.
261
- * Header and footer hooks support so you can select which hook to output CSS/JS code.
262
- * Code blocks can be reordered.
263
- * Code blocks can now be given names that can be edited and saved.
264
- * New icons and improved UI.
265
- * Multilingual support: Only English translation is shipped with this version.
266
- * Style overriding: code blocks order will allow any higher-positioned blocks style syntax to override lower-positioned blocks style syntax.
267
- * Embedded Scripts: Embedded WordPress or Scripts that are shipped out with CJToolbox plugin by just checking them.
268
- * Backup and Restore blocks data.
269
- * Bug Fix: New code blocks are not toggling unless the page is refreshed.
270
- * Bug Fix: CSS/JS template extra slash character problem.
271
- * Bug Fix: Code block deletion issues.
272
- * Bug Fix: Code is not applied to the URL list except the last URL.
273
- * Bug Fix: Cannot use string offset as array error.
274
- * Bug Fix: Invalid argument supplied foreach() error.
275
 
276
  = 0.3 =
277
- * This is the very first release.
278
 
279
  == Credits ==
280
-
281
- Copyright © 2017, Wipeout Media.
282
 
283
  This program is free software; you can redistribute it and/or
284
  modify it under the terms of the GNU General Public License
1
  === CSS & JavaScript Toolbox ===
2
  Contributors: wipeoutmedia
3
+ Author URL: http://css-javascript-toolbox.com
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EWDWF75JHT9Q6
5
  Tags: post, posts, admin, sidebar, page, pages, widget, image, shortcode, plugin, google, customise, style, scripts, hack, Wordpress, HTML, CSS, JavaScript, HTML5, jQuery, PHP, code, script, scripts, manage, management, display, output, header, footer, apply, requests, match, hook, execute, run
6
  License: GPLv2 or later
7
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
8
  Requires at least: 3.9
9
+ Requires PHP: 5.4
10
+ Tested up to: 4.9.4
11
+ Stable tag: 8.4
12
 
13
+ Easily add CSS, JavaScript, HTML and PHP code to unique CJT code blocks and assign them anywhere on your website.
14
 
15
  == Description ==
16
 
17
+ ### Best code management and injection plugin for WordPress ###
 
18
 
19
+ CSS & JavaScript Toolbox (or CJT) is a code management and injection plugin that allows you to easily and speedily customise the functionality and appearance of your website.
20
 
21
+ #### CSS & JavaScript Toolbox is BACK!!! ####
22
+ Yes, CJT was on a long holiday break but is now back stronger than ever with some cool new features, issues and bugs fixed, compatibility with the latest WordPress, and more tools than a hardware shop. :)
23
 
24
+ ### Why CJT? ###
25
+ * Inject CSS, JS, PHP and HTML code to: Pages, Posts, Custom Posts, Categories, Tags, Auxiliary (e.g. Everywhere, All Posts, Blog Index, etc), URLs, Regex, Inverted Assignments and more
26
+ * The editor was developed for writing code and will not strip tags
27
+ * Why create custom plugins? Just add scripts from the web such as CodeCanyon, JSFiddle or GitHub
28
+ * Easily create and test all of your scripts in one dashboard
29
+ * Add all your front-end mods without touching core Theme files
30
+ * Add back-end functionality without touching core WordPress files
31
+ * No need for FTP. Add your code, click Save, see the change
32
+ * Add your social, YouTube, Google analytics or advertising code
33
+ * Streamline your website development whether solo or in a team
34
+ * Teach yourself to code or teach others to code in the classroom
35
+ * And... probably a million other uses
36
 
37
+ ### Why purchase CJT PLUS? ###
38
+ [Click to check out CJT PLUS pricing](http://css-javascript-toolbox.com/pricing) - MEGA SALE ON NOW!!!
39
 
40
+ The CJT PLUS extension plugin gives you more options, more tools, and more precision.
 
41
 
42
+ ### Benefits of PLUS ###
43
+ * Inject code via CJT Shortcodes, CJT Metabox code blocks, and CJT Widgets for your sidebar or footer
44
+ * Powerful editing environment with stacks of must-have editing tools like auto-formatting and syntax highlighting
45
+ * Beautify feature to tidy up your code like a Pro for readability
46
+ * Minify feature to compress code for boosting performance
47
+ * 32 light and dark editor themes to suits your editing style
48
+ * Full-width and Full-screen modes for distraction-free editing
49
+ * Code Auto Completion feature for auto-completion and insertion of CSS, JS, PHP, and HTML code syntax or snippets
50
+ * Revisions system to auto-backup your code blocks on each save
51
+
52
+ [CJT PLUS](http://css-javascript-toolbox.com/pricing) has been extensively tested with over 100 code blocks and 1000's of Assignments (e.g. Posts, Pages, Categories, etc). It was all made possible using a combination of AJAX scrolling and pagination. Also, CJT PLUS gives you a quick pagination dropdown selector, which is super-handy if your site has hundreds or even thousands of posts.
53
+
54
+ #### New Feature - CJT Commenting ####
55
+ We have added START and END comments for each of the four main code block injection types: CJT Assignments, CJT Widgets, CJT Shortcodes, and CJT Metabox code blocks. You can now go into the Page Source and perform a search for these comments to quickly find your code block within the source code. This is a great CJT PLUS feature for debugging!
56
+
57
+
58
+ ### Sound Good? ###
59
+ We want you to buy, try, and rely on the premium CJT PLUS extension plugin so we have made the pricing very low. [Learn about the new and improved CJT PLUS](http://css-javascript-toolbox.com/).
60
+
61
+ = How does it work? =
62
+ CJT is extremely flexible and versatile. Since it was designed to be easy, adding scripts and styles can be done in as little as two steps:
63
+ - adding your code directly into unique CJT code blocks
64
+ - assigning where these code blocks go
65
+
66
+ 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.
67
+
68
+ = Support Us =
69
+ 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.
70
+
71
+ You can also support us by providing a feedback review and rating on WordPress.org, and spreading the word and recommending CJT to others.
72
+
73
+ = Follow the Developments =
74
+ If you like to know more about the development state, issues and to track future versions code please follow us on GitHub Plugin repository.
75
 
76
  == Installation ==
77
  1. If you're upgrading from older versions its highly recommended to backup your database before upgrading.
79
  3. Activate the plugin through the 'Plugins' menu in WordPress
80
  4. Click 'CSS & JavaScript Toolbox' link in the main navigation (left side of your Dashboard).
81
 
82
+ == Frequently Asked Questions ==
83
+ = Why was the CJT plugin developed and what is it used for? =
84
+ The CJT plugin was created to help website authors write their own code. The plugin allows you to contribute to your Wordpress installation code via a simple web interface, where you can modify and extend the functionality and appearance of your website by writing code directly into CJT code blocks. A typical example of using the plugin can include changing the the way a specific Wordpress page is displayed, or making a page more interactive by adding some JavaScript (Dynamic HTML).
85
+
86
+ = What is a CJT 'code block'? =
87
+ The CJT code block is the basic unit for writing code and to associate it with specific Wordpress requests.
88
+
89
+ = What is the Assignment Panel? =
90
+ The Assignment Panel is a tabs window, which appears on the right side of the code block editor and is used to assign/apply the code block into specific requests.
91
+
92
+ = Can you select more than one item from the Assignment Panel? =
93
+ Yes. You can select any number of items you need, there is no limitation regarding this.
94
+
95
+ = Can you assign multiple blocks to the same items from the Assignment Panel? =
96
+ Yes. It's one of the most useful features that CJT supports as it allows you to manage/split your codes into several code blocks, allowing you to override code in a former (or lower ordered) code block.
97
+
98
+ = What is Pages, Posts, Categories and Custom Posts tabs? =
99
+ These lists with checkboxes represent all of your WordPress Pages, Posts, Categories and Custom Posts that your entire website contains. It also supports subpages and sub-categories, which you will also find in there.
100
+
101
+ = What is the Auxiliary tab? =
102
+ As there are a number of requests that are not available as normal Wordpress items (e.g. Pages, Posts, etc) but since it's commonly required and most likely be used, you will find them pre-defined in the Auxiliary tab. In the Auxiliary tab you can find pages like: Home, Blog Index, Author, 404 error, Tag, Archive, Entire website, Front-end, Admin backend and much more!
103
+
104
+ = Is it better to use the URLs tab, or select items if found through other tabs? =
105
+ Pages, Posts, Custom Posts and Categories tabs are created to simplify the assignment process for all types of users. Using URLs is great for fast performance as it requires less time to evaluate/identify the request! However, not all things can be done through the URLs tab. For example, applying a single block to a Category index page and all its sub-categories.
106
+
107
+ = What is the Advanced Expressions tab? =
108
+ The Advanced Expression tab allows you to fully control what requests to integrate into the code block by using Regular Expressions. In other words, allowing CJT users to define more requests to assign the code block to.
109
+
110
+ = Can I move the blocks around? =
111
+ Yes by hovering your mouse cursor over the code block title bar until it turns into a four-sided arrow, this allow you to move the blocks. Clicking the block title bar allows you to open and close the blocks.
112
+
113
+ = Is block saved after I click 'Create' in 'Create New Code Block' form? =
114
+ Yes. The block is created and saved in your database. In order to discard the block, you have to delete it.
115
+
116
+ = Is block orders immediately saved after drag-and-drop block box? =
117
+ No. In order to save blocks order you need to press 'Save All Changes' button.
118
+
119
+ = Is block immediately deleted after removed from the blocks list page? =
120
+ No. After delete block you need to click 'Save All Changes' button.
121
+
122
+ = I'm using the URLs tab and my code is not working? =
123
+ Make sure you have copied and pasted the Page, Post, or Category URL exactly as it appears in the address bar. For example, you may have inadvertently included an extra forward slash at the end of your URL.
124
+
125
+ = Why use the Footer switch in Location/Hook? =
126
+ Hook location feature gives you control over the location of outputting the CSS/JS code. This is useful in case overriding another plugins' CSS is required. Also sometimes its better to put your JS code in the footer to avoid slowing down your page load.
127
+
128
+ = I received a weird error, what do I do now? =
129
+ Due to the overwhelming amount of emails we get for users requesting support for our CJT plugins, we cannot provide support for the CJT Free plugin (hosted here on WordPress.org) at this stage unfortunately. If you wish to receive priority support, please visit our CJT website and [purchase a license for any of our products](http://css-javascript-toolbox.com/pricing).
130
+
131
+ == Screenshots ==
132
+ 1. Add your code, then assign where it goes
133
+ 2. Create New Code Block dialog box
134
+ 3. Master Admin Toolbar at top, and minimised Code Blocks below
135
+ 4. Change editor language for syntax highlighting and error checking
136
+ 5. Assigning WordPress Pages and sub-pages
137
+ 6. Assigning WordPress Posts
138
+ 7. Assigning Custom Posts
139
+ 8. Assigning Categories and sub-categories
140
+ 9. Auxiliary Assignments
141
+ 10. Advanced Assignments (URLs and Regular Expressions)
142
+ 11. Change State batch tools (CJT PLUS ONLY)
143
+ 12. Change Location/Hook batch tools (CJT PLUS ONLY)
144
+ 13. Delete and Backup Tools
145
+ 14. Code-Files management within each Code Block (CJT PLUS ONLY)
146
+ 15. Templates Manager form to store all of your Code Templates
147
+ 16. Templates Lookup form to embed or link Code Templates to Code Blocks
148
+ 17. Insert Code Block shortcodes via TinyMCE button (CJT PLUS ONLY)
149
+ 18. Metabox Code Block at the Edit Page/Post level
150
+ 19. Create backups of all your existing Code Blocks
151
+ 20. Create/Restore Code Block revisions (CJT PLUS ONLY)
152
+ 21. See Code Block information at a glance (CJT PLUS ONLY)
153
+
154
  == Changelog ==
155
 
156
+ = 8.4 =
157
+ * Enhancement: START and END comments for CJT Assignments, CJT Shortcodes, and CJT Metabox code blocks. You can now go into the Page Source and perform a search for these comments to quickly find your code block within the source code.
158
+ * Removed: Admin notice “CJT plugin is no longer supported"
159
+
160
  = 8.3.2 =
161
+ * Added: Admin notice “CJT plugin is no longer supported"
162
 
163
  = 8.3.1 =
164
  * Fix: Development log files created at production
165
 
166
  = 8.3 =
167
+ * Added: CJT Plugin will not work admin notice displayed when PHP version < 5.3
168
+ * Enhancement: Dashboard statistics Metabox display more fields
169
+ * Fix: WordPress Plugin compatibility for commonly detected conflicts
170
+ * Fix: SQL errors commonly appears in Error log file
171
+ * Fix: Dashboard statistics Metabox exception when CJT server is not reachable
172
+ * Fix: Dashboard statistics Metabox blocks count include backups block
173
+ * Updated: ACE Editor updated to the last version
 
174
 
175
  = 8.2 =
176
+ * Added: PHP version check on activation
177
+ Fix: Fatal error: 'break' not in the 'loop' or 'switch' context in /path/to/wp-content/plugins/css-javascript-toolbox/controllers/block.php on line 145
178
+ * Added: Display notice during installation steps on network-level errors. Resolves endless spinner issue
179
+ * Compatibility: 100% compatible with BulletProof Security (BPS) security plugin. No need for any bypass rules
180
 
181
  = 8.1 =
182
+ * Compatibility: Fully tested with Wordpress 4.3.1
183
+ * Enhancement: CJT core upgrades and enhancements
184
 
185
  = 8.0.4 =
186
+ * Compatibility: Fully tested with Wordpress 4.3
187
+ * Added: List of future deprecated features
188
 
189
  = 8.0.3 =
190
+ * Added: Support us link on Dashboard Metabox
191
+ * Added: Support us link on CJT Header
192
 
193
  = 8.0.2 =
194
+ * Removed: CJT License Setup form. CJT is now 100% Free
195
+ * Fix: Multi-site CJT Network extensions not loading
196
 
197
  = 8.0.1 =
198
+ * Fix: Fresh installer stopping when Adding Wordpress built-in scripts and styles as CJT Templates
199
+ * Added: Dashboard Metabox notices when CJT is not yet installed
200
 
201
  = 8.0 =
202
+ * Added: Show premium extensions list in Dashboard Widget instead of Scripts Packages
203
+ * Enhancement: Framework update to make CJT functionality more extendable
204
+ * Removed: Code Editor Toolbar buttons and code block ‘File', Edit and View menu are moved to separate extensions
205
+ * Removed: Editor Themes switcher list are moved to separate extension
206
+ * Removed: Import and Export Tools are moved to separate extension
207
+ * Fix: Conflict with other popular themes like X Theme
208
 
209
  = 7.2 =
210
  * Fix: Block Code file name moving away when open/close Block metabox
211
  * Fix: Shortcode list is too small for Shortcode names
212
+ * Updated: CJT Framework for packages and extensions updates
213
 
214
  = 7.1.2 =
215
+ * Added: Show Latest News on Dashboard Widget
216
 
217
  = 7.1.1 =
218
+ * Added: Add Statistics Dashboard Widget that shows few useful fields.
219
 
220
  = 7.1 =
221
+ * Performance: Processing and Memory optimisation for better performance.
222
+ * Enhancement: Block Box Themes Support.
223
+ * Enhancement: 32 Themes is now supported to be applied for the whole block box.
224
+ * Enhancement: Applying theme per browser. Allow for assigning appropriate theme for different devices.
225
+ * Enhancement: Assigned/All mode switchers for assignment panel list. You can show all items even not selected ones or show only assigned to the block.
226
+ * Enhancement: Bullet-Proof Assignment Panel layout so it would always reserved even if another Plugin wrongly load jQuery TABS/ACCORDION Styles.
227
+ * UI & Graphics: General UI enhancements.
228
+ * Updated: Code editor updates.
229
+ * Enhancement: Turns CJT Block into a tiny Project that host Multiple "Managed" Code-Files instead of just one.
230
+ * Enhancement: No need to create a Block for each Language Type and assign them to the same Wordpress Page. One Block with Multiple Code Files solved that by creating only one Block for each assigned request.
231
+ * Enhancement: Code Files Support Language Type, Code, Description and TAG fields.
232
+ * Enhancement: Write Design-Time Organised Code by separating them into code-files (JS, CSS, PHP, HTML) and CJT will merge them all at run-time.
233
+ * Enhancement: There is no need to write <script>, <style> or <?php ?> tags when writing Javascript, CSS or PHP Codes. Code File assigned language would take care of that.
234
+ * Enhancement: Control/Modify auto-added <script>, <style> or <?php ?> TAGS by modifying Code File TAG field.
235
+ * Enhancement: Automatically Change Code Editor language to currently active Code File language.
236
+ * Enhancement: Manage Code Files without leaving the Block Page.
237
+ * Enhancement: Block revision is now created based on the Current Active Code File. Therefore each Code File has its own revision
238
+ * Enhancement: Its now possible for multiple Authors to work on the same Block by creating Multiple Code-Files.
239
+ * Enhancement: Add Multiple Code Files to CJT Packages.
240
+ * Feature: Block File, Edit and View Menus.
241
+ * Feature: 'Load Local', 'Load Url' and 'Reload' to load Block Code from Local File, Url and Reload From Server respectively.
242
+ * Feature: Save/Download Block Current Active Code File.
243
+ * Feature: Undo, Redo, Find, Find Next, Find Previous, Replace, Goto Line, Goto Line Up, GoTo Line Down, GoTo Next Error, GoTo Previous Error, Fold, Fold All, UnFold, UnFold All, To Lower Case and To Upper Case Edit Menu functions added.
244
+ * Feature: 'Settings' Edit Menu item for Fully Customize Code Editor Fonts, Show/Hide Print Margine, Keybinding Methods, Show/Hide Scroll, Scroll Speed, Readonly, Show/Hide Gutter, TAB Size, New Line Mode and much more!
245
+ * Enhancement: Show/Hide StatusBar via View StatusBar Menu.
246
+ * Enhancement: CJT Website is now support Full documentation Tutorials that expose many internal features/possibilities that can be achived by CJT.
247
+ * Enhancement: Code Blocks disappeared after upgrading to Wordpress 3.9 and sever running PHP >= 5.5.
248
+ * Enhancement: Packages Management System (BETA)
249
+ * Enhancement: Define Shortcode Parameters by creating package and input their values from the CJT Shortcode Parameters form.
250
 
251
  = 6.1.5 =
252
+ * Enhancement: Editor enhancements and updates.
253
+ * Enhancement: Framework updates (Allow installing New CAC extension).
254
  * Fix: Safari Browser pagination icon position.
255
 
256
  = 6.1.4 =
267
  * Remove: Don't load more assignment objects by scroll (Community users has to use the pagination list).
268
 
269
  = 6.1.3 =
270
+ * UI & Graphics: UI Compatibility with Wordpress >= 3.8.
271
  * Deprecated: New Block Form Activate, Location Hook and Initial position fields.
272
  * Deprecated: Block Revisions.
273
  * Deprecated: Blocks Backup and Restore.
274
  * Deprecated: Assignment Panel Select-Childs Checkboxes.
275
+ * Deprecated: Minimise and Maximise All.
276
  * Deprecated: Batch Process (Delete All and Delete Empty).
277
  * Deprecated: Output Location Switch (Header and Footer).
278
  * Deprecated: State Switch (Activate, Deactivate and Invert).
286
  * Fix: Validate block name when editing and adding blocks.
287
  * Fix: Code Blocks is not being applied on WPEngine servers and other servers related to the MYSQL query error.
288
  * Fix: Load block code one time after its first time opened as it was loaded every time the block is opened.
289
+ * Enhancement: Show User-PHP code errors only when WP_DEBUG is set to TRUE.
290
+ * Enhancement: Auto-Size edit-block-name text field to fit the current block-name, therefor display the name without the need of moving the cursor to the end.
291
+ * Enhancement: Disable new-block form fields while saving prevent user from duplicating block when traffic is slow.
292
 
293
  = 6.1 =
294
+ * Enhancement: Initially don't load Block assignment panel items: Speed up Blocks page loading time when its initially opened, also affect the browser performance as the items is not loaded or rendered before its required.
295
+ * Enhancement: Initially don't load Block code for the closed/minimised Blocks: Loading those Blocks will be done through AJAX once the Block is opened by user.
296
+ * Enhancement: The ability to 'Cancel' revision mode and get back to the normal mode without refreshing the whole page.
297
  * Update: Animate Block 'Save' button for not-saved Blocks.
298
  * Update: The Assignment-Panel is now Loads the assigned items only when enter the revision and backup modes.
299
  * Update: Set assignment-Panel Advanced-TAB as the default active TAB.
301
  * Fix: Block 'Save' and 'Save All Changes' buttons are stay enabled after updating Block Assignment-Panel items and revert them back again. The buttons is enabled even if the Block content has not been changed.
302
 
303
  = 6.0.15 =
304
+ * Enhancement: Uninstaller is now configurable so that admin can specify is to wipeout the data or not! This is really great for manual upgrade to the PE versions!
305
 
306
  = 6.0.14 =
307
+ * Enhancement: Accept Shortcode parameters and segments. Provide PHP framework for code blocks to define, validate and reading Shortcode parameters.
308
+ * Enhancement: Allow using block 'name' in additional to 'id' when using Shortcodes.
309
  * Fix: Failed to work with non-ascii (e.g Arabic) characters.
310
+ * Enhancement: Viewing block info is now showing Shortcode using block 'name' instead of 'id'.
311
+ * Enhancement: Embedded Shortcode with its closing tag as the Shortcode content is now being used by the handler blocks.
312
+ * Enhancement: Revert block Shortcode 'force' parameter default value to 'true' therefore allow using multiple Shortcode for the same block without setting 'force' attribute.
313
 
314
  = 6.0.13 =
315
  * Fix: CJT hijacks Plugins page after activate or deactivate a Plugin.
318
  * Fix: PHP code is not getting evaluated when CJT code Block delegated using Shortcode.
319
 
320
  = 6.0.11 =
321
+ * Fix: Add ACE Editor PHP Worker as it was missing.
322
  * Enhancement: List only Public Custom Posts that can be accessed through Wordpress URL under Assignment Panel Custom Posts Tab. Therefor enhance performance for sites that has 'Log' custom post that might has hundreds or records read for every code block.
323
 
324
  = 6.0.9 =
326
  * Fix: Installer operations state is cleared after the install/upgrade is interrupted, cause the repeats/re-executes of the install/upgrade operations.
327
 
328
  = 6.0.7 =
329
+ * Fix: text-area HTML tag break down CJT Block code.
330
 
331
  = 6.0.6 =
332
  * Fix: Conflict with other Plugins!
333
  * Fix: Javascript exception thrown when dismissing the install/upgrade notice.
334
+ * Enhancement: Disallow (with user notice) upgrade/downgrade if the target version is not being supported, therefore saving user data!
335
  * Enhancement: Don't break down the site if manual upgrade/downgrade process is uncompleted! Allow user to revert back manually or disable the Plugin.
336
  * Enhancement: E_ALL complain! Suppress all notices when WP_DEBUG set to true, allow better development, fast performance and error handling.
337
 
338
  = 6.0 =
339
+ * Enhancement: Core code is 100% re-written for optimum performance and future enhancements, and is 100% based on MVC (Model–view–controller) design.
340
+ * Enhancement: 100% Using Web 2.0
341
+ * Enhancement: Applying code blocks to the requests are now enhanced to boost performance.
342
+ * Feature: The ability of interacting with admin pages too - not only the website side as in the previous versions.
343
+ * UI & Graphics: Light-weight and smart user-interface.
344
+ * Enhancement: Multiple operations can be executed at a time! For example, you can work on a code block while another block(s) is saving.
345
+ * Enhancement: Code block data is automatically revisioned after saving.
346
+ * Enhancement: Hot Key added for saving code block.
347
+ * Fix: Empty code blocks can now exist.
348
+ * Enhancement: Interaction with each code block from a simple smart graphical Toolbox using Web 2.0
349
+ * Feature: Delegate code block using Shortcodes. You can do that manually or through CJT smart TinyMCE dropdown list button.
350
+ * Feature: Integrate ACE Editor to provide syntax highlighting and correction while writing codes!
351
+ * Feature: Syntax highlighting for 4 languages: CSS, HTML, JavaScript and PHP.
352
+ * Enhancement: Entire plugin is now extensible! CJT supports installed extensions to extend or enhance its features.
353
+ * Feature: Batch operations (Toggling On and Off, Activate, Deactivate and Revert states, Delete empty and Delete all) toolbox allow for batch update of all code blocks.
354
+ * Enhancement: Rename and save code block name.
355
+ * Enhancement: You can now save multiple backups.
356
+ * Feature: Activate and Deactivate code blocks feature.
357
  * Fix: blocks order was correctly displayed from the admin side, but had no effect while applying blocks to the website side.
358
+ * Enhancement: Templates system is totally removed and will be presented with many enhancements via a separate extension.
359
+ * Feature: Allow assigning code blocks to Posts and Custom Posts.
360
+ * Feature: Apply 'Category' block to all the child posts (or sub-posts) within that category.
361
+ * Feature: Assignment Panel smart feature to assist while working with hierarchical items (sub-pages, sub-categories, etc).
362
+ * Enhancement: Auxiliary tab has been added to the Assignment Panel in order to organise all the predefined items (or requests) under a single tab.
363
+ * Enhancement: Moved and added: 'Front Page', 'All Pages' and 'All Posts' predefined items to appear under the Auxiliary tab.
364
+ * Feature: Auxiliary Assignments. Blog Index, All Categories, Recent Posts, Entire Website, Website Backend, Search Pages, All Archives, Tag Archives, Author Archives, Attachment Pages and 404 Error
365
+ * Feature: Support of regular expressions for defining code block Point-To-Hook
366
+ * Security: Only administrators can execute CJT backend operations.
367
+ * Feature: Each block now has an Information metabox (Author, created date, modification date, and Shortcode).
368
+ * Enhancement: Create New Code Block dialog with initial properties ‘Name’, ‘State’ and ‘Position'
369
+ * Fix: Internal error detection routine for detecting AJAX errors that may have occurred away from users view
370
+ * Added: CJT User Manual PDF file added to the /docs folder. Also available on the CJT website here: [CJT Free User Manual](http://css-javascript-toolbox.com/css-javascript-toolbox-free) BROKEN LINK
371
+ * Added: New WordPress Dashboard menu item to embrace all CJT plugin pages
372
+ * Enhancement: Added separate installer and upgrade pages for both CJT v0.3 and v0.8 to allow watching of the installation processes
373
+ * Enhancement: Added an uninstaller to completely erase all CJT data from the system
374
+ * Compatibility: 100% tested and working with BulletProof Security (BPS) plugin after applying [simple Ajax bypass rule](http://css-javascript-toolbox.com/support/topic/bulletproof-security-ajax-issue-and-resolution-2)
375
 
376
  = 0.8 =
377
+ * Enhancement: Template code can be modified
378
+ * Feature: Code block Header and Footer feature so you can select which hook to output CSS/JS code
379
+ * Enhancement: Code blocks can be re-ordered via click-n-drag
380
+ * Enhancement: Code blocks can be given names, which can be edited and saved
381
+ * UI & Graphics: New icons and improved user interface
382
+ * Enhancement: Multilingual support. Only English translation is shipped with this version
383
+ * Enhancement: Style overriding. Any higher-ordered/positioned code blocks style syntax will override lower-ordered/positioned code blocks style syntax
384
+ * Feature: Built-in scripts bundled with WordPress can be used simply by checking them
385
+ * Feature: Backup and Restore code blocks data
386
+ * Fix: New code blocks are not toggling unless the page is refreshed
387
+ * Fix: CSS/JS template extra slash character issue
388
+ * Fix: Code block deletion issues
389
+ * Fix: Code is not applied to the URL list except the last URL
390
+ * Fix: Cannot use string offset as array error
391
+ * Fix: Invalid argument supplied foreach() error
392
 
393
  = 0.3 =
394
+ Launch: This is the very first release of CSS & JavaScript Toolbox
395
 
396
  == Credits ==
397
+
398
+ Copyright © 2018, Wipeout Media.
399
 
400
  This program is free software; you can redistribute it and/or
401
  modify it under the terms of the GNU General Public License
views/blocks/block/public/css/block.css CHANGED
@@ -3,7 +3,7 @@
3
  sometimes we need to use it instead of postbox class
4
  like affecting only block box while running as Metabox inside edit post page!
5
  */
6
- .cjt-block {min-width: 1000px;}
7
 
8
  .waitingToLoad{display: none !important;}
9
 
@@ -85,9 +85,9 @@
85
  }
86
  .cjt-toolbox .icons-group .popup-menu.templates-lookup { /* Override default for Templates Lookup*/
87
  border: 1px solid #ccc;
88
- width: 346px;
89
  height: 357px;
90
- left: 154px;
91
  top: 31px;
92
  margin-top: 2px;
93
  margin-left: 1px;
3
  sometimes we need to use it instead of postbox class
4
  like affecting only block box while running as Metabox inside edit post page!
5
  */
6
+ .cjt-block {min-width: 730px;}
7
 
8
  .waitingToLoad{display: none !important;}
9
 
85
  }
86
  .cjt-toolbox .icons-group .popup-menu.templates-lookup { /* Override default for Templates Lookup*/
87
  border: 1px solid #ccc;
88
+ width: auto;
89
  height: 357px;
90
+ left: 140px;
91
  top: 31px;
92
  margin-top: 2px;
93
  margin-left: 1px;
views/blocks/block/public/js/codefile/codefile.js CHANGED
@@ -98,7 +98,15 @@
98
  this.file.activeFileId = rCodeFile.id;
99
  this.file.name = rCodeFile.name;
100
  this.file.type = rCodeFile.type;
101
- // Re-Initialize ACE Code Editor.
 
 
 
 
 
 
 
 
102
  model.aceEditor.getSession().setValue(rCodeFile.code);
103
  model.aceEditor.cjtSyncInputField();
104
  // Make sure to recalculate changes after force ace editor to be unchanged.
98
  this.file.activeFileId = rCodeFile.id;
99
  this.file.name = rCodeFile.name;
100
  this.file.type = rCodeFile.type;
101
+
102
+ // CODE ADDED BY RBJ -- START
103
+ if (!rCodeFile.code) {
104
+ rCodeFile.code = '';
105
+ }
106
+ model.aceEditor.$blockScrolling = Infinity;
107
+ // CODE ADDED BY RBJ -- START
108
+
109
+ // Re-Initialize ACE Code Editor.
110
  model.aceEditor.getSession().setValue(rCodeFile.code);
111
  model.aceEditor.cjtSyncInputField();
112
  // Make sure to recalculate changes after force ace editor to be unchanged.
views/blocks/cjt-block/public/css/block.css CHANGED
@@ -9,7 +9,7 @@
9
 
10
  .pagelist {
11
  padding:10px;
12
- height: 248px;
13
  overflow:auto;
14
  border:1px solid #bbb;
15
  margin-bottom: 0px;
@@ -109,7 +109,7 @@ a.acc-header.ui-accordion-header-active {color: #652200 !important;}
109
  .custom-posts-container {
110
  border: 1px solid #bbb;
111
  margin-top: 9px;
112
- height: 256px;
113
  padding: 6px;
114
  overflow: auto;
115
  }
@@ -124,13 +124,13 @@ a.acc-header.ui-accordion-header-active {color: #652200 !important;}
124
  /**
125
  * Advanced Tab jQuery Accordion
126
  */
127
- .advanced-accordion {border: 1px solid #ccc}
128
- .advanced-accordion .ui-accordion-content {height: 204px; padding: 0px !important; background: none !important; border: none !important}}
129
  .advanced-accordion .ui-accordion-header-active {color: #a5581b !important;}
130
  .advanced-accordion textarea {
131
- height: 196px;
132
- width: 282px;
133
- max-width: 282px;
134
  margin-top: 4px;
135
  overflow: auto;
136
  white-space: nowrap;
@@ -170,11 +170,11 @@ a.acc-header.ui-accordion-header-active {color: #652200 !important;}
170
  .cjpageblock .ui-tabs .ui-tabs-nav li { border: none !important; position: static !important; float: none !important; list-style: none; top: 1px; margin: 0 .2em 1px 0; padding: 0; white-space: nowrap; }
171
 
172
  /*-moz-border-radius:3px 3px 0 0;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-right-radius:3px;-khtml-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;*/
173
- .cjpageblock .ui-tabs .ui-tabs-nav li a {font-family: "Open Sans",sans-serif; height:18px;margin:1px 1px 0 0;float:right;cursor:pointer;border: 1px solid #bbb;border-bottom: 0 !important; font-size: 12px; float: left; padding: 6px 17px; text-decoration: none;}
174
  .cjpageblock .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
175
 
176
  .cjpageblock .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
177
  .cjpageblock .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; background:#E9E9E9; border-color:#CCCCCC #CCCCCC #E9E9E9; color:#333333; }
178
 
179
- .cjpageblock .ui-tabs .ui-tabs-panel {height: 300px; display: block; clear:both; padding: 0px !important;}
180
  .cjpageblock .ui-tabs .ui-tabs-hide { display: none !important; }
9
 
10
  .pagelist {
11
  padding:10px;
12
+ height: 278px;
13
  overflow:auto;
14
  border:1px solid #bbb;
15
  margin-bottom: 0px;
109
  .custom-posts-container {
110
  border: 1px solid #bbb;
111
  margin-top: 9px;
112
+ height: 286px;
113
  padding: 6px;
114
  overflow: auto;
115
  }
124
  /**
125
  * Advanced Tab jQuery Accordion
126
  */
127
+ .advanced-accordion {border: 1px solid #ccc; height: 298px;}
128
+ .advanced-accordion .ui-accordion-content {height: 230px; padding: 0px !important; background: none !important; border: none !important}}
129
  .advanced-accordion .ui-accordion-header-active {color: #a5581b !important;}
130
  .advanced-accordion textarea {
131
+ height: 210px;
132
+ width: 300px;
133
+ max-width: 300px;
134
  margin-top: 4px;
135
  overflow: auto;
136
  white-space: nowrap;
170
  .cjpageblock .ui-tabs .ui-tabs-nav li { border: none !important; position: static !important; float: none !important; list-style: none; top: 1px; margin: 0 .2em 1px 0; padding: 0; white-space: nowrap; }
171
 
172
  /*-moz-border-radius:3px 3px 0 0;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-right-radius:3px;-khtml-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;*/
173
+ .cjpageblock .ui-tabs .ui-tabs-nav li a {font-family: "Open Sans",sans-serif; height:18px;margin:1px 1px 0 0;float:right;cursor:pointer;border: 1px solid #bbb;border-bottom: 0 !important; font-size: 12px; float: left; padding: 8px; text-decoration: none;}
174
  .cjpageblock .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
175
 
176
  .cjpageblock .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
177
  .cjpageblock .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; background:#E9E9E9; border-color:#CCCCCC #CCCCCC #E9E9E9; color:#333333; }
178
 
179
+ .cjpageblock .ui-tabs .ui-tabs-panel {height: 330px; display: block; clear:both; padding: 0px !important;}
180
  .cjpageblock .ui-tabs .ui-tabs-hide { display: none !important; }
views/blocks/cjt-block/tmpl/templates/assign-panel/default.html.tmpl CHANGED
@@ -1,58 +1,58 @@
1
  <?php
2
  // Define tabs.
3
  $tabs = array(
4
- 'tab' => array('id' => 'tabs', 'class'=> 'cjt-pages-tab'),
5
- 'tabs' => array(
6
- 'pages' => array(
7
- 'title' => cssJSToolbox::getText('Pages'),
8
- 'renderer' => 'objects-list',
9
- 'type' => array('type' => 'page',
10
- 'group' => 'pages',
11
- 'targetType' => 'post')
12
- ),
13
- 'posts' => array(
14
- 'title' => cssJSToolbox::getText('Posts'),
15
- 'renderer' => 'objects-list',
16
- 'type' => array('type' => 'post',
17
- 'group' => 'posts',
18
- 'targetType' => 'post')
19
- ),
20
- 'custom-posts' => array(
21
- 'title' => cssJSToolbox::getText('Custom Posts'),
22
- 'renderer' => 'custom-posts'
23
- ),
24
- 'categories' => array(
25
- 'title' => cssJSToolbox::getText('Categories'),
26
- 'renderer' => 'objects-list',
27
- 'type' => array('type' => 'category',
28
- 'group' => 'categories',
29
- 'targetType' => 'taxonomy')
30
- ),
31
- 'other' => array(
32
- 'title' => cssJSToolbox::getText('Auxiliary'),
33
- 'renderer' => 'objects-list',
34
- 'type' => array('type' => 'auxiliary',
35
- 'group' => 'pinPoint',
36
- 'targetType' => 'auxiliary')
37
- ),
38
- 'advanced' => array(
39
- 'title' => cssJSToolbox::getText('Advanced'),
40
- 'renderer' => 'advanced'
41
- ),
42
- )
43
  );
44
 
45
  $tabs[ 'tabs' ] = apply_filters( CJTPluggableHelper::FILTER_BLOCK_ASSIGN_PANEL_TABS, $tabs[ 'tabs' ] );
46
 
47
  ?>
48
- <div class="cjpageblock">
49
  <?php
50
- // Render assigment panel root tab. All nested tabs will be rendered
51
- // internally by the tab template.
52
- echo $this->getTemplate('tab',
53
- array('tab' => $tabs, 'block' => $block),
54
- 'tmpl/templates/assign-panel/templates'
55
- );
56
  ?>
57
- <div style="clear:both;"></div>
58
- </div>
1
  <?php
2
  // Define tabs.
3
  $tabs = array(
4
+ 'tab' => array('id' => 'tabs', 'class'=> 'cjt-pages-tab'),
5
+ 'tabs' => array(
6
+ 'pages' => array(
7
+ 'title' => cssJSToolbox::getText('Page'),
8
+ 'renderer' => 'objects-list',
9
+ 'type' => array('type' => 'page',
10
+ 'group' => 'pages',
11
+ 'targetType' => 'post')
12
+ ),
13
+ 'posts' => array(
14
+ 'title' => cssJSToolbox::getText('Post'),
15
+ 'renderer' => 'objects-list',
16
+ 'type' => array('type' => 'post',
17
+ 'group' => 'posts',
18
+ 'targetType' => 'post')
19
+ ),
20
+ 'categories' => array(
21
+ 'title' => cssJSToolbox::getText('Cat'),
22
+ 'renderer' => 'objects-list',
23
+ 'type' => array('type' => 'category',
24
+ 'group' => 'categories',
25
+ 'targetType' => 'taxonomy')
26
+ ),
27
+ 'custom-posts' => array(
28
+ 'title' => cssJSToolbox::getText('C.Post'),
29
+ 'renderer' => 'custom-posts'
30
+ ),
31
+ 'other' => array(
32
+ 'title' => cssJSToolbox::getText('Aux'),
33
+ 'renderer' => 'objects-list',
34
+ 'type' => array('type' => 'auxiliary',
35
+ 'group' => 'pinPoint',
36
+ 'targetType' => 'auxiliary')
37
+ ),
38
+ 'advanced' => array(
39
+ 'title' => cssJSToolbox::getText('Adv'),
40
+ 'renderer' => 'advanced'
41
+ ),
42
+ )
43
  );
44
 
45
  $tabs[ 'tabs' ] = apply_filters( CJTPluggableHelper::FILTER_BLOCK_ASSIGN_PANEL_TABS, $tabs[ 'tabs' ] );
46
 
47
  ?>
48
+ <div class="cjpageblock">
49
  <?php
50
+ // Render assigment panel root tab. All nested tabs will be rendered
51
+ // internally by the tab template.
52
+ echo $this->getTemplate('tab',
53
+ array('tab' => $tabs, 'block' => $block),
54
+ 'tmpl/templates/assign-panel/templates'
55
+ );
56
  ?>
57
+ <div style="clear:both;"></div>
58
+ </div>
views/blocks/manager/public/css/blocks.css CHANGED
@@ -3,8 +3,8 @@
3
  body{min-width: 700px;}
4
  .wrap { position: relative; }
5
  .cjt-banner-bar .cjt-banner-link a, .cjt-banner-bar a:hover, .cjt-banner-bar a:visited{color: #A5581B;}
6
- #cjt-banner-bar-right {right: 0px;position: absolute;top: 2px;}
7
- #cjt-banner-bar-right .cjt-banner-link {margin-bottom: 6px;}
8
  span#support-us {position: absolute;top: 15px;left: 370px;font-size: 13px;color: #aaa;font-weight: bold;}
9
 
10
  #get-packages-icon {display: inline-block; width: 13px; height: 15px; background-image: url('../images/get-packages.png'); margin-left: 3px;margin-bottom: -4px; margin-right: 5px;}
@@ -93,4 +93,10 @@ span#support-us {position: absolute;top: 15px;left: 370px;font-size: 13px;color:
93
 
94
  /* No Blocks Intro Help text */
95
  cjt-noblocks-intro h2 {font-weight: bold; margin: 4px 0px;}
96
- cjt-noblocks-intro h4 {font-weight: bold; font-size: 15px;}
 
 
 
 
 
 
3
  body{min-width: 700px;}
4
  .wrap { position: relative; }
5
  .cjt-banner-bar .cjt-banner-link a, .cjt-banner-bar a:hover, .cjt-banner-bar a:visited{color: #A5581B;}
6
+ #cjt-banner-bar-right {left: 300px; position: absolute;top: 2px;}
7
+ #cjt-banner-bar-right .cjt-banner-link {margin-bottom: 6px; font-size: 14px}
8
  span#support-us {position: absolute;top: 15px;left: 370px;font-size: 13px;color: #aaa;font-weight: bold;}
9
 
10
  #get-packages-icon {display: inline-block; width: 13px; height: 15px; background-image: url('../images/get-packages.png'); margin-left: 3px;margin-bottom: -4px; margin-right: 5px;}
93
 
94
  /* No Blocks Intro Help text */
95
  cjt-noblocks-intro h2 {font-weight: bold; margin: 4px 0px;}
96
+ cjt-noblocks-intro h4 {font-weight: bold; font-size: 15px;}
97
+
98
+ .cjt-main-title.logo {
99
+ background: transparent url('../images/css-js-toolbox-logo.png') no-repeat;
100
+ height: 75px;
101
+ text-indent: -9999px;
102
+ }
views/blocks/manager/tmpl/blocks.html.tmpl CHANGED
@@ -8,41 +8,43 @@ defined('ABSPATH') or die("Access denied");
8
  ?>
9
  <div id="cjtoolbox-admin" class="wrap">
10
  <?php
11
- $content = '';
12
- echo CJTBlocksManagerView::trigger( 'CJTBlocksManagerView.loadglobalcomponents', $content );
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
- <div id="cjt-banner-bar-right">
 
19
  <span class="cjt-banner-link">
20
- <span><?php echo cssJSToolbox::getText('Upgrade to') ?></span>: <a target="_blank" href="http://<?php echo cssJSToolbox::CJT_WEB_SITE_DOMAIN ?>/pricing/"><?php echo cssJSToolbox::getText('CJT CORE and CJT PLUS') ?></a>
21
  </span>
22
  &nbsp;|&nbsp;
 
23
  <span class="cjt-banner-link">
24
- <span><?php echo cssJSToolbox::getText('Learn with') ?></span>: <a target="_blank" href="http://<?php echo cssJSToolbox::CJT_WEB_SITE_DOMAIN ?>/documentation"><?php echo cssJSToolbox::getText('CJT Online Help') ?></a>
25
  </span>
26
- </div>
27
- <div id="cjtoolbox-blocks-page-form" method="post">
28
- <?php wp_nonce_field('cjtoolbox'); ?>
29
- <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false); ?>
30
- <?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false); ?>
31
- <input type="hidden" id="cjt-hasBlocks" value="<?php echo $this->hasBlocks ? 'true' : 'false' ?>" />
32
- <input type="hidden" id="cjt-securityToken" value="<?php echo $this->securityToken ?>" />
33
- <div id="poststuff" class="metabox-holder">
34
- <div id="post-body">
35
  <?php if ($this->backupId) : ?>
36
- <p id="cjt-info"><?php echo cssJSToolbox::getText('You have now restored the code blocks from the current backup. Nothing is saved until you click "Restore" button. To revert back to the previous code blocks and discard this action, simply click the "Cancel Restore" button.') ?></p>
37
  <?php endif; ?>
38
- <?php echo $this->getTemplate('toolbox', array('location' => 'top')); ?>
39
- <?php do_meta_boxes($this->pageHook, 'normal', null); ?>
40
- <div id="cjt-noblocks-intro"<?php if ($this->hasBlocks) : ?> style="display:none"<?php endif; ?>>
41
- <?php echo $this->getTemplate('intro', array(), 'tmpl/help') ?>
42
- </div>
43
- <?php echo $this->getTemplate('toolbox', array('location' => 'bottom')); ?>
44
- </div>
45
- </div>
46
- </div>
47
- <div id="cjt-inline-popup"></div>
48
  </div>
8
  ?>
9
  <div id="cjtoolbox-admin" class="wrap">
10
  <?php
11
+ $content = '';
12
+ echo CJTBlocksManagerView::trigger( 'CJTBlocksManagerView.loadglobalcomponents', $content );
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 logo"><?php echo htmlentities( cssJSToolbox::getText('CSS & Javascript Toolbox') ) ?><?php echo apply_filters( 'cjt_after_main_title', '' ) ?></h2>
17
+
18
+ <div id="cjt-banner-bar-right">
19
+ <?php if (!class_exists('CJTPlusPluginInterface')): ?>
20
  <span class="cjt-banner-link">
21
+ <span><?php echo cssJSToolbox::getText('Upgrade') ?></span>: <a target="_blank" href="http://<?php echo cssJSToolbox::CJT_WEB_SITE_DOMAIN ?>/pricing/"><?php echo cssJSToolbox::getText('CJT PLUS') ?></a>
22
  </span>
23
  &nbsp;|&nbsp;
24
+ <?php endif; ?>
25
  <span class="cjt-banner-link">
26
+ <span><?php echo cssJSToolbox::getText('Learn') ?></span>: <a target="_blank" href="http://<?php echo cssJSToolbox::CJT_WEB_SITE_DOMAIN ?>/documentation"><?php echo cssJSToolbox::getText('Online Help') ?></a>
27
  </span>
28
+ </div>
29
+ <div id="cjtoolbox-blocks-page-form" method="post">
30
+ <?php wp_nonce_field('cjtoolbox'); ?>
31
+ <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false); ?>
32
+ <?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false); ?>
33
+ <input type="hidden" id="cjt-hasBlocks" value="<?php echo $this->hasBlocks ? 'true' : 'false' ?>" />
34
+ <input type="hidden" id="cjt-securityToken" value="<?php echo $this->securityToken ?>" />
35
+ <div id="poststuff" class="metabox-holder">
36
+ <div id="post-body">
37
  <?php if ($this->backupId) : ?>
38
+ <p id="cjt-info"><?php echo cssJSToolbox::getText('You have now restored the code blocks from the current backup. Nothing is saved until you click "Restore" button. To revert back to the previous code blocks and discard this action, simply click the "Cancel Restore" button.') ?></p>
39
  <?php endif; ?>
40
+ <?php echo $this->getTemplate('toolbox', array('location' => 'top')); ?>
41
+ <?php do_meta_boxes($this->pageHook, 'normal', null); ?>
42
+ <div id="cjt-noblocks-intro"<?php if ($this->hasBlocks) : ?> style="display:none"<?php endif; ?>>
43
+ <?php echo $this->getTemplate('intro', array(), 'tmpl/help') ?>
44
+ </div>
45
+ <?php echo $this->getTemplate('toolbox', array('location' => 'bottom')); ?>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ <div id="cjt-inline-popup"></div>
50
  </div>