Data Tables Generator by Supsystic - Version 1.10.11

Version Description

Download this release

Release Info

Developer supsystic.com
Plugin Icon 128x128 Data Tables Generator by Supsystic
Version 1.10.11
Comparing to
See all releases

Code changes from version 1.10.9 to 1.10.11

app/SupsysticTables.php CHANGED
@@ -1,205 +1,205 @@
1
- <?php
2
-
3
- /**
4
- * Class SupsysticTables
5
- */
6
- class SupsysticTables
7
- {
8
- private $environment;
9
-
10
- public function __construct()
11
- {
12
- if (!class_exists('Rsc_Autoloader', false)) {
13
- require dirname(dirname(__FILE__)) . '/vendor/Rsc/Autoloader.php';
14
- Rsc_Autoloader::register();
15
- }
16
-
17
- add_action('init', array($this, 'addShortcodeButton'));
18
-
19
- $menuSlug = 'supsystic-tables';
20
- $pluginPath = dirname(dirname(__FILE__));
21
- $environment = new Rsc_Environment('st', '1.10.9', $pluginPath);
22
-
23
- /* Configure */
24
- $environment->configure(
25
- array(
26
- 'optimizations' => 1,
27
- 'environment' => $this->getPluginEnvironment(),
28
- 'default_module' => 'tables',
29
- 'lang_domain' => 'supsystic_tables',
30
- 'lang_path' => plugin_basename(dirname(__FILE__)) . '/langs',
31
- 'plugin_prefix' => 'SupsysticTables',
32
- 'plugin_source' => $pluginPath . '/src',
33
- 'plugin_title_name' => 'Data Tables',
34
- 'plugin_menu' => array(
35
- 'page_title' => __('Tables by Supsystic', $menuSlug),
36
- 'menu_title' => __('Tables by Supsystic', $menuSlug),
37
- 'capability' => 'manage_options',
38
- 'menu_slug' => $menuSlug,
39
- 'icon_url' => 'dashicons-editor-table',
40
- 'position' => '102.2',
41
- ),
42
- 'shortcode_prefix' => $menuSlug,
43
- 'shortcode_name' => defined('SUPSYSTIC_TABLES_SHORTCODE_NAME') ? SUPSYSTIC_TABLES_SHORTCODE_NAME : $menuSlug,
44
- 'shortcode_part_name' => defined('SUPSYSTIC_TABLES_PART_SHORTCODE_NAME') ? SUPSYSTIC_TABLES_PART_SHORTCODE_NAME : $menuSlug . '-part',
45
- 'shortcode_cell_name' => defined('SUPSYSTIC_TABLES_CELL_SHORTCODE_NAME') ? SUPSYSTIC_TABLES_CELL_SHORTCODE_NAME : $menuSlug . '-cell-full',
46
- 'shortcode_value_name' => defined('SUPSYSTIC_TABLES_VALUE_SHORTCODE_NAME') ? SUPSYSTIC_TABLES_VALUE_SHORTCODE_NAME : $menuSlug . '-cell',
47
- 'db_prefix' => 'supsystic_tbl_',
48
- 'hooks_prefix' => 'supsystic_tbl_',
49
- 'ajax_url' => admin_url('admin-ajax.php'),
50
- 'admin_url' => admin_url(),
51
- 'plugin_db_update' => true,
52
- 'revision_key' => '_supsystic_tables_rev',
53
- 'revision' => 61,
54
- 'welcome_page_was_showed' => get_option('supsystic_tbl_welcome_page_was_showed'),
55
- 'promo_controller' => 'SupsysticTables_Promo_Controller'
56
- )
57
- );
58
-
59
- $this->environment = $environment;
60
- $this->initFilesystem();
61
- }
62
-
63
- public function run()
64
- {
65
- $this->environment->run();
66
- }
67
-
68
- public function createSchema()
69
- {
70
- global $wpdb;
71
-
72
- if (is_file($schema = dirname(__FILE__) . '/configs/dbschema.sql')) {
73
- $prefix = $wpdb->prefix . $this->environment
74
- ->getConfig()
75
- ->get('db_prefix');
76
-
77
- $sql = str_replace('%prefix%', $prefix, file_get_contents($schema));
78
-
79
- if (!function_exists('dbDelta')) {
80
- require_once(ABSPATH.'wp-admin/includes/upgrade.php');
81
- }
82
- $wpdb->query('SET FOREIGN_KEY_CHECKS=0');
83
- dbDelta($sql);
84
- $wpdb->query('SET FOREIGN_KEY_CHECKS=1');
85
- update_option($this->environment->getPluginName().'_installed', 1);
86
- }
87
- }
88
-
89
- public function dropSchema()
90
- {
91
- global $wpdb;
92
-
93
- $prefix = $wpdb->prefix . $this->environment
94
- ->getConfig()
95
- ->get('db_prefix');
96
-
97
- $tables = $wpdb->get_results('SHOW TABLES LIKE \''.$prefix.'%\'', ARRAY_N);
98
-
99
- if (count($tables) < 1) {
100
- return;
101
- }
102
-
103
- $wpdb->query('SET FOREIGN_KEY_CHECKS=0');
104
- foreach ($tables as $inded => $table) {
105
- $wpdb->query('DROP TABLE IF EXISTS '.array_pop($table).' CASCADE;');
106
- }
107
-
108
- $wpdb->query('SET FOREIGN_KEY_CHECKS=1');
109
- }
110
-
111
- public function getEnvironment()
112
- {
113
- return $this->environment;
114
- }
115
-
116
- protected function getPluginEnvironment()
117
- {
118
- $environment = Rsc_Environment::ENV_PRODUCTION;
119
-
120
- if (defined('WP_DEBUG') && WP_DEBUG) {
121
- if (defined('SUPSYSTIC_STB_DEBUG') && SUPSYSTIC_STB_DEBUG) {
122
- $environment = Rsc_Environment::ENV_DEVELOPMENT;
123
- }
124
- }
125
-
126
- return $environment;
127
- }
128
-
129
- protected function checkCacheHtacess()
130
- {
131
- $fullPath = wp_upload_dir();
132
- $fullPath = $fullPath['basedir'];
133
- $fullPath = $fullPath.'/supsystic-tables/cache/tables/.htaccess';
134
- if(!file_exists($fullPath)){
135
- $content = '<Files ~ "^.*">' . "\n";
136
- $content .= 'Deny from all' . "\n";
137
- $content .= '</Files>' . "\n";
138
- file_put_contents($fullPath, $content);
139
- }
140
- }
141
-
142
- protected function initFilesystem()
143
- {
144
- $directories = array(
145
- 'tmp' => '/supsystic-tables',
146
- 'log' => '/supsystic-tables/log',
147
- 'cache' => '/supsystic-tables/cache',
148
- 'cache_tables' => '/supsystic-tables/cache/tables',
149
- );
150
-
151
- foreach ($directories as $key => $dir) {
152
- if (false !== $fullPath = $this->makeDirectory($dir)) {
153
- $this->environment->getConfig()->add('plugin_' . $key, $fullPath);
154
- }
155
- }
156
-
157
- $this->checkCacheHtacess();
158
- }
159
-
160
- /**
161
- * Make directory in uploads directory.
162
- * @param string $directory Relative to the WP_UPLOADS dir
163
- * @return bool|string FALSE on failure, full path to the directory on success
164
- */
165
- protected function makeDirectory($directory)
166
- {
167
- $uploads = wp_upload_dir();
168
-
169
- $basedir = $uploads['basedir'];
170
- $dir = $basedir . $directory;
171
- if (!is_dir($dir)) {
172
- if (false === @mkdir($dir, 0775, true)) {
173
- return false;
174
- }
175
- } else {
176
- if (! is_writable($dir)) {
177
- return false;
178
- }
179
- }
180
-
181
- return $dir;
182
- }
183
-
184
- public function addShortcodeButton() {
185
- add_filter('mce_external_plugins', array($this, 'addButton'));
186
- add_filter('mce_buttons', array($this, 'registerButton'));
187
- wp_enqueue_script('jquery');
188
- if(is_admin()) {
189
- wp_enqueue_script('stb-bpopup-js', $this->environment->getConfig()->get('plugin_url') . '/app/assets/js/plugins/jquery.bpopup.min.js', array('jquery'), false, true);
190
- wp_enqueue_style('stb-bpopup', $this->environment->getConfig()->get('plugin_url') . '/app/assets/css/editor-dialog.css');
191
- }
192
- }
193
-
194
- public function addButton( $plugin_array ) {
195
- $plugin_array['addShortcodeDataTable'] = $this->environment->getConfig()->get('plugin_url') . '/app/assets/js/buttons.js';
196
-
197
- return $plugin_array;
198
- }
199
-
200
- public function registerButton( $buttons ) {
201
- array_push( $buttons, 'addShortcodeDataTable', 'selectShortcode' );
202
-
203
- return $buttons;
204
- }
205
- }
1
+ <?php
2
+
3
+ /**
4
+ * Class SupsysticTables
5
+ */
6
+ class SupsysticTables
7
+ {
8
+ private $environment;
9
+
10
+ public function __construct()
11
+ {
12
+ if (!class_exists('Rsc_Autoloader', false)) {
13
+ require dirname(dirname(__FILE__)) . '/vendor/Rsc/Autoloader.php';
14
+ Rsc_Autoloader::register();
15
+ }
16
+
17
+ add_action('init', array($this, 'addShortcodeButton'));
18
+
19
+ $menuSlug = 'supsystic-tables';
20
+ $pluginPath = dirname(dirname(__FILE__));
21
+ $environment = new Rsc_Environment('st', '1.10.11', $pluginPath);
22
+
23
+ /* Configure */
24
+ $environment->configure(
25
+ array(
26
+ 'optimizations' => 1,
27
+ 'environment' => $this->getPluginEnvironment(),
28
+ 'default_module' => 'tables',
29
+ 'lang_domain' => 'supsystic_tables',
30
+ 'lang_path' => plugin_basename(dirname(__FILE__)) . '/langs',
31
+ 'plugin_prefix' => 'SupsysticTables',
32
+ 'plugin_source' => $pluginPath . '/src',
33
+ 'plugin_title_name' => 'Data Tables',
34
+ 'plugin_menu' => array(
35
+ 'page_title' => __('Tables by Supsystic', $menuSlug),
36
+ 'menu_title' => __('Tables by Supsystic', $menuSlug),
37
+ 'capability' => 'manage_options',
38
+ 'menu_slug' => $menuSlug,
39
+ 'icon_url' => 'dashicons-editor-table',
40
+ 'position' => '102.2',
41
+ ),
42
+ 'shortcode_prefix' => $menuSlug,
43
+ 'shortcode_name' => defined('SUPSYSTIC_TABLES_SHORTCODE_NAME') ? SUPSYSTIC_TABLES_SHORTCODE_NAME : $menuSlug,
44
+ 'shortcode_part_name' => defined('SUPSYSTIC_TABLES_PART_SHORTCODE_NAME') ? SUPSYSTIC_TABLES_PART_SHORTCODE_NAME : $menuSlug . '-part',
45
+ 'shortcode_cell_name' => defined('SUPSYSTIC_TABLES_CELL_SHORTCODE_NAME') ? SUPSYSTIC_TABLES_CELL_SHORTCODE_NAME : $menuSlug . '-cell-full',
46
+ 'shortcode_value_name' => defined('SUPSYSTIC_TABLES_VALUE_SHORTCODE_NAME') ? SUPSYSTIC_TABLES_VALUE_SHORTCODE_NAME : $menuSlug . '-cell',
47
+ 'db_prefix' => 'supsystic_tbl_',
48
+ 'hooks_prefix' => 'supsystic_tbl_',
49
+ 'ajax_url' => admin_url('admin-ajax.php'),
50
+ 'admin_url' => admin_url(),
51
+ 'plugin_db_update' => true,
52
+ 'revision_key' => '_supsystic_tables_rev',
53
+ 'revision' => 61,
54
+ 'welcome_page_was_showed' => get_option('supsystic_tbl_welcome_page_was_showed'),
55
+ 'promo_controller' => 'SupsysticTables_Promo_Controller'
56
+ )
57
+ );
58
+
59
+ $this->environment = $environment;
60
+ $this->initFilesystem();
61
+ }
62
+
63
+ public function run()
64
+ {
65
+ $this->environment->run();
66
+ }
67
+
68
+ public function createSchema()
69
+ {
70
+ global $wpdb;
71
+
72
+ if (is_file($schema = dirname(__FILE__) . '/configs/dbschema.sql')) {
73
+ $prefix = $wpdb->prefix . $this->environment
74
+ ->getConfig()
75
+ ->get('db_prefix');
76
+
77
+ $sql = str_replace('%prefix%', $prefix, file_get_contents($schema));
78
+
79
+ if (!function_exists('dbDelta')) {
80
+ require_once(ABSPATH.'wp-admin/includes/upgrade.php');
81
+ }
82
+ $wpdb->query('SET FOREIGN_KEY_CHECKS=0');
83
+ dbDelta($sql);
84
+ $wpdb->query('SET FOREIGN_KEY_CHECKS=1');
85
+ update_option($this->environment->getPluginName().'_installed', 1);
86
+ }
87
+ }
88
+
89
+ public function dropSchema()
90
+ {
91
+ global $wpdb;
92
+
93
+ $prefix = $wpdb->prefix . $this->environment
94
+ ->getConfig()
95
+ ->get('db_prefix');
96
+
97
+ $tables = $wpdb->get_results('SHOW TABLES LIKE \''.$prefix.'%\'', ARRAY_N);
98
+
99
+ if (count($tables) < 1) {
100
+ return;
101
+ }
102
+
103
+ $wpdb->query('SET FOREIGN_KEY_CHECKS=0');
104
+ foreach ($tables as $inded => $table) {
105
+ $wpdb->query('DROP TABLE IF EXISTS '.array_pop($table).' CASCADE;');
106
+ }
107
+
108
+ $wpdb->query('SET FOREIGN_KEY_CHECKS=1');
109
+ }
110
+
111
+ public function getEnvironment()
112
+ {
113
+ return $this->environment;
114
+ }
115
+
116
+ protected function getPluginEnvironment()
117
+ {
118
+ $environment = Rsc_Environment::ENV_PRODUCTION;
119
+
120
+ if (defined('WP_DEBUG') && WP_DEBUG) {
121
+ if (defined('SUPSYSTIC_STB_DEBUG') && SUPSYSTIC_STB_DEBUG) {
122
+ $environment = Rsc_Environment::ENV_DEVELOPMENT;
123
+ }
124
+ }
125
+
126
+ return $environment;
127
+ }
128
+
129
+ protected function checkCacheHtacess()
130
+ {
131
+ $fullPath = wp_upload_dir();
132
+ $fullPath = $fullPath['basedir'];
133
+ $fullPath = $fullPath.'/supsystic-tables/cache/tables/.htaccess';
134
+ if(!file_exists($fullPath)){
135
+ $content = '<Files ~ "^.*">' . "\n";
136
+ $content .= 'Deny from all' . "\n";
137
+ $content .= '</Files>' . "\n";
138
+ file_put_contents($fullPath, $content);
139
+ }
140
+ }
141
+
142
+ protected function initFilesystem()
143
+ {
144
+ $directories = array(
145
+ 'tmp' => '/supsystic-tables',
146
+ 'log' => '/supsystic-tables/log',
147
+ 'cache' => '/supsystic-tables/cache',
148
+ 'cache_tables' => '/supsystic-tables/cache/tables',
149
+ );
150
+
151
+ foreach ($directories as $key => $dir) {
152
+ if (false !== $fullPath = $this->makeDirectory($dir)) {
153
+ $this->environment->getConfig()->add('plugin_' . $key, $fullPath);
154
+ }
155
+ }
156
+
157
+ $this->checkCacheHtacess();
158
+ }
159
+
160
+ /**
161
+ * Make directory in uploads directory.
162
+ * @param string $directory Relative to the WP_UPLOADS dir
163
+ * @return bool|string FALSE on failure, full path to the directory on success
164
+ */
165
+ protected function makeDirectory($directory)
166
+ {
167
+ $uploads = wp_upload_dir();
168
+
169
+ $basedir = $uploads['basedir'];
170
+ $dir = $basedir . $directory;
171
+ if (!is_dir($dir)) {
172
+ if (false === @mkdir($dir, 0775, true)) {
173
+ return false;
174
+ }
175
+ } else {
176
+ if (! is_writable($dir)) {
177
+ return false;
178
+ }
179
+ }
180
+
181
+ return $dir;
182
+ }
183
+
184
+ public function addShortcodeButton() {
185
+ add_filter('mce_external_plugins', array($this, 'addButton'));
186
+ add_filter('mce_buttons', array($this, 'registerButton'));
187
+ wp_enqueue_script('jquery');
188
+ if(is_admin()) {
189
+ wp_enqueue_script('stb-bpopup-js', $this->environment->getConfig()->get('plugin_url') . '/app/assets/js/plugins/jquery.bpopup.min.js', array('jquery'), false, true);
190
+ wp_enqueue_style('stb-bpopup', $this->environment->getConfig()->get('plugin_url') . '/app/assets/css/editor-dialog.css');
191
+ }
192
+ }
193
+
194
+ public function addButton( $plugin_array ) {
195
+ $plugin_array['addShortcodeDataTable'] = $this->environment->getConfig()->get('plugin_url') . '/app/assets/js/buttons.js';
196
+
197
+ return $plugin_array;
198
+ }
199
+
200
+ public function registerButton( $buttons ) {
201
+ array_push( $buttons, 'addShortcodeDataTable', 'selectShortcode' );
202
+
203
+ return $buttons;
204
+ }
205
+ }
index.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: Data Tables Generator by Supsystic
5
  * Plugin URI: http://supsystic.com
6
  * Description: Create and manage beautiful data tables with custom design. No HTML knowledge is required
7
- * Version: 1.10.9
8
  * Author: supsystic.com
9
  * Author URI: http://supsystic.com
10
  * Text Domain: supsystic_tables
4
  * Plugin Name: Data Tables Generator by Supsystic
5
  * Plugin URI: http://supsystic.com
6
  * Description: Create and manage beautiful data tables with custom design. No HTML knowledge is required
7
+ * Version: 1.10.11
8
  * Author: supsystic.com
9
  * Author URI: http://supsystic.com
10
  * Text Domain: supsystic_tables
readme.txt CHANGED
@@ -2,7 +2,7 @@
2
  Contributors: supsystic.com
3
  Tags: data table, spreadsheet, table builder, charts, graphs, wordpress table plugin, excel, line chart, pie chart, visualise data
4
  Tested up to: 5.7
5
- Stable tag: 1.10.9
6
 
7
  Create data tables with charts and graphs. Custom design, navigation, searching and ordering functions. Export to PDF, CSV, Print. Excel spreadsheet. WooCommerce Integration.
8
 
@@ -214,6 +214,9 @@ It's perfect for product [Price List](http://woo.supsystic.com/price-list "Price
214
  Create custom order forms which increase your conversion rate!
215
 
216
  == Changelog ==
 
 
 
217
  1.10.9 / 26.03.2021 =
218
  * Fixes for recent update issue
219
 
2
  Contributors: supsystic.com
3
  Tags: data table, spreadsheet, table builder, charts, graphs, wordpress table plugin, excel, line chart, pie chart, visualise data
4
  Tested up to: 5.7
5
+ Stable tag: 1.10.11
6
 
7
  Create data tables with charts and graphs. Custom design, navigation, searching and ordering functions. Export to PDF, CSV, Print. Excel spreadsheet. WooCommerce Integration.
8
 
214
  Create custom order forms which increase your conversion rate!
215
 
216
  == Changelog ==
217
+ 1.10.11 / 24.05.2021 =
218
+ * Add support PHP 8
219
+
220
  1.10.9 / 26.03.2021 =
221
  * Fixes for recent update issue
222
 
src/SupsysticTables/Core/assets/js/core.js CHANGED
@@ -963,7 +963,8 @@ var g_stbServerSideProcessingIsActive = false;
963
  $table.trigger('beforeInitializeTable', $table);
964
  var dateFormat = $table.data('date-format');
965
  $table.dataTable.moment(dateFormat);
966
- tableInstance = $table.dataTable($.extend({}, defaultFeatures, config, extraConfig, ajaxSource, reinit));
 
967
  tableInstance.table_id = $table.data('id');
968
  tableInstance.table_view_id = $table.data('view-id');
969
  tableInstance.fnFakeRowspan();
963
  $table.trigger('beforeInitializeTable', $table);
964
  var dateFormat = $table.data('date-format');
965
  $table.dataTable.moment(dateFormat);
966
+ jQuery.fn.dataTable.ext.order.intl();
967
+ tableInstance = $table.dataTable($.extend({}, defaultFeatures, config, extraConfig, ajaxSource, reinit));;
968
  tableInstance.table_id = $table.data('id');
969
  tableInstance.table_view_id = $table.data('view-id');
970
  tableInstance.fnFakeRowspan();
src/SupsysticTables/Core/assets/js/lib/intl.js ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * This sorting type will replace DataTables' default string sort with one that
3
+ * will use a locale aware collator. This is supported by IE11, Edge, Chrome,
4
+ * Firefox and Safari 10+. Any browser that does not support the Intl will
5
+ * simply fall back to UTF8 string sorting.
6
+ *
7
+ * This method simply needs to be called prior to the DataTables' initialisation
8
+ * to replace the default string sort with locale aware sorting. The method
9
+ * optionally takes two arguments:
10
+ *
11
+ * 1. [Optional] Locale or array of locales
12
+ * 2. [Optional] Collator options
13
+ *
14
+ * For the supported options please see the
15
+ * [MDN Intl documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator).
16
+ *
17
+ * @name intl
18
+ * @summary Sort string data using the Intl Javascript API
19
+ * @author [Allan Jardine](//datatables.net)
20
+ * @depends DataTables 1.10+
21
+ *
22
+ * @example
23
+ * // Host's current locale
24
+ * $.fn.dataTable.ext.order.intl();
25
+ *
26
+ * @example
27
+ * // Explicit locale
28
+ * $.fn.dataTable.ext.order.intl('de-u-co-phonebk');
29
+ *
30
+ * @example
31
+ * // Locale with configuration options
32
+ * $.fn.dataTable.ext.order.intl('fr', {
33
+ * sensitivity: 'base'
34
+ * } );
35
+ */
36
+
37
+
38
+ // UMD
39
+ (function( factory ) {
40
+ "use strict";
41
+
42
+ if ( typeof define === 'function' && define.amd ) {
43
+ // AMD
44
+ define( ['jquery'], function ( $ ) {
45
+ return factory( $, window, document );
46
+ } );
47
+ }
48
+ else if ( typeof exports === 'object' ) {
49
+ // CommonJS
50
+ module.exports = function (root, $) {
51
+ if ( ! root ) {
52
+ root = window;
53
+ }
54
+
55
+ if ( ! $ ) {
56
+ $ = typeof window !== 'undefined' ?
57
+ require('jquery') :
58
+ require('jquery')( root );
59
+ }
60
+
61
+ return factory( $, root, root.document );
62
+ };
63
+ }
64
+ else {
65
+ // Browser
66
+ factory( jQuery, window, document );
67
+ }
68
+ }
69
+ (function( $, window, document ) {
70
+
71
+
72
+ $.fn.dataTable.ext.order.intl = function ( locales, options ) {
73
+ if ( window.Intl ) {
74
+ var collator = new Intl.Collator( locales, options );
75
+ var types = $.fn.dataTable.ext.type;
76
+
77
+ delete types.order['string-pre'];
78
+ types.order['string-asc'] = collator.compare;
79
+ types.order['string-desc'] = function ( a, b ) {
80
+ return collator.compare( a, b ) * -1;
81
+ };
82
+ }
83
+ };
84
+
85
+
86
+ }));
src/SupsysticTables/Tables/Model/Tables.php CHANGED
@@ -381,6 +381,10 @@ class SupsysticTables_Tables_Model_Tables extends SupsysticTables_Core_BaseModel
381
  'type' => 1,
382
  'link' => 1,
383
  'style' => 1,
 
 
 
 
384
  ),
385
  'hr' => array(
386
  'align' => 1,
@@ -413,6 +417,7 @@ class SupsysticTables_Tables_Model_Tables extends SupsysticTables_Core_BaseModel
413
  'formtarget' => 1,
414
  'type' => 1,
415
  'value' => 1,
 
416
  ),
417
  );
418
  $allowedDiv = array(
381
  'type' => 1,
382
  'link' => 1,
383
  'style' => 1,
384
+ 'class' => 1,
385
+ 'data-quantity' => 1,
386
+ 'data-product_id' => 1,
387
+
388
  ),
389
  'hr' => array(
390
  'align' => 1,
417
  'formtarget' => 1,
418
  'type' => 1,
419
  'value' => 1,
420
+ 'onclick' =>1,
421
  ),
422
  );
423
  $allowedDiv = array(
src/SupsysticTables/Tables/Module.php CHANGED
@@ -1156,6 +1156,15 @@ class SupsysticTables_Tables_Module extends SupsysticTables_Core_BaseModule
1156
  ->addDependency('jquery')
1157
  );
1158
 
 
 
 
 
 
 
 
 
 
1159
  $ui->add(
1160
  $ui->createScript('supsystic-tables-datatables-responsive-js')
1161
  ->setHookName($dynamicHookName)
1156
  ->addDependency('jquery')
1157
  );
1158
 
1159
+ $ui->add(
1160
+ $ui->createScript('intl.js')
1161
+ ->setHookName($dynamicHookName)
1162
+ ->setSource($coreModulePath . '/assets/js/lib/intl.js')
1163
+ ->setVersion('1.10.23')
1164
+ ->setCachingAllowed(true)
1165
+ ->addDependency('jquery')
1166
+ );
1167
+
1168
  $ui->add(
1169
  $ui->createScript('supsystic-tables-datatables-responsive-js')
1170
  ->setHookName($dynamicHookName)
vendor/Twig/Node/Embed.php CHANGED
@@ -17,7 +17,7 @@
17
  class Twig_SupTwg_Node_Embed extends Twig_SupTwg_Node_Include
18
  {
19
  // we don't inject the module to avoid node visitors to traverse it twice (as it will be already visited in the main module)
20
- public function __construct($name, $index, Twig_SupTwg_Node_Expression $variables = null, $only = false, $ignoreMissing = false, $lineno, $tag = null)
21
  {
22
  parent::__construct(new Twig_SupTwg_Node_Expression_Constant('not_used', $lineno), $variables, $only, $ignoreMissing, $lineno, $tag);
23
 
17
  class Twig_SupTwg_Node_Embed extends Twig_SupTwg_Node_Include
18
  {
19
  // we don't inject the module to avoid node visitors to traverse it twice (as it will be already visited in the main module)
20
+ public function __construct($name, $index, Twig_SupTwg_Node_Expression $variables = null, $only = false, $ignoreMissing = false, $lineno = null, $tag = null)
21
  {
22
  parent::__construct(new Twig_SupTwg_Node_Expression_Constant('not_used', $lineno), $variables, $only, $ignoreMissing, $lineno, $tag);
23
 
vendor/Twig/Node/Include.php CHANGED
@@ -17,7 +17,7 @@
17
  */
18
  class Twig_SupTwg_Node_Include extends Twig_SupTwg_Node implements Twig_SupTwg_NodeOutputInterface
19
  {
20
- public function __construct(Twig_SupTwg_Node_Expression $expr, Twig_SupTwg_Node_Expression $variables = null, $only = false, $ignoreMissing = false, $lineno, $tag = null)
21
  {
22
  $nodes = array('expr' => $expr);
23
  if (null !== $variables) {
17
  */
18
  class Twig_SupTwg_Node_Include extends Twig_SupTwg_Node implements Twig_SupTwg_NodeOutputInterface
19
  {
20
+ public function __construct(Twig_SupTwg_Node_Expression $expr, Twig_SupTwg_Node_Expression $variables = null, $only = false, $ignoreMissing = false, $lineno = null, $tag = null)
21
  {
22
  $nodes = array('expr' => $expr);
23
  if (null !== $variables) {