Version Description
(Date: January 28, 2022) = - Improves data sanitization
=4.1.8 (Date: January 27, 2022) = - Adds no follow option - Adds font customization - Adds time format option in date field - Fixes Ace library issue - Fixes CSV library issue - Improves data sanitization - Improves Admin UI
=4.1.7 (Date: September 17, 2021) - Added woocommerce product variations - Fixes date & date range filter manual input date search issue - Fixes progressive filter filter_selects - Fixes category post filter issue - Fixes filter shortcode for AND logical operator and phrase filter
=4.1.6 (Date: Jun 28, 2021) - Fixes CSV export & Print issue in frontend - Fixes transform value reference shortcode - Fixes filter table data print issue in frontend - Fixes advance shortcode filters for filter_selects in frontend - Fixes searcher flick issue in frontend - Fixes large data loading table hide issue in frontend - Fixes custom filter checkbox & select strict mode issue in frontend - Fixes custom filter issue for special character in frontend - Fixes custom filter number range input value issue in frontend - Fixes custom filter manual data multiselect table hide issue in mobile device - Fixes special character sorting issue
=4.1.5 (Date: Feb 18, 2021) - Fixes value transformation in admin page.
=4.1.4 (Date: Feb 16, 2021) - Fixes AJAX data loading for public nonce issue.
=4.1.3 (Date: Feb 13, 2021) - Adds transformed value sorting & filtering. - Improves formula support for European numbers. - Fixes exact match filtering for multi-select.
=4.1.2 (Date: Feb 08, 2021) - Fixes calculation for European formatted numbers. - Fixes frontend CSV export issue for accented characters. - Fixes TablePress import order. - Fixes elementor popup. - Fixes WP latest jQuery update issues.
=4.1.1 (Date: Nov 21, 2020) - Fixes Google Sheets data fetching issue. - Fixes frontend pagination issue. - Fixes frontend data transformation issue.
=4.1.0 (Date: Nov 18, 2020) - Adds default diacritics filter support. - Fixes for diacritics sorting. - Fixes transform value on frontend. - Fixes Google Sheets integration.
=4.0.2 (Date: Sep 14, 2020) - Fixes client side value transformation module.
=4.0.1 (Date: Sep 14, 2020) - Fixes transform value bug for Excel formula. - Fixes regular search bugs for string value. - Fixes Semantic UI table's footer radius style. - Improves value transformation module.
=4.0.0 (Date: Sep 12, 2020) - Adds special characters (diacritics) search. - Adds Ninja Charts for data visualization. - Fixes sticky header issue. - Fixes table design issues. - Fixes sorting issues on export. - Fixes preload key request for custom fonts. - Fixes table filter for multiple instances on a page. - Fixes SQL table bugs. - Fixes pagination issues. - Fixes remote CSV title issue. - Fixes custom filters on Firefox. - Fixes custom filters design issues. - Fixes multi-select issues on Firefox. - Fixes minor bugs and improves overall performance.
=3.5.12 (Date: Apr 07, 2020) - Fixes shortcode defaults bug.
=3.5.11 (Date: Mar 23, 2020) - Adds all tables sorting. - Adds Jetpack lazy image compatibility. - Adds Fluent Form meta fields to display. - Adds cart and checkout button customization. - Adds batch insert for CSV to avoid PHP memory issue. - Adds filters and search to be included in the Print page. - Adds removing image options in both backend and frontend. - Adds all chunk data loaded hooks for frontend ('ninja_table_all_chunk_loaded''). - Fixes Safari ellipsis bug. - Fixes custom CSS duplication. - Fixes iPhone table width bug. - Fixes inline edit caching bug. - Fixes frontend editing focus bug. - Fixes Fluent Forms entry fetcher bug. - Fixes global appearance settings bug. - Fixes stackables for the latest jQuery. - Fixes Fluent Form provider variable bug. - Fixes conditional matching issues for sorting. - Fixes Google CSV no results error, filter "ninja_tables_remote_csv_timeout".
=3.5.10 (Date: Dec 27, 2019) - Fixes stackable tables on different devices. - Fixes stackable tables tbody color issues. - Fixes CSV import table bug.
=3.5.9 (Date: Dec 26, 2019) - Renders styles ahead of table load. - Improves page speed issues. - Adds meta query filters. - Improves print to allow customized styles. - Improves front end editing. - Fixes import & export issues. - Fixes Non-ASCII characters from Google Sheet issues. - Fixes possible browser rendering issues. - Fixes table duplicate issues. - Fixes stackable tables to expand all issues. - Fixes iOS rendering issues. - Fixes custom filter loading issues. - Fixes colored table with stackables issues. - Fixes sticky header background issue.
=3.5.8 (Date: Nov 09, 2019) - Adds plain text export support for CSV. - Adds Non-ASCII characters support for label filtering. - Adds dynamic table ID placeholder for custom CSS. - Fixed Stackable table frontend editing bug. - Fixed WooCommerce custom Buy Now button text. - Fixed missing transform value rendering bug. - Fixed sticky header bug. - Fixed stackable table print issue. - Fixed rowspan bug for paginated data.
=3.5.7 (Date: Aug 28, 2019) - All Accessibility Issues fixed so far (y) - Filtering issue fixed for number range - Date format bug fixed - Spinner effect improved - PHP warning fixed - Added filter and improvements - Number data type UX improved
=3.5.5 (Date: June 20, 2019) - Overall Improvement for editing screen - Added inline editing for select fields - Data type issues fix - Improved filter - Added table edit link from frontend
=3.5.2 (Date: July 13, 2019) = - Security Fixes - Improve Table Rendering - Added Inline editing
=3.5.0 (Date: July 10, 2019) = - Shortcode issue fixed on Ajax Data Table Rendering - WCAG AA Compatibility issue fixed - Fix issues for non-english languages - Fix scroll to top issue - Fix filtering issue - Improvements in Backend and data rendering
=3.4.5 (Date: June 01, 2019) = - Fix issue for csv export for backend - Integrity issue resolved - Expand issue resolved for stacks table - Remove all cache option added - Shortcode rendering issue resolved
=3.4.3 ( Date: May 27, 2019 ) = - Fix Shortcode rendering issue - Added few UI changes
=3.4.0 ( Date: May 24, 2019 ) = - Improved some design issues. - Added more filters for searching the data - Improve Multi-site support (100% support now) - Internal code improvement
=3.3.3 ( Date: April 08, 2019 ) = - Fix default filter issue. - Fix issue for search and transform value - Fix date rendering issue. - Improve performance
=3.3.0 ( Date: March 21, 2019 ) = - Improved table config and make it hookable - improve asset loading - Now the table comply with WCAG 2.1 AA - Added entry result counter - Fix caption for table - Overall performance improvement
=3.2.4 ( Date: January 25, 2019 ) = - Fix bug for Data sorting issues - Improve overall performance
=3.2.3 ( Date: January 19, 2019 ) = - Fix bug for data export-import json - Improve Frontend Rendering - Improve Data Sorting Issues
Release Info
Developer | techjewel |
Plugin | Ninja Tables – WP Data Table Plugin for WordPress |
Version | 4.1.9 |
Comparing to | |
See all releases |
Code changes from version 4.1.8 to 4.1.9
- admin/DeactivationMessage.php +4 -3
- admin/NinjaTablesAdmin.php +34 -24
- admin/partials/deactive_form.php +26 -26
- includes/NinjaTableClass.php +9 -9
- includes/NinjaTableImport.php +10 -10
- includes/ProcessDemoPage.php +7 -3
- includes/libs/Lead/LeadFlow.php +5 -5
- includes/libs/TableDrivers/views/ninja_foo_table.php +8 -8
- includes/libs/TableDrivers/views/ninja_footable_css.php +83 -83
- includes/libs/csv/src/Config/Output.php +1 -1
- includes/ninja_tables-global-functions.php +3 -3
- ninja-tables.php +2 -2
- public/NinjaTablePublic.php +1 -1
- public/dataProviders/FluentFormProvider.php +6 -6
- public/views/frameless/show_review.php +5 -5
- public/views/table_inner_html.php +1 -1
- readme.txt +4 -1
@@ -11,8 +11,9 @@ class DeactivationMessage
|
|
11 |
if($this->isLocalhost()) {
|
12 |
return;
|
13 |
}
|
14 |
-
$
|
15 |
-
$
|
|
|
16 |
|
17 |
$currentUser = wp_get_current_user();
|
18 |
$data = array(
|
@@ -49,7 +50,7 @@ class DeactivationMessage
|
|
49 |
ob_start();
|
50 |
include 'partials/deactive_form.php';
|
51 |
$message = ob_get_clean();
|
52 |
-
|
53 |
echo $message;
|
54 |
}
|
55 |
|
11 |
if($this->isLocalhost()) {
|
12 |
return;
|
13 |
}
|
14 |
+
$requestData = ninja_tables_sanitize_array($_REQUEST);
|
15 |
+
$reason = ArrayHelper::get($requestData, 'reason', 'other');
|
16 |
+
$reason_message = ArrayHelper::get($requestData, 'custom_message', '');
|
17 |
|
18 |
$currentUser = wp_get_current_user();
|
19 |
$data = array(
|
50 |
ob_start();
|
51 |
include 'partials/deactive_form.php';
|
52 |
$message = ob_get_clean();
|
53 |
+
|
54 |
echo $message;
|
55 |
}
|
56 |
|
@@ -423,7 +423,7 @@ class NinjaTablesAdmin
|
|
423 |
|
424 |
public function enqueue_data_tables_scripts()
|
425 |
{
|
426 |
-
if (isset($_GET['page']) && $_GET['page'] == 'ninja_tables') {
|
427 |
$this->enqueue_scripts();
|
428 |
$this->enqueue_styles();
|
429 |
}
|
@@ -478,7 +478,7 @@ class NinjaTablesAdmin
|
|
478 |
);
|
479 |
|
480 |
|
481 |
-
$requested_route = $_REQUEST['target_action'];
|
482 |
if (isset($valid_routes[$requested_route])) {
|
483 |
$this->{$valid_routes[$requested_route]}();
|
484 |
} else if (isset($importRoutes[$requested_route])) {
|
@@ -500,8 +500,8 @@ class NinjaTablesAdmin
|
|
500 |
$args = array(
|
501 |
'posts_per_page' => $perPage,
|
502 |
'offset' => $skip,
|
503 |
-
'orderby' => $_REQUEST['orderBy'],
|
504 |
-
'order' => $_REQUEST['order'],
|
505 |
'post_type' => $this->cpt_name,
|
506 |
'post_status' => 'any',
|
507 |
);
|
@@ -543,7 +543,7 @@ class NinjaTablesAdmin
|
|
543 |
|
544 |
public function storeTable()
|
545 |
{
|
546 |
-
if (
|
547 |
wp_send_json_error(array(
|
548 |
'message' => __('The name field is required.', 'ninja-tables')
|
549 |
), 423);
|
@@ -585,8 +585,10 @@ class NinjaTablesAdmin
|
|
585 |
public function saveCustomCSSJS()
|
586 |
{
|
587 |
$tableId = intval($_REQUEST['table_id']);
|
588 |
-
|
589 |
-
|
|
|
|
|
590 |
$css = wp_strip_all_tags($css);
|
591 |
|
592 |
update_post_meta($tableId, '_ninja_tables_custom_css', $css);
|
@@ -640,7 +642,7 @@ class NinjaTablesAdmin
|
|
640 |
$tableColumns = array();
|
641 |
|
642 |
if (isset($_REQUEST['columns'])) {
|
643 |
-
$rawColumns = $_REQUEST['columns'];
|
644 |
if ($rawColumns && is_array($rawColumns)) {
|
645 |
foreach ($rawColumns as $column) {
|
646 |
foreach ($column as $column_index => $column_value) {
|
@@ -669,7 +671,7 @@ class NinjaTablesAdmin
|
|
669 |
$formattedTablePreference = array();
|
670 |
|
671 |
if (isset($_REQUEST['table_settings'])) {
|
672 |
-
$tablePreference = $_REQUEST['table_settings'];
|
673 |
if ($tablePreference && is_array($tablePreference)) {
|
674 |
$formattedTablePreference = ninjaTableNormalize($tablePreference);
|
675 |
|
@@ -733,11 +735,11 @@ class NinjaTablesAdmin
|
|
733 |
|
734 |
public function getTableData()
|
735 |
{
|
736 |
-
$perPage =
|
737 |
$currentPage = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1;
|
738 |
$skip = $perPage * ($currentPage - 1);
|
739 |
$tableId = intval($_REQUEST['table_id']);
|
740 |
-
$search =
|
741 |
|
742 |
$dataSourceType = ninja_table_get_data_provider($tableId);
|
743 |
if ($dataSourceType == 'default') {
|
@@ -851,11 +853,11 @@ class NinjaTablesAdmin
|
|
851 |
public function storeData()
|
852 |
{
|
853 |
$tableId = intval($_REQUEST['table_id']);
|
854 |
-
$row = $_REQUEST['row'];
|
855 |
$formattedRow = array();
|
856 |
|
857 |
foreach ($row as $key => $item) {
|
858 |
-
$formattedRow[$key] =
|
859 |
}
|
860 |
|
861 |
$attributes = array(
|
@@ -867,11 +869,17 @@ class NinjaTablesAdmin
|
|
867 |
);
|
868 |
|
869 |
if (isset($_REQUEST['settings'])) {
|
870 |
-
$attributes['settings'] = maybe_serialize(
|
|
|
|
|
|
|
|
|
871 |
}
|
872 |
|
873 |
-
|
874 |
-
|
|
|
|
|
875 |
}
|
876 |
|
877 |
if ($id = intval($_REQUEST['id'])) {
|
@@ -939,8 +947,9 @@ class NinjaTablesAdmin
|
|
939 |
public function updateSingleCell()
|
940 |
{
|
941 |
$rowId = intval($_REQUEST['row_id']);
|
942 |
-
$
|
943 |
-
$
|
|
|
944 |
|
945 |
// get The row first
|
946 |
$row = ninja_tables_DbTable()
|
@@ -948,7 +957,7 @@ class NinjaTablesAdmin
|
|
948 |
->first();
|
949 |
|
950 |
$values = json_decode($row->value, true);
|
951 |
-
$values[$columnKey] =
|
952 |
ninja_tables_DbTable()
|
953 |
->where('id', $rowId)
|
954 |
->update([
|
@@ -993,9 +1002,10 @@ class NinjaTablesAdmin
|
|
993 |
|
994 |
public function deleteData()
|
995 |
{
|
996 |
-
$
|
|
|
997 |
|
998 |
-
$id = $
|
999 |
|
1000 |
$ids = is_array($id) ? $id : array($id);
|
1001 |
|
@@ -1016,7 +1026,7 @@ class NinjaTablesAdmin
|
|
1016 |
|
1017 |
public function exportData()
|
1018 |
{
|
1019 |
-
$format =
|
1020 |
|
1021 |
$tableId = intval($_REQUEST['table_id']);
|
1022 |
|
@@ -1242,7 +1252,7 @@ class NinjaTablesAdmin
|
|
1242 |
public function saveNinjaTableFlagOnShortCode($post_id)
|
1243 |
{
|
1244 |
if (isset($_POST['post_content'])) {
|
1245 |
-
$post_content = $_POST['post_content'];
|
1246 |
} else {
|
1247 |
$post = get_post($post_id);
|
1248 |
$post_content = $post->post_content;
|
@@ -1616,7 +1626,7 @@ class NinjaTablesAdmin
|
|
1616 |
public function updateButtonSettings()
|
1617 |
{
|
1618 |
$tableId = absint($_REQUEST['table_id']);
|
1619 |
-
$buttonSettings = wp_unslash($_REQUEST['button_settings']);
|
1620 |
update_post_meta($tableId, '_ninja_custom_table_buttons', $buttonSettings);
|
1621 |
wp_send_json_success(array(
|
1622 |
'message' => __('Settings successfully updated', 'ninja-tables')
|
423 |
|
424 |
public function enqueue_data_tables_scripts()
|
425 |
{
|
426 |
+
if (isset($_GET['page']) && sanitize_text_field($_GET['page']) == 'ninja_tables') {
|
427 |
$this->enqueue_scripts();
|
428 |
$this->enqueue_styles();
|
429 |
}
|
478 |
);
|
479 |
|
480 |
|
481 |
+
$requested_route = sanitize_text_field($_REQUEST['target_action']);
|
482 |
if (isset($valid_routes[$requested_route])) {
|
483 |
$this->{$valid_routes[$requested_route]}();
|
484 |
} else if (isset($importRoutes[$requested_route])) {
|
500 |
$args = array(
|
501 |
'posts_per_page' => $perPage,
|
502 |
'offset' => $skip,
|
503 |
+
'orderby' => sanitize_text_field($_REQUEST['orderBy']),
|
504 |
+
'order' => sanitize_text_field($_REQUEST['order']),
|
505 |
'post_type' => $this->cpt_name,
|
506 |
'post_status' => 'any',
|
507 |
);
|
543 |
|
544 |
public function storeTable()
|
545 |
{
|
546 |
+
if (!sanitize_text_field($_REQUEST['post_title'])) {
|
547 |
wp_send_json_error(array(
|
548 |
'message' => __('The name field is required.', 'ninja-tables')
|
549 |
), 423);
|
585 |
public function saveCustomCSSJS()
|
586 |
{
|
587 |
$tableId = intval($_REQUEST['table_id']);
|
588 |
+
// todo: we need to sanizite css & js properly.
|
589 |
+
// Probably need to see what other plugins do.
|
590 |
+
$css = sanitize_text_field($_REQUEST['custom_css']);
|
591 |
+
$js = sanitize_text_field($_REQUEST['custom_js']);
|
592 |
$css = wp_strip_all_tags($css);
|
593 |
|
594 |
update_post_meta($tableId, '_ninja_tables_custom_css', $css);
|
642 |
$tableColumns = array();
|
643 |
|
644 |
if (isset($_REQUEST['columns'])) {
|
645 |
+
$rawColumns = ninja_tables_sanitize_array($_REQUEST['columns']);
|
646 |
if ($rawColumns && is_array($rawColumns)) {
|
647 |
foreach ($rawColumns as $column) {
|
648 |
foreach ($column as $column_index => $column_value) {
|
671 |
$formattedTablePreference = array();
|
672 |
|
673 |
if (isset($_REQUEST['table_settings'])) {
|
674 |
+
$tablePreference = ninja_tables_sanitize_array($_REQUEST['table_settings']);
|
675 |
if ($tablePreference && is_array($tablePreference)) {
|
676 |
$formattedTablePreference = ninjaTableNormalize($tablePreference);
|
677 |
|
735 |
|
736 |
public function getTableData()
|
737 |
{
|
738 |
+
$perPage = isset($_REQUEST['per_page']) ? intval($_REQUEST['per_page']) : 10;
|
739 |
$currentPage = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1;
|
740 |
$skip = $perPage * ($currentPage - 1);
|
741 |
$tableId = intval($_REQUEST['table_id']);
|
742 |
+
$search = sanitize_text_field($_REQUEST['search']);
|
743 |
|
744 |
$dataSourceType = ninja_table_get_data_provider($tableId);
|
745 |
if ($dataSourceType == 'default') {
|
853 |
public function storeData()
|
854 |
{
|
855 |
$tableId = intval($_REQUEST['table_id']);
|
856 |
+
$row = ninja_tables_sanitize_array($_REQUEST['row']);
|
857 |
$formattedRow = array();
|
858 |
|
859 |
foreach ($row as $key => $item) {
|
860 |
+
$formattedRow[$key] = wp_unslash($item);
|
861 |
}
|
862 |
|
863 |
$attributes = array(
|
869 |
);
|
870 |
|
871 |
if (isset($_REQUEST['settings'])) {
|
872 |
+
$attributes['settings'] = maybe_serialize(
|
873 |
+
wp_unslash(
|
874 |
+
ninja_tables_sanitize_array($_REQUEST['settings'])
|
875 |
+
)
|
876 |
+
);
|
877 |
}
|
878 |
|
879 |
+
$createdAt = isset($_REQUEST['created_at']) && sanitize_text_field($_REQUEST['created_at']);
|
880 |
+
|
881 |
+
if ($createdAt) {
|
882 |
+
$attributes['created_at'] = $createdAt;
|
883 |
}
|
884 |
|
885 |
if ($id = intval($_REQUEST['id'])) {
|
947 |
public function updateSingleCell()
|
948 |
{
|
949 |
$rowId = intval($_REQUEST['row_id']);
|
950 |
+
$data = ninja_tables_sanitize_array($_REQUEST);
|
951 |
+
$columnKey = sanitize_text_field($data['column_key']);
|
952 |
+
$columnValue = wp_unslash($data['column_value']);
|
953 |
|
954 |
// get The row first
|
955 |
$row = ninja_tables_DbTable()
|
957 |
->first();
|
958 |
|
959 |
$values = json_decode($row->value, true);
|
960 |
+
$values[$columnKey] = $columnValue;
|
961 |
ninja_tables_DbTable()
|
962 |
->where('id', $rowId)
|
963 |
->update([
|
1002 |
|
1003 |
public function deleteData()
|
1004 |
{
|
1005 |
+
$data = ninja_tables_sanitize_array($_REQUEST);
|
1006 |
+
$tableId = intval($data['table_id']);
|
1007 |
|
1008 |
+
$id = $data['id'];
|
1009 |
|
1010 |
$ids = is_array($id) ? $id : array($id);
|
1011 |
|
1026 |
|
1027 |
public function exportData()
|
1028 |
{
|
1029 |
+
$format = sanitize_text_field($_REQUEST['format']);
|
1030 |
|
1031 |
$tableId = intval($_REQUEST['table_id']);
|
1032 |
|
1252 |
public function saveNinjaTableFlagOnShortCode($post_id)
|
1253 |
{
|
1254 |
if (isset($_POST['post_content'])) {
|
1255 |
+
$post_content = wp_kses_post($_POST['post_content']);
|
1256 |
} else {
|
1257 |
$post = get_post($post_id);
|
1258 |
$post_content = $post->post_content;
|
1626 |
public function updateButtonSettings()
|
1627 |
{
|
1628 |
$tableId = absint($_REQUEST['table_id']);
|
1629 |
+
$buttonSettings = wp_unslash(ninja_tables_sanitize_array($_REQUEST['button_settings']));
|
1630 |
update_post_meta($tableId, '_ninja_custom_table_buttons', $buttonSettings);
|
1631 |
wp_send_json_success(array(
|
1632 |
'message' => __('Settings successfully updated', 'ninja-tables')
|
@@ -1,4 +1,4 @@
|
|
1 |
-
<div class="ninja-deactivation-feedback <?php
|
2 |
<div class="ninja-modal-dialog">
|
3 |
<div class="ninja-modal-header"><h4>Quick feedback</h4></div>
|
4 |
<div class="ninja-modal-body">
|
@@ -7,28 +7,28 @@
|
|
7 |
<h3><strong>If you have a moment, please let us know why you are deactivating:</strong></h3>
|
8 |
<ul id="reasons-list">
|
9 |
<?php foreach ($reasons as $reason_key => $reason): ?>
|
10 |
-
|
11 |
-
|
12 |
<span>
|
13 |
-
<input class="<?php
|
14 |
</span>
|
15 |
-
<span><?php
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
<?php endforeach; ?>
|
27 |
</ul>
|
28 |
</div>
|
29 |
</div>
|
30 |
<div class="ninja-modal-footer">
|
31 |
-
|
32 |
<a href="#" class="ninja_action_close button button-primary button-close">Cancel</a>
|
33 |
</div>
|
34 |
</div>
|
@@ -37,10 +37,10 @@
|
|
37 |
<script type="text/javascript">
|
38 |
jQuery(document).ready(function ($) {
|
39 |
|
40 |
-
jQuery('tr[data-slug="<?php
|
41 |
e.preventDefault();
|
42 |
-
$('.<?php
|
43 |
-
$('.<?php
|
44 |
});
|
45 |
|
46 |
$('.ninja_action_close').on('click', function(e) {
|
@@ -48,14 +48,14 @@
|
|
48 |
$('.ninja-deactivation-feedback').removeClass('active');
|
49 |
});
|
50 |
|
51 |
-
$('.<?php
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
});
|
57 |
|
58 |
-
$('.<?php
|
59 |
e.preventDefault();
|
60 |
var redirectLink = $(this).attr('href');
|
61 |
|
@@ -63,7 +63,7 @@
|
|
63 |
var custom_message = $('input[name="'+reason+'_custom"]').val();
|
64 |
$(this).text('Deactivating...').attr('disabled', true);
|
65 |
jQuery.post(ajaxurl, {
|
66 |
-
action: '<?php
|
67 |
reason: reason,
|
68 |
custom_message: custom_message
|
69 |
})
|
1 |
+
<div class="ninja-deactivation-feedback <?php esc_attr_e($slug); ?>_modal no-confirmation-message">
|
2 |
<div class="ninja-modal-dialog">
|
3 |
<div class="ninja-modal-header"><h4>Quick feedback</h4></div>
|
4 |
<div class="ninja-modal-body">
|
7 |
<h3><strong>If you have a moment, please let us know why you are deactivating:</strong></h3>
|
8 |
<ul id="reasons-list">
|
9 |
<?php foreach ($reasons as $reason_key => $reason): ?>
|
10 |
+
<li class="reason">
|
11 |
+
<label>
|
12 |
<span>
|
13 |
+
<input class="<?php esc_attr_e(($reason['has_custom']) ? 'has_custom' : ''); ?>" type="radio" name="selected-reason" value="<?php esc_attr_e($reason_key); ?>">
|
14 |
</span>
|
15 |
+
<span><?php esc_attr_e($reason['label']); ?></span>
|
16 |
+
</label>
|
17 |
+
<?php if($reason['has_custom']): ?>
|
18 |
+
<div class="ninja_custom_feedback">
|
19 |
+
<label>
|
20 |
+
<span><?php esc_attr_e($reason['custom_label']); ?></span>
|
21 |
+
<input type="text" name="<?php esc_attr_e($reason_key); ?>_custom" placeholder="<?php esc_attr_e($reason['custom_placeholder']); ?>" />
|
22 |
+
</label>
|
23 |
+
</div>
|
24 |
+
<?php endif; ?>
|
25 |
+
</li>
|
26 |
<?php endforeach; ?>
|
27 |
</ul>
|
28 |
</div>
|
29 |
</div>
|
30 |
<div class="ninja-modal-footer">
|
31 |
+
<a class="ninja_action_deactivate button" href="#">Skip & Deactivate</a>
|
32 |
<a href="#" class="ninja_action_close button button-primary button-close">Cancel</a>
|
33 |
</div>
|
34 |
</div>
|
37 |
<script type="text/javascript">
|
38 |
jQuery(document).ready(function ($) {
|
39 |
|
40 |
+
jQuery('tr[data-slug="<?php esc_attr_e($slug);?>"]').on('click', '.deactivate a', function (e) {
|
41 |
e.preventDefault();
|
42 |
+
$('.<?php esc_attr_e($slug); ?>_modal').addClass('active');
|
43 |
+
$('.<?php esc_attr_e($slug); ?>_modal a.ninja_action_deactivate').attr('href', $(this).attr('href'));
|
44 |
});
|
45 |
|
46 |
$('.ninja_action_close').on('click', function(e) {
|
48 |
$('.ninja-deactivation-feedback').removeClass('active');
|
49 |
});
|
50 |
|
51 |
+
$('.<?php esc_attr_e($slug); ?>_modal input[name="selected-reason"').on('change', function (e) {
|
52 |
+
e.preventDefault();
|
53 |
+
$('a.ninja_action_deactivate').text('Submit & Deactive').addClass('has_feedback');
|
54 |
+
$('.ninja_custom_feedback').removeClass('active');
|
55 |
+
$(this).closest('.reason').find('.ninja_custom_feedback').addClass('active');
|
56 |
});
|
57 |
|
58 |
+
$('.<?php esc_attr_e($slug); ?>_modal .ninja-modal-footer').on('click', 'a.ninja_action_deactivate.has_feedback', function (e) {
|
59 |
e.preventDefault();
|
60 |
var redirectLink = $(this).attr('href');
|
61 |
|
63 |
var custom_message = $('input[name="'+reason+'_custom"]').val();
|
64 |
$(this).text('Deactivating...').attr('disabled', true);
|
65 |
jQuery.post(ajaxurl, {
|
66 |
+
action: '<?php esc_attr_e($slug); ?>_deactivate_feedback',
|
67 |
reason: reason,
|
68 |
custom_message: custom_message
|
69 |
})
|
@@ -217,7 +217,7 @@ class NinjaTableClass
|
|
217 |
$this->loader->add_action('ninja_table_check_db_integrity', $plugin_admin, 'checkDBMigrations');
|
218 |
|
219 |
add_action('admin_enqueue_scripts', function () {
|
220 |
-
if (isset($_GET['page']) && $_GET['page'] == 'ninja_tables') {
|
221 |
if (function_exists('wp_enqueue_editor')) {
|
222 |
wp_enqueue_editor();
|
223 |
}
|
@@ -227,13 +227,13 @@ class NinjaTableClass
|
|
227 |
}
|
228 |
});
|
229 |
|
230 |
-
add_filter('pre_set_site_transient_update_plugins', function ($updates) {
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
}, 999, 1);
|
237 |
|
238 |
|
239 |
global $pagenow;
|
@@ -248,7 +248,7 @@ class NinjaTableClass
|
|
248 |
$this->loader->add_filter('plugin_action_links_ninja-tables/ninja-tables.php', $plugin_admin, 'add_plugin_action_links');
|
249 |
|
250 |
add_filter('admin_footer_text', function ($content) {
|
251 |
-
if (isset($_GET['page']) && $_GET['page'] == 'ninja_tables') {
|
252 |
$content = 'If you like Ninja Tables <a target="_blank" href="https://wordpress.org/support/plugin/ninja-tables/reviews/#new-post">please leave us a ★★★★★ rating</a>. Many thanks from the WPManageNinja team in advance :)';
|
253 |
}
|
254 |
return $content;
|
217 |
$this->loader->add_action('ninja_table_check_db_integrity', $plugin_admin, 'checkDBMigrations');
|
218 |
|
219 |
add_action('admin_enqueue_scripts', function () {
|
220 |
+
if (isset($_GET['page']) && sanitize_text_field($_GET['page']) == 'ninja_tables') {
|
221 |
if (function_exists('wp_enqueue_editor')) {
|
222 |
wp_enqueue_editor();
|
223 |
}
|
227 |
}
|
228 |
});
|
229 |
|
230 |
+
// add_filter('pre_set_site_transient_update_plugins', function ($updates) {
|
231 |
+
// if (!empty($updates->response['ninja-tables-pro'])) {
|
232 |
+
// $updates->response['ninja-tables-pro/ninja-tables-pro.php'] = $updates->response['ninja-tables-pro'];
|
233 |
+
// unset($updates->response['ninja-tables-pro']);
|
234 |
+
// }
|
235 |
+
// return $updates;
|
236 |
+
// }, 999, 1);
|
237 |
|
238 |
|
239 |
global $pagenow;
|
248 |
$this->loader->add_filter('plugin_action_links_ninja-tables/ninja-tables.php', $plugin_admin, 'add_plugin_action_links');
|
249 |
|
250 |
add_filter('admin_footer_text', function ($content) {
|
251 |
+
if (isset($_GET['page']) && sanitize_text_field($_GET['page']) == 'ninja_tables') {
|
252 |
$content = 'If you like Ninja Tables <a target="_blank" href="https://wordpress.org/support/plugin/ninja-tables/reviews/#new-post">please leave us a ★★★★★ rating</a>. Many thanks from the WPManageNinja team in advance :)';
|
253 |
}
|
254 |
return $content;
|
@@ -12,7 +12,7 @@ class NinjaTableImport
|
|
12 |
|
13 |
public function importTable()
|
14 |
{
|
15 |
-
$format = $_REQUEST['format'];
|
16 |
|
17 |
if ($format == 'csv') {
|
18 |
$this->uploadTableCsv();
|
@@ -50,7 +50,7 @@ class NinjaTableImport
|
|
50 |
|
51 |
public function importTableFromPlugin()
|
52 |
{
|
53 |
-
$plugin =
|
54 |
$tableId = intval($_REQUEST['tableId']);
|
55 |
|
56 |
if ($plugin == 'UltimateTables') {
|
@@ -115,18 +115,18 @@ class NinjaTableImport
|
|
115 |
'application/txt'
|
116 |
);
|
117 |
|
118 |
-
if (!in_array($_FILES['file']['type'], $mimes)) {
|
119 |
wp_send_json_error(array(
|
120 |
'errors' => array(),
|
121 |
'message' => __('Please upload valid CSV', 'ninja-tables')
|
122 |
), 423);
|
123 |
}
|
124 |
|
125 |
-
$tmpName = $_FILES['file']['tmp_name'];
|
126 |
$fileName = sanitize_text_field($_FILES['file']['name']);
|
127 |
|
128 |
$data = file_get_contents($tmpName);
|
129 |
-
if (isset($_REQUEST['do_unicode']) && $_REQUEST['do_unicode'] == 'yes') {
|
130 |
$data = utf8_encode($data);
|
131 |
}
|
132 |
|
@@ -164,7 +164,7 @@ class NinjaTableImport
|
|
164 |
{
|
165 |
$tableId = $this->createTable();
|
166 |
|
167 |
-
$tmpName = $_FILES['file']['tmp_name'];
|
168 |
|
169 |
$content = json_decode(file_get_contents($tmpName), true);
|
170 |
|
@@ -188,7 +188,7 @@ class NinjaTableImport
|
|
188 |
|
189 |
private function uploadTableNinjaJson()
|
190 |
{
|
191 |
-
$tmpName = $_FILES['file']['tmp_name'];
|
192 |
|
193 |
$parsedContent = file_get_contents($tmpName);
|
194 |
|
@@ -269,10 +269,10 @@ class NinjaTableImport
|
|
269 |
public function uploadData()
|
270 |
{
|
271 |
$tableId = intval($_REQUEST['table_id']);
|
272 |
-
$tmpName = $_FILES['file']['tmp_name'];
|
273 |
|
274 |
$data = file_get_contents($tmpName);
|
275 |
-
if (isset($_REQUEST['do_unicode']) && $_REQUEST['do_unicode'] == 'yes') {
|
276 |
$data = utf8_encode($data);
|
277 |
}
|
278 |
|
@@ -327,7 +327,7 @@ class NinjaTableImport
|
|
327 |
$timeStamp = $timeStamp + 100;
|
328 |
}
|
329 |
|
330 |
-
$replace = $_REQUEST['replace'] === 'true';
|
331 |
|
332 |
$data = apply_filters('ninja_tables_import_table_data', $data, $tableId);
|
333 |
|
12 |
|
13 |
public function importTable()
|
14 |
{
|
15 |
+
$format = sanitize_text_field($_REQUEST['format']);
|
16 |
|
17 |
if ($format == 'csv') {
|
18 |
$this->uploadTableCsv();
|
50 |
|
51 |
public function importTableFromPlugin()
|
52 |
{
|
53 |
+
$plugin = sanitize_text_field($_REQUEST['plugin']);
|
54 |
$tableId = intval($_REQUEST['tableId']);
|
55 |
|
56 |
if ($plugin == 'UltimateTables') {
|
115 |
'application/txt'
|
116 |
);
|
117 |
|
118 |
+
if (!in_array(sanitize_text_field($_FILES['file']['type']), $mimes)) {
|
119 |
wp_send_json_error(array(
|
120 |
'errors' => array(),
|
121 |
'message' => __('Please upload valid CSV', 'ninja-tables')
|
122 |
), 423);
|
123 |
}
|
124 |
|
125 |
+
$tmpName = sanitize_text_field($_FILES['file']['tmp_name']);
|
126 |
$fileName = sanitize_text_field($_FILES['file']['name']);
|
127 |
|
128 |
$data = file_get_contents($tmpName);
|
129 |
+
if (isset($_REQUEST['do_unicode']) && sanitize_text_field($_REQUEST['do_unicode']) == 'yes') {
|
130 |
$data = utf8_encode($data);
|
131 |
}
|
132 |
|
164 |
{
|
165 |
$tableId = $this->createTable();
|
166 |
|
167 |
+
$tmpName = sanitize_text_field($_FILES['file']['tmp_name']);
|
168 |
|
169 |
$content = json_decode(file_get_contents($tmpName), true);
|
170 |
|
188 |
|
189 |
private function uploadTableNinjaJson()
|
190 |
{
|
191 |
+
$tmpName = sanitize_text_field($_FILES['file']['tmp_name']);
|
192 |
|
193 |
$parsedContent = file_get_contents($tmpName);
|
194 |
|
269 |
public function uploadData()
|
270 |
{
|
271 |
$tableId = intval($_REQUEST['table_id']);
|
272 |
+
$tmpName = sanitize_text_field($_FILES['file']['tmp_name']);
|
273 |
|
274 |
$data = file_get_contents($tmpName);
|
275 |
+
if (isset($_REQUEST['do_unicode']) && sanitize_text_field($_REQUEST['do_unicode']) == 'yes') {
|
276 |
$data = utf8_encode($data);
|
277 |
}
|
278 |
|
327 |
$timeStamp = $timeStamp + 100;
|
328 |
}
|
329 |
|
330 |
+
$replace = sanitize_text_field($_REQUEST['replace']) === 'true';
|
331 |
|
332 |
$data = apply_filters('ninja_tables_import_table_data', $data, $tableId);
|
333 |
|
@@ -6,10 +6,14 @@ class ProcessDemoPage
|
|
6 |
{
|
7 |
public function handleExteriorPages()
|
8 |
{
|
9 |
-
|
10 |
-
|
11 |
-
|
|
|
|
|
12 |
|
|
|
|
|
13 |
do_action('ninja_tables_will_render_table', $tableId);
|
14 |
|
15 |
wp_enqueue_style('ninja-tables-preview', plugin_dir_url(__DIR__) . "assets/css/ninja-tables-preview.css");
|
6 |
{
|
7 |
public function handleExteriorPages()
|
8 |
{
|
9 |
+
$tableId = null;
|
10 |
+
|
11 |
+
if (isset($_GET['ninjatable_preview'])) {
|
12 |
+
$tableId = intval($_GET['ninjatable_preview']);
|
13 |
+
}
|
14 |
|
15 |
+
if ($tableId) {
|
16 |
+
if (ninja_table_admin_role()) {
|
17 |
do_action('ninja_tables_will_render_table', $tableId);
|
18 |
|
19 |
wp_enqueue_style('ninja-tables-preview', plugin_dir_url(__DIR__) . "assets/css/ninja-tables-preview.css");
|
@@ -84,7 +84,7 @@ class LeadFlow {
|
|
84 |
}
|
85 |
|
86 |
public function addNotice( $message, $type = 'success', $id = '', $hasDismiss = true ) {
|
87 |
-
if ( isset( $_GET['page'] ) && $_GET['page'] == 'ninja_tables' ) {
|
88 |
return;
|
89 |
}
|
90 |
$this->notices[ $id ] = array(
|
@@ -99,16 +99,16 @@ class LeadFlow {
|
|
99 |
public function showNotices() {
|
100 |
foreach ( $this->notices as $notice ) {
|
101 |
?>
|
102 |
-
<div data-notice_id="<?php
|
103 |
-
class="notice notice-<?php
|
104 |
<?php if ( $notice['title'] ): ?>
|
105 |
-
<label class="mn-plugin-title"><?php
|
106 |
<?php endif; ?>
|
107 |
<div class="mn-close">
|
108 |
<i class="dashicons dashicons-no" title="Dismiss"></i><span>Dismiss</span>
|
109 |
</div>
|
110 |
<div class="mn-notice-body">
|
111 |
-
<?php
|
112 |
</div>
|
113 |
</div>
|
114 |
<?php
|
84 |
}
|
85 |
|
86 |
public function addNotice( $message, $type = 'success', $id = '', $hasDismiss = true ) {
|
87 |
+
if ( isset( $_GET['page'] ) && sanitize_text_field($_GET['page']) == 'ninja_tables' ) {
|
88 |
return;
|
89 |
}
|
90 |
$this->notices[ $id ] = array(
|
99 |
public function showNotices() {
|
100 |
foreach ( $this->notices as $notice ) {
|
101 |
?>
|
102 |
+
<div data-notice_id="<?php esc_attr_e($notice['id']); ?>"
|
103 |
+
class="notice notice-<?php esc_attr_e($notice['type']); ?> mn-notices mn-has-title">
|
104 |
<?php if ( $notice['title'] ): ?>
|
105 |
+
<label class="mn-plugin-title"><?php esc_html_e($notice['title']); ?></label>
|
106 |
<?php endif; ?>
|
107 |
<div class="mn-close">
|
108 |
<i class="dashicons dashicons-no" title="Dismiss"></i><span>Dismiss</span>
|
109 |
</div>
|
110 |
<div class="mn-notice-body">
|
111 |
+
<?php esc_html_e($notice['message']); ?>
|
112 |
</div>
|
113 |
</div>
|
114 |
<?php
|
@@ -1,5 +1,5 @@
|
|
1 |
-
<div id="footable_parent_<?php
|
2 |
-
class="footable_parent ninja_table_wrapper loading_ninja_table wp_table_data_press_parent <?php
|
3 |
<?php if (isset($settings['show_title']) && $settings['show_title']) : ?>
|
4 |
<?php do_action('ninja_tables_before_table_title', $table); ?>
|
5 |
<h3 class="table_title footable_title"><?php echo esc_attr($table->post_title); ?></h3>
|
@@ -13,16 +13,16 @@
|
|
13 |
$table); ?>
|
14 |
<?php endif; ?>
|
15 |
<?php do_action('ninja_tables_before_table_print', $table, $table_vars); ?>
|
16 |
-
<table data-ninja_table_instance="<?php
|
17 |
id="footable_<?php echo intval($table_id); ?>"
|
18 |
-
data-unique_identifier="<?php
|
19 |
-
class=" foo-table ninja_footable foo_table_<?php echo intval($table_id); ?> <?php
|
20 |
<?php if ($tableCaption): ?>
|
21 |
-
<caption><?php
|
22 |
<?php endif; ?>
|
23 |
<colgroup>
|
24 |
<?php foreach ($formatted_columns as $index => $column) : ?>
|
25 |
-
<col class="ninja_column_<?php
|
26 |
<?php endforeach; ?>
|
27 |
</colgroup>
|
28 |
<?php do_action('ninja_tables_inside_table_render', $table, $table_vars); ?>
|
@@ -36,7 +36,7 @@
|
|
36 |
<?php endif; ?>
|
37 |
|
38 |
<?php if (is_user_logged_in() && ninja_table_admin_role()): ?>
|
39 |
-
<a class="nt_edit_link" href="<?php echo admin_url('admin.php?page=ninja_tables#/tables/' . $table->ID); ?>">
|
40 |
<?php _e('Edit Table', 'ninja-tables') ?>
|
41 |
</a>
|
42 |
<?php endif; ?>
|
1 |
+
<div id="footable_parent_<?php esc_attr_e($table_id); ?>"
|
2 |
+
class="footable_parent ninja_table_wrapper loading_ninja_table wp_table_data_press_parent <?php esc_attr_e($settings['css_lib']); ?> <?php esc_attr_e($tableHasColor); ?>">
|
3 |
<?php if (isset($settings['show_title']) && $settings['show_title']) : ?>
|
4 |
<?php do_action('ninja_tables_before_table_title', $table); ?>
|
5 |
<h3 class="table_title footable_title"><?php echo esc_attr($table->post_title); ?></h3>
|
13 |
$table); ?>
|
14 |
<?php endif; ?>
|
15 |
<?php do_action('ninja_tables_before_table_print', $table, $table_vars); ?>
|
16 |
+
<table data-ninja_table_instance="<?php esc_attr_e($table_instance_name); ?>" <?php esc_attr_e($foo_table_attributes); ?>
|
17 |
id="footable_<?php echo intval($table_id); ?>"
|
18 |
+
data-unique_identifier="<?php esc_attr_e($tableArray['uniqueID']); ?>"
|
19 |
+
class=" foo-table ninja_footable foo_table_<?php echo intval($table_id); ?> <?php esc_attr_e($tableArray['uniqueID']); ?> <?php echo esc_attr($table_classes); ?>">
|
20 |
<?php if ($tableCaption): ?>
|
21 |
+
<caption><?php esc_attr_e($tableCaption); ?></caption>
|
22 |
<?php endif; ?>
|
23 |
<colgroup>
|
24 |
<?php foreach ($formatted_columns as $index => $column) : ?>
|
25 |
+
<col class="ninja_column_<?php esc_attr_e($index . ' ' . $column['breakpoints']); ?>">
|
26 |
<?php endforeach; ?>
|
27 |
</colgroup>
|
28 |
<?php do_action('ninja_tables_inside_table_render', $table, $table_vars); ?>
|
36 |
<?php endif; ?>
|
37 |
|
38 |
<?php if (is_user_logged_in() && ninja_table_admin_role()): ?>
|
39 |
+
<a class="nt_edit_link" href="<?php echo esc_url_raw(admin_url('admin.php?page=ninja_tables#/tables/' . $table->ID)); ?>">
|
40 |
<?php _e('Edit Table', 'ninja-tables') ?>
|
41 |
</a>
|
42 |
<?php endif; ?>
|
@@ -1,79 +1,79 @@
|
|
1 |
-
<style id="ninja_table_custom_css_<?php
|
2 |
<?php if($fonts):?>
|
3 |
-
<?php
|
4 |
-
font-family: <?php
|
5 |
-
font-size: <?php
|
6 |
}
|
7 |
<?php endif;?>
|
8 |
<?php if($colors): ?>
|
9 |
-
<?php
|
10 |
-
<?php
|
11 |
-
background-color: <?php
|
12 |
-
color: <?php
|
13 |
-
border-color: <?php
|
14 |
}
|
15 |
-
<?php
|
16 |
-
background-color: <?php
|
17 |
-
color: <?php
|
18 |
}
|
19 |
-
<?php
|
20 |
<?php if($colors['table_search_color_border']): ?>
|
21 |
-
border : 1px solid <?php
|
22 |
<?php else: ?>
|
23 |
border : 1px solid transparent !important;
|
24 |
<?php endif; ?>
|
25 |
}
|
26 |
-
<?php
|
27 |
-
background-color: <?php
|
28 |
-
color: <?php
|
29 |
}
|
30 |
-
<?php
|
31 |
-
background-color: <?php
|
32 |
-
color: <?php
|
33 |
}
|
34 |
<?php if($colors['table_color_header_border']) : ?>
|
35 |
-
<?php
|
36 |
-
border-color: <?php
|
37 |
}
|
38 |
<?php endif; ?>
|
39 |
|
40 |
<?php if(isset($colors['table_color_border']) && $colors['table_color_border']) : ?>
|
41 |
-
<?php
|
42 |
-
border-color: <?php
|
43 |
}
|
44 |
<?php endif; ?>
|
45 |
-
<?php
|
46 |
-
background-color: <?php
|
47 |
-
color: <?php
|
48 |
}
|
49 |
-
<?php
|
50 |
-
border-color: <?php
|
51 |
}
|
52 |
<?php if(isset($colors['alternate_color_status']) && $colors['alternate_color_status'] == 'yes'): ?>
|
53 |
-
<?php
|
54 |
-
background-color: <?php
|
55 |
-
color: <?php
|
56 |
}
|
57 |
-
<?php
|
58 |
-
background-color: <?php
|
59 |
-
color: <?php
|
60 |
}
|
61 |
-
<?php
|
62 |
-
background-color: <?php
|
63 |
}
|
64 |
-
<?php
|
65 |
-
background-color: <?php
|
66 |
}
|
67 |
<?php endif; ?>
|
68 |
|
69 |
-
<?php
|
70 |
-
background-color: <?php
|
71 |
}
|
72 |
-
<?php
|
73 |
-
background-color: <?php
|
74 |
}
|
75 |
-
<?php
|
76 |
-
border-color: <?php
|
77 |
}
|
78 |
<?php endif; ?>
|
79 |
<?php if($cellStyles): ?>
|
@@ -82,79 +82,79 @@
|
|
82 |
$cell = maybe_unserialize($cellStyle->settings);
|
83 |
$cellPrefix = $css_prefix.'.ninja_footable.ninja_table_pro tbody tr.nt_row_id_'.$cellStyle->id;
|
84 |
?>
|
85 |
-
<?php
|
86 |
-
<?php if(@$cell['row_bg']): ?>background: <?php
|
87 |
-
<?php if(@$cell['text_color']): ?>color: <?php
|
88 |
<?php if($cell && isset($cell['cell']) && is_array($cell['cell'])) : foreach ($cell['cell'] as $cell_key => $values): ?>
|
89 |
<?php $specCellPrefix = $cellPrefix.' .ninja_clmn_nm_'.$cell_key; ?>
|
90 |
-
<?php
|
91 |
<?php foreach ($values as $value_key => $value){ ?>
|
92 |
-
<?php if($value):
|
93 |
<?php } ?>
|
94 |
}
|
95 |
-
<?php
|
96 |
<?php endforeach; endif; // end of if(is_array($cell['cell'])) ?>
|
97 |
<?php endforeach; ?>
|
98 |
<?php endif; ?>
|
99 |
|
100 |
<?php if($hasStackable): ?>
|
101 |
-
<?php
|
102 |
background: transparent !important;
|
103 |
}
|
104 |
<?php if ($colors) : ?>
|
105 |
-
<?php
|
106 |
-
background-color: <?php
|
107 |
-
color: <?php
|
108 |
-
border-color: <?php
|
109 |
-
}
|
110 |
-
<?php
|
111 |
-
background-color: <?php
|
112 |
-
color: <?php
|
113 |
}
|
114 |
-
<?php
|
115 |
<?php if($colors['table_search_color_border']): ?>
|
116 |
-
border : 1px solid <?php
|
117 |
<?php else: ?>
|
118 |
border : 1px solid transparent !important;
|
119 |
<?php endif; ?>
|
120 |
}
|
121 |
-
<?php
|
122 |
-
background-color: <?php
|
123 |
-
color: <?php
|
124 |
}
|
125 |
-
<?php
|
126 |
-
background-color: <?php
|
127 |
-
color: <?php
|
128 |
}
|
129 |
<?php endif; ?>
|
130 |
<?php if(isset($colors['table_color_header_border']) && $colors['table_color_header_border']) : ?>
|
131 |
-
<?php
|
132 |
-
border-color: <?php
|
133 |
}
|
134 |
<?php endif; ?>
|
135 |
|
136 |
<?php if(isset($colors['table_color_border']) && $colors['table_color_border']) : ?>
|
137 |
-
<?php
|
138 |
-
border-color: <?php
|
139 |
}
|
140 |
<?php endif; ?>
|
141 |
<?php if(isset($css_prefix['alternate_color_status']) && $css_prefix['alternate_color_status'] == 'yes'): ?>
|
142 |
-
<?php
|
143 |
-
background-color: <?php
|
144 |
-
color: <?php
|
145 |
}
|
146 |
-
<?php
|
147 |
-
background-color: <?php
|
148 |
-
color: <?php
|
149 |
}
|
150 |
-
<?php
|
151 |
-
background-color: <?php
|
152 |
}
|
153 |
-
<?php
|
154 |
-
background-color: <?php
|
155 |
}
|
156 |
<?php endif; ?>
|
157 |
<?php endif; ?>
|
158 |
|
159 |
-
<?php
|
160 |
</style>
|
1 |
+
<style id="ninja_table_custom_css_<?php esc_attr_e($tableId); ?>" type="text/css">
|
2 |
<?php if($fonts):?>
|
3 |
+
<?php esc_attr_e($css_prefix); ?> {
|
4 |
+
font-family: <?php esc_attr_e($fonts['table_font_family']);?> !important;
|
5 |
+
font-size: <?php esc_attr_e($fonts['table_font_size']);?>px !important;
|
6 |
}
|
7 |
<?php endif;?>
|
8 |
<?php if($colors): ?>
|
9 |
+
<?php esc_attr_e($css_prefix); ?>,
|
10 |
+
<?php esc_attr_e($css_prefix); ?> table {
|
11 |
+
background-color: <?php esc_attr_e($colors['table_color_primary']); ?> !important;
|
12 |
+
color: <?php esc_attr_e($colors['table_color_secondary']); ?> !important;
|
13 |
+
border-color: <?php esc_attr_e($colors['table_color_border']); ?> !important;
|
14 |
}
|
15 |
+
<?php esc_attr_e($css_prefix); ?> thead tr.footable-filtering th {
|
16 |
+
background-color: <?php esc_attr_e($colors['table_search_color_primary']); ?> !important;
|
17 |
+
color: <?php esc_attr_e($colors['table_search_color_secondary']); ?> !important;
|
18 |
}
|
19 |
+
<?php esc_attr_e($css_prefix); ?>:not(.hide_all_borders) thead tr.footable-filtering th {
|
20 |
<?php if($colors['table_search_color_border']): ?>
|
21 |
+
border : 1px solid <?php esc_attr_e($colors['table_search_color_border']); ?> !important;
|
22 |
<?php else: ?>
|
23 |
border : 1px solid transparent !important;
|
24 |
<?php endif; ?>
|
25 |
}
|
26 |
+
<?php esc_attr_e($css_prefix); ?> .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
|
27 |
+
background-color: <?php esc_attr_e($colors['table_search_color_secondary']); ?> !important;
|
28 |
+
color: <?php esc_attr_e($colors['table_search_color_primary']); ?> !important;
|
29 |
}
|
30 |
+
<?php esc_attr_e($css_prefix); ?> tr.footable-header, <?php esc_attr_e($css_prefix); ?> tr.footable-header th, .colored_table table.ninja_table_pro.inverted.table.footable-details tbody tr th {
|
31 |
+
background-color: <?php esc_attr_e($colors['table_header_color_primary']); ?> !important;
|
32 |
+
color: <?php esc_attr_e($colors['table_color_header_secondary']); ?> !important;
|
33 |
}
|
34 |
<?php if($colors['table_color_header_border']) : ?>
|
35 |
+
<?php esc_attr_e($css_prefix); ?>:not(.hide_all_borders) tr.footable-header th, <?php esc_attr_e($css_prefix); ?>:not(.hide_all_borders) tbody tr th {
|
36 |
+
border-color: <?php esc_attr_e($colors['table_color_header_border']); ?> !important;
|
37 |
}
|
38 |
<?php endif; ?>
|
39 |
|
40 |
<?php if(isset($colors['table_color_border']) && $colors['table_color_border']) : ?>
|
41 |
+
<?php esc_attr_e($css_prefix); ?>:not(.hide_all_borders) tbody tr td {
|
42 |
+
border-color: <?php esc_attr_e($colors['table_color_border']); ?> !important;
|
43 |
}
|
44 |
<?php endif; ?>
|
45 |
+
<?php esc_attr_e($css_prefix); ?> tbody tr:hover {
|
46 |
+
background-color: <?php esc_attr_e($colors['table_color_primary_hover']); ?> !important;
|
47 |
+
color: <?php esc_attr_e($colors['table_color_secondary_hover']); ?> !important;
|
48 |
}
|
49 |
+
<?php esc_attr_e($css_prefix); ?> tbody tr:hover td {
|
50 |
+
border-color: <?php esc_attr_e($colors['table_color_border_hover']); ?> !important;
|
51 |
}
|
52 |
<?php if(isset($colors['alternate_color_status']) && $colors['alternate_color_status'] == 'yes'): ?>
|
53 |
+
<?php esc_attr_e($css_prefix); ?> tbody tr:nth-child(even) {
|
54 |
+
background-color: <?php esc_attr_e($colors['table_alt_color_primary']); ?> !important;
|
55 |
+
color: <?php esc_attr_e($colors['table_alt_color_secondary']); ?> !important;
|
56 |
}
|
57 |
+
<?php esc_attr_e($css_prefix); ?> tbody tr:nth-child(odd) {
|
58 |
+
background-color: <?php esc_attr_e($colors['table_alt_2_color_primary']); ?> !important;
|
59 |
+
color: <?php esc_attr_e($colors['table_alt_2_color_secondary']); ?> !important;
|
60 |
}
|
61 |
+
<?php esc_attr_e($css_prefix); ?> tbody tr:nth-child(even):hover {
|
62 |
+
background-color: <?php esc_attr_e($colors['table_alt_color_hover']); ?> !important;
|
63 |
}
|
64 |
+
<?php esc_attr_e($css_prefix); ?> tbody tr:nth-child(odd):hover {
|
65 |
+
background-color: <?php esc_attr_e($colors['table_alt_2_color_hover']); ?> !important;
|
66 |
}
|
67 |
<?php endif; ?>
|
68 |
|
69 |
+
<?php esc_attr_e($css_prefix); ?> tfoot .footable-paging {
|
70 |
+
background-color: <?php esc_attr_e($colors['table_footer_bg']); ?> !important;
|
71 |
}
|
72 |
+
<?php esc_attr_e($css_prefix); ?> tfoot .footable-paging .footable-page.active a {
|
73 |
+
background-color: <?php esc_attr_e($colors['table_footer_active']); ?> !important;
|
74 |
}
|
75 |
+
<?php esc_attr_e($css_prefix); ?>:not(.hide_all_borders) tfoot tr.footable-paging td {
|
76 |
+
border-color: <?php esc_attr_e($colors['table_footer_border']); ?> !important;
|
77 |
}
|
78 |
<?php endif; ?>
|
79 |
<?php if($cellStyles): ?>
|
82 |
$cell = maybe_unserialize($cellStyle->settings);
|
83 |
$cellPrefix = $css_prefix.'.ninja_footable.ninja_table_pro tbody tr.nt_row_id_'.$cellStyle->id;
|
84 |
?>
|
85 |
+
<?php esc_attr_e($cellPrefix)?> {
|
86 |
+
<?php if(@$cell['row_bg']): ?>background: <?php esc_attr_e($cell['row_bg']).' !important;'; endif; ?>
|
87 |
+
<?php if(@$cell['text_color']): ?>color: <?php esc_attr_e($cell['text_color']).'!important;'; endif; ?>}
|
88 |
<?php if($cell && isset($cell['cell']) && is_array($cell['cell'])) : foreach ($cell['cell'] as $cell_key => $values): ?>
|
89 |
<?php $specCellPrefix = $cellPrefix.' .ninja_clmn_nm_'.$cell_key; ?>
|
90 |
+
<?php esc_attr_e($specCellPrefix) ?> {
|
91 |
<?php foreach ($values as $value_key => $value){ ?>
|
92 |
+
<?php if($value): esc_attr_e($value_key); ?> : <?php esc_attr_e($value).';'; endif; ?>
|
93 |
<?php } ?>
|
94 |
}
|
95 |
+
<?php esc_attr_e($specCellPrefix) ?> > * { color: inherit }
|
96 |
<?php endforeach; endif; // end of if(is_array($cell['cell'])) ?>
|
97 |
<?php endforeach; ?>
|
98 |
<?php endif; ?>
|
99 |
|
100 |
<?php if($hasStackable): ?>
|
101 |
+
<?php esc_attr_e($css_prefix); ?>.ninja_stacked_table > tbody, <?php echo $css_prefix; ?>.ninja_stacked_table {
|
102 |
background: transparent !important;
|
103 |
}
|
104 |
<?php if ($colors) : ?>
|
105 |
+
<?php esc_attr_e($css_prefix); ?>.ninja_stacked_table .footable-details tbody {
|
106 |
+
background-color: <?php esc_attr_e($colors['table_color_primary']); ?> !important;
|
107 |
+
color: <?php esc_attr_e($colors['table_color_secondary']); ?> !important;
|
108 |
+
border-color: <?php esc_attr_e($colors['table_color_border']); ?> !important;
|
109 |
+
}
|
110 |
+
<?php esc_attr_e($stackPrefix); ?> thead tr.footable-filtering th {
|
111 |
+
background-color: <?php esc_attr_e($colors['table_search_color_primary']); ?> !important;
|
112 |
+
color: <?php esc_attr_e($colors['table_search_color_secondary']); ?> !important;
|
113 |
}
|
114 |
+
<?php esc_attr_e($stackPrefix); ?>:not(.hide_all_borders) thead tr.footable-filtering th {
|
115 |
<?php if($colors['table_search_color_border']): ?>
|
116 |
+
border : 1px solid <?php esc_attr_e($colors['table_search_color_border']); ?> !important;
|
117 |
<?php else: ?>
|
118 |
border : 1px solid transparent !important;
|
119 |
<?php endif; ?>
|
120 |
}
|
121 |
+
<?php esc_attr_e($stackPrefix); ?> .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
|
122 |
+
background-color: <?php esc_attr_e($colors['table_search_color_secondary']); ?> !important;
|
123 |
+
color: <?php esc_attr_e($colors['table_search_color_primary']); ?> !important;
|
124 |
}
|
125 |
+
<?php esc_attr_e($stackPrefix); ?> tr.footable-header, <?php esc_attr_e($stackPrefix); ?> tr.footable-header th {
|
126 |
+
background-color: <?php esc_attr_e($colors['table_header_color_primary']); ?> !important;
|
127 |
+
color: <?php esc_attr_e($colors['table_color_header_secondary']); ?> !important;
|
128 |
}
|
129 |
<?php endif; ?>
|
130 |
<?php if(isset($colors['table_color_header_border']) && $colors['table_color_header_border']) : ?>
|
131 |
+
<?php esc_attr_e($stackPrefix); ?>:not(.hide_all_borders) tr.footable-header th {
|
132 |
+
border-color: <?php esc_attr_e($colors['table_color_header_border']); ?> !important;
|
133 |
}
|
134 |
<?php endif; ?>
|
135 |
|
136 |
<?php if(isset($colors['table_color_border']) && $colors['table_color_border']) : ?>
|
137 |
+
<?php esc_attr_e($css_prefix); ?>:not(.hide_all_borders) tbody tr td table {
|
138 |
+
border-color: <?php esc_attr_e($colors['table_color_border']); ?> !important;
|
139 |
}
|
140 |
<?php endif; ?>
|
141 |
<?php if(isset($css_prefix['alternate_color_status']) && $css_prefix['alternate_color_status'] == 'yes'): ?>
|
142 |
+
<?php esc_attr_e($stackPrefix); ?> tbody tr:nth-child(even) {
|
143 |
+
background-color: <?php esc_attr_e($colors['table_alt_color_primary']); ?>;
|
144 |
+
color: <?php esc_attr_e($colors['table_alt_color_secondary']); ?>;
|
145 |
}
|
146 |
+
<?php esc_attr_e($stackPrefix); ?> tbody tr:nth-child(odd) {
|
147 |
+
background-color: <?php esc_attr_e($colors['table_alt_2_color_primary']); ?>;
|
148 |
+
color: <?php esc_attr_e($colors['table_alt_2_color_secondary']); ?>;
|
149 |
}
|
150 |
+
<?php esc_attr_e($stackPrefix); ?> tbody tr:nth-child(even):hover {
|
151 |
+
background-color: <?php esc_attr_e($colors['table_alt_color_hover']); ?>;
|
152 |
}
|
153 |
+
<?php esc_attr_e($stackPrefix); ?> tbody tr:nth-child(odd):hover {
|
154 |
+
background-color: <?php esc_attr_e($colors['table_alt_2_color_hover']); ?>;
|
155 |
}
|
156 |
<?php endif; ?>
|
157 |
<?php endif; ?>
|
158 |
|
159 |
+
<?php esc_attr_e($custom_css); ?>
|
160 |
</style>
|
@@ -206,7 +206,7 @@ trait Output
|
|
206 |
if (!empty($bom)) {
|
207 |
$csv->fseek(mb_strlen($input_bom));
|
208 |
}
|
209 |
-
|
210 |
$res = $csv->fpassthru();
|
211 |
|
212 |
return $res + strlen($bom);
|
206 |
if (!empty($bom)) {
|
207 |
$csv->fseek(mb_strlen($input_bom));
|
208 |
}
|
209 |
+
esc_html_e($bom);
|
210 |
$res = $csv->fpassthru();
|
211 |
|
212 |
return $res + strlen($bom);
|
@@ -231,7 +231,7 @@ function ninja_table_get_icon_url()
|
|
231 |
}
|
232 |
|
233 |
if (!function_exists('ninja_tables_is_valid_url')) {
|
234 |
-
define('
|
235 |
'/^(https?):\/\/' . // protocol
|
236 |
'(([a-z0-9$_\.\+!\*\'\(\),;\?&=-]|%[0-9a-f]{2})+' . // username
|
237 |
'(:([a-z0-9$_\.\+!\*\'\(\),;\?&=-]|%[0-9a-f]{2})+)?' . // password
|
@@ -248,7 +248,7 @@ if (!function_exists('ninja_tables_is_valid_url')) {
|
|
248 |
'$/i');
|
249 |
function ninja_tables_is_valid_url($url)
|
250 |
{
|
251 |
-
return preg_match(
|
252 |
}
|
253 |
}
|
254 |
|
@@ -878,7 +878,7 @@ function ninjaTablePreloadFont () {
|
|
878 |
add_action('wp_head', function () {
|
879 |
$preloadFontUrl = NINJA_TABLES_DIR_URL . "assets/fonts/ninja-tables.woff2?" . NINJA_TABLES_PRELOAD_FONT_VERSION;
|
880 |
?>
|
881 |
-
<link rel="preload" as="font" href="<?php
|
882 |
<?php
|
883 |
}, 99);
|
884 |
}
|
231 |
}
|
232 |
|
233 |
if (!function_exists('ninja_tables_is_valid_url')) {
|
234 |
+
define('NINJA_TABLES_URL_FORMAT',
|
235 |
'/^(https?):\/\/' . // protocol
|
236 |
'(([a-z0-9$_\.\+!\*\'\(\),;\?&=-]|%[0-9a-f]{2})+' . // username
|
237 |
'(:([a-z0-9$_\.\+!\*\'\(\),;\?&=-]|%[0-9a-f]{2})+)?' . // password
|
248 |
'$/i');
|
249 |
function ninja_tables_is_valid_url($url)
|
250 |
{
|
251 |
+
return preg_match(NINJA_TABLES_URL_FORMAT, $url);
|
252 |
}
|
253 |
}
|
254 |
|
878 |
add_action('wp_head', function () {
|
879 |
$preloadFontUrl = NINJA_TABLES_DIR_URL . "assets/fonts/ninja-tables.woff2?" . NINJA_TABLES_PRELOAD_FONT_VERSION;
|
880 |
?>
|
881 |
+
<link rel="preload" as="font" href="<?php esc_attr_e($preloadFontUrl) ?>" type="font/woff2" crossorigin="anonymous">
|
882 |
<?php
|
883 |
}, 99);
|
884 |
}
|
@@ -16,7 +16,7 @@
|
|
16 |
* Plugin Name: Ninja Tables
|
17 |
* Plugin URI: https://wpmanageninja.com/downloads/ninja-tables-pro-add-on/
|
18 |
* Description: The Easiest & Fastest Responsive Table Plugin on WordPress. Multiple templates, drag-&-drop live table builder, multiple color scheme, and styles.
|
19 |
-
* Version: 4.1.
|
20 |
* Author: WPManageNinja LLC
|
21 |
* Author URI: https://wpmanageninja.com/
|
22 |
* License: GPL-2.0+
|
@@ -33,7 +33,7 @@ if (!defined('WPINC')) {
|
|
33 |
define('NINJA_TABLES_DIR_URL', plugin_dir_url(__FILE__));
|
34 |
define('NINJA_TABLES_DIR_PATH', plugin_dir_path(__FILE__));
|
35 |
define('NINJA_TABLES_PUBLIC_DIR_URL', NINJA_TABLES_DIR_URL . 'public/');
|
36 |
-
define('NINJA_TABLES_VERSION', '4.1.
|
37 |
define('NINJA_TABLES_ASSET_VERSION', '3.1.0');
|
38 |
define('NINJA_TABLES_PRELOAD_FONT_VERSION', "1a82860cb5286f7833a2c33fbdd1d76c");
|
39 |
|
16 |
* Plugin Name: Ninja Tables
|
17 |
* Plugin URI: https://wpmanageninja.com/downloads/ninja-tables-pro-add-on/
|
18 |
* Description: The Easiest & Fastest Responsive Table Plugin on WordPress. Multiple templates, drag-&-drop live table builder, multiple color scheme, and styles.
|
19 |
+
* Version: 4.1.9
|
20 |
* Author: WPManageNinja LLC
|
21 |
* Author URI: https://wpmanageninja.com/
|
22 |
* License: GPL-2.0+
|
33 |
define('NINJA_TABLES_DIR_URL', plugin_dir_url(__FILE__));
|
34 |
define('NINJA_TABLES_DIR_PATH', plugin_dir_path(__FILE__));
|
35 |
define('NINJA_TABLES_PUBLIC_DIR_URL', NINJA_TABLES_DIR_URL . 'public/');
|
36 |
+
define('NINJA_TABLES_VERSION', '4.1.9');
|
37 |
define('NINJA_TABLES_ASSET_VERSION', '3.1.0');
|
38 |
define('NINJA_TABLES_PRELOAD_FONT_VERSION', "1a82860cb5286f7833a2c33fbdd1d76c");
|
39 |
|
@@ -103,7 +103,7 @@ class NinjaTablePublic
|
|
103 |
}
|
104 |
|
105 |
$ownOnly = false;
|
106 |
-
if (isset($_REQUEST['own_only']) && $_REQUEST['own_only'] == 'yes') {
|
107 |
$ownOnly = true;
|
108 |
}
|
109 |
|
103 |
}
|
104 |
|
105 |
$ownOnly = false;
|
106 |
+
if (isset($_REQUEST['own_only']) && sanitize_text_field($_REQUEST['own_only']) == 'yes') {
|
107 |
$ownOnly = true;
|
108 |
}
|
109 |
|
@@ -68,8 +68,8 @@ class FluentFormProvider
|
|
68 |
ninjaTablesValidateNonce();
|
69 |
|
70 |
$messages = array();
|
71 |
-
$tableId = $_REQUEST['table_Id'];
|
72 |
-
$formId = $_REQUEST['form']['id'];
|
73 |
|
74 |
if (!$tableId) {
|
75 |
// Validate Title
|
@@ -79,8 +79,8 @@ class FluentFormProvider
|
|
79 |
}
|
80 |
|
81 |
// Validate Columns
|
82 |
-
$fields = isset($_REQUEST['form']['fields']) ? $_REQUEST['form']['fields'] : array();
|
83 |
-
if (
|
84 |
$messages['fields'] = __('No fields were selected.', 'ninja-tables');
|
85 |
}
|
86 |
|
@@ -131,11 +131,11 @@ class FluentFormProvider
|
|
131 |
}
|
132 |
|
133 |
update_post_meta(
|
134 |
-
$tableId, '_ninja_tables_data_provider_ff_entry_limit', $_REQUEST['form']['entry_limit']
|
135 |
);
|
136 |
|
137 |
update_post_meta(
|
138 |
-
$tableId, '_ninja_tables_data_provider_ff_entry_status', $_REQUEST['form']['entry_status']
|
139 |
);
|
140 |
|
141 |
wp_send_json_success(array('table_id' => $tableId, 'form_id' => $formId));
|
68 |
ninjaTablesValidateNonce();
|
69 |
|
70 |
$messages = array();
|
71 |
+
$tableId = intval($_REQUEST['table_Id']);
|
72 |
+
$formId = intval($_REQUEST['form']['id']);
|
73 |
|
74 |
if (!$tableId) {
|
75 |
// Validate Title
|
79 |
}
|
80 |
|
81 |
// Validate Columns
|
82 |
+
$fields = isset($_REQUEST['form']['fields']) ? ninja_tables_sanitize_array($_REQUEST['form']['fields']) : array();
|
83 |
+
if (!$fields) {
|
84 |
$messages['fields'] = __('No fields were selected.', 'ninja-tables');
|
85 |
}
|
86 |
|
131 |
}
|
132 |
|
133 |
update_post_meta(
|
134 |
+
$tableId, '_ninja_tables_data_provider_ff_entry_limit', sanitize_text_field($_REQUEST['form']['entry_limit'])
|
135 |
);
|
136 |
|
137 |
update_post_meta(
|
138 |
+
$tableId, '_ninja_tables_data_provider_ff_entry_status', sanitize_text_field($_REQUEST['form']['entry_status'])
|
139 |
);
|
140 |
|
141 |
wp_send_json_success(array('table_id' => $tableId, 'form_id' => $formId));
|
@@ -6,7 +6,7 @@
|
|
6 |
<meta http-equiv="Imagetoolbar" content="No"/>
|
7 |
<meta name="viewport" content="width=device-width, initial-scale=1">
|
8 |
<title>
|
9 |
-
<?php
|
10 |
</title>
|
11 |
<?php
|
12 |
wp_head();
|
@@ -21,24 +21,24 @@
|
|
21 |
<div class="nt_preview_header_title">
|
22 |
<ul>
|
23 |
<li>
|
24 |
-
[ninja_tables id="<?php
|
25 |
</li>
|
26 |
</ul>
|
27 |
</div>
|
28 |
<div class="nt_preview_header_action">
|
29 |
-
<a href="<?php echo admin_url('admin.php?page=ninja_tables#/tables/' . $table_id) ?>">Edit</a>
|
30 |
</div>
|
31 |
</div>
|
32 |
|
33 |
<div class="nt_preview_body">
|
34 |
<div class="nt_preview_body_wrapper">
|
35 |
-
<?php echo
|
36 |
</div>
|
37 |
</div>
|
38 |
<div class="nt_preview_fotter">
|
39 |
<p class="nt_preview_fotter_text">You are seeing preview version of Ninja Tables. This table is only accessible for Admin users. Other users
|
40 |
may not access this page. To use this for in a page please use the following shortcode: [ninja_tables
|
41 |
-
id='<?php
|
42 |
</div>
|
43 |
</div>
|
44 |
<?php
|
6 |
<meta http-equiv="Imagetoolbar" content="No"/>
|
7 |
<meta name="viewport" content="width=device-width, initial-scale=1">
|
8 |
<title>
|
9 |
+
<?php esc_attr_e('Preview Table', 'ninja-tables') ?>
|
10 |
</title>
|
11 |
<?php
|
12 |
wp_head();
|
21 |
<div class="nt_preview_header_title">
|
22 |
<ul>
|
23 |
<li>
|
24 |
+
[ninja_tables id="<?php esc_attr_e($table_id); ?>"]
|
25 |
</li>
|
26 |
</ul>
|
27 |
</div>
|
28 |
<div class="nt_preview_header_action">
|
29 |
+
<a href="<?php echo esc_url_raw(admin_url('admin.php?page=ninja_tables#/tables/' . $table_id)) ?>">Edit</a>
|
30 |
</div>
|
31 |
</div>
|
32 |
|
33 |
<div class="nt_preview_body">
|
34 |
<div class="nt_preview_body_wrapper">
|
35 |
+
<?php echo(do_shortcode('[ninja_tables id="' . $table_id . '"]')); ?>
|
36 |
</div>
|
37 |
</div>
|
38 |
<div class="nt_preview_fotter">
|
39 |
<p class="nt_preview_fotter_text">You are seeing preview version of Ninja Tables. This table is only accessible for Admin users. Other users
|
40 |
may not access this page. To use this for in a page please use the following shortcode: [ninja_tables
|
41 |
+
id='<?php esc_attr_e($table_id) ?>']</p>
|
42 |
</div>
|
43 |
</div>
|
44 |
<?php
|
@@ -40,7 +40,7 @@ if ($table_rows && count($table_columns)):
|
|
40 |
$row_class = 'ninja_table_row_' . $row_index;
|
41 |
$row_class .= ' nt_row_id_' . $rowId;
|
42 |
?>
|
43 |
-
<tr data-row_id="<?php
|
44 |
<?php
|
45 |
$colSpanCounter = 1; // Make the colspan counter 1 at first
|
46 |
foreach ($table_columns as $index => $table_column) {
|
40 |
$row_class = 'ninja_table_row_' . $row_index;
|
41 |
$row_class .= ' nt_row_id_' . $rowId;
|
42 |
?>
|
43 |
+
<tr data-row_id="<?php esc_attr_e($rowId); ?>" class="<?php esc_attr_e($row_class); ?>">
|
44 |
<?php
|
45 |
$colSpanCounter = 1; // Make the colspan counter 1 at first
|
46 |
foreach ($table_columns as $index => $table_column) {
|
@@ -5,7 +5,7 @@ Tags: table builder, table plugin, wpdatatables, wordpress tables, table grid, c
|
|
5 |
Requires at least: 4.5
|
6 |
Requires PHP: 5.4 or greater
|
7 |
Tested up to: 5.9
|
8 |
-
Stable tag: 4.1.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -315,6 +315,9 @@ Yes, you can connect your Google spreadsheets to your WordPress table plugin by
|
|
315 |
|
316 |
== Changelog ==
|
317 |
|
|
|
|
|
|
|
318 |
=4.1.8 (Date: January 27, 2022) =
|
319 |
- Adds no follow option
|
320 |
- Adds font customization
|
5 |
Requires at least: 4.5
|
6 |
Requires PHP: 5.4 or greater
|
7 |
Tested up to: 5.9
|
8 |
+
Stable tag: 4.1.9
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
315 |
|
316 |
== Changelog ==
|
317 |
|
318 |
+
= 4.1.9 (Date: January 28, 2022) =
|
319 |
+
- Improves data sanitization
|
320 |
+
|
321 |
=4.1.8 (Date: January 27, 2022) =
|
322 |
- Adds no follow option
|
323 |
- Adds font customization
|