Version Description
- Check Wordpress 4.3 compatibility
- List future deprecated features
Download this release
Release Info
Developer | wipeoutmedia |
Plugin | 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 +1 -1
- access.points/main.accesspoint.php +32 -0
- access.points/main/8.0.4-AdminNotice.html +67 -0
- autoload.inc.php +4 -0
- composer.json +9 -0
- controllers/auto-upgrade.php +6 -13
- controllers/setup.php +2 -15
- css-js-toolbox.php +1 -1
- framework/CJTStoreUpdate.class.php +171 -0
- framework/ServicesAPI/Exceptions.class.php +5 -0
- framework/ServicesAPI/Module.class.php +106 -0
- framework/ServicesAPI/Services.class.php +162 -0
- framework/ServicesAPI/Store.php +191 -0
- framework/extensions/extensions.class.php +5 -4
- framework/third-party/easy-digital-download/auto-upgrade.class.php +0 -167
- models/setup.php +22 -13
- readme.txt +51 -29
- vendor/autoload.php +7 -0
- vendor/composer/ClassLoader.php +387 -0
- vendor/composer/autoload_classmap.php +115 -0
- vendor/composer/autoload_namespaces.php +9 -0
- vendor/composer/autoload_psr4.php +9 -0
- vendor/composer/autoload_real.php +50 -0
- views/blocks/block/tmpl/codefile/codefile.html.tmpl +1 -1
- views/blocks/block/tmpl/edit.html.tmpl +1 -1
- views/blocks/manager/tmpl/blocks.html.tmpl +6 -3
- views/blocks/manager/tmpl/help/intro.html.tmpl +2 -2
- views/setup/activation-form/public/js/default/default.js +1 -1
access.points/extensions.accesspoint.php
CHANGED
@@ -19,7 +19,7 @@ class CJTExtensionsAccessPoint extends CJTAccessPoint {
|
|
19 |
/**
|
20 |
*
|
21 |
*/
|
22 |
-
const PLUGINS_PAGE_SEARCH_TERM = '
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
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['
|
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->
|
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.
|
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
|
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::
|
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
|
71 |
-
|
72 |
-
$
|
73 |
-
|
74 |
-
$
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
10 |
-
Stable tag: 8.0.
|
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 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
51 |
-
Please support us by:
|
52 |
|
53 |
-
|
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 ©
|
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 |
-
|
|
|
|
|
|
|
|
|
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> |
|
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
|
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, {
|
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)
|