PluginProbe
TablePress – Tables in WordPress made easy / 3.0
TablePress – Tables in WordPress made easy v3.0
3.3.4 3.3.3 3.3.2 3.3.1 trunk 1.12 1.14 1.9.2 2.0.4 2.1.7 2.1.8 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3 2.3.1 2.3.2 2.4 2.4.1 2.4.2 2.4.3 2.4.4 All 44 releases
← All changes | views/view-list.php +166 -13 2.3.23.0 View file →
@@ -24,11 +24,10 @@
24 24 /**
25 25 * Object for the All Tables List Table.
26 26 *
27 27 * @since 1.0.0
28 - * @var TablePress_All_Tables_List_Table
29 28 */
30 - protected $wp_list_table;
29 + protected \TablePress_All_Tables_List_Table $wp_list_table;
31 30
32 31 /**
33 32 * Set up the view with data and do things that are specific for this view.
34 33 *
@@ -39,15 +38,169 @@
39 38 */
40 39 #[\Override]
41 40 public function setup( /* string */ $action, array $data ) /* : void */ {
42 41 // Don't use type hints in the method declaration to prevent PHP errors, as the method is inherited.
42 +
43 43 parent::setup( $action, $data );
44 44
45 45 add_thickbox(); // For the table preview.
46 46 $this->admin_page->enqueue_script( 'list' );
47 47
48 + if ( $data['messages']['superseded_extensions'] ) {
49 + $superseded_extensions = array(
50 + 'tablepress-advanced-access-rights/tablepress-advanced-access-rights.php' => array(
51 + 'name' => 'TablePress Extension: Advanced Access Rights',
52 + 'compatible' => true,
53 + ),
54 + 'tablepress-auto-export-tables/tablepress-auto-export-tables.php' => array(
55 + 'name' => 'TablePress Extension: Automatic Table Export',
56 + 'compatible' => true,
57 + ),
58 + 'tablepress-cell-highlighting/tablepress-cell-highlighting.php' => array(
59 + 'name' => 'TablePress Extension: Cell Highlighting',
60 + 'compatible' => true,
61 + ),
62 + 'tablepress-datatables-alphabetsearch/tablepress-datatables-alphabetsearch.php' => array(
63 + 'name' => 'TablePress Extension: DataTables AlphabetSearch',
64 + 'compatible' => false,
65 + ),
66 + 'tablepress-datatables-buttons/tablepress-datatables-buttons.php' => array(
67 + 'name' => 'TablePress Extension: DataTables Buttons',
68 + 'compatible' => true,
69 + ),
70 + 'tablepress-datatables-column-filter-widgets/tablepress-datatables-column-filter-widgets.php' => array(
71 + 'name' => 'TablePress Extension: DataTables ColumnFilterWidgets',
72 + 'compatible' => false,
73 + ),
74 + 'tablepress-datatables-columnfilter/tablepress-datatables-columnfilter.php' => array(
75 + 'name' => 'TablePress Extension: DataTables Column Filter',
76 + 'compatible' => false,
77 + ),
78 + 'tablepress-datatables-counter-column/tablepress-datatables-counter-column.php' => array(
79 + 'name' => 'TablePress Extension: DataTables Counter Column',
80 + 'compatible' => true,
81 + ),
82 + 'tablepress-datatables-fixedcolumns/tablepress-datatables-fixedcolumns.php' => array(
83 + 'name' => 'TablePress Extension: DataTables FixedColumns',
84 + 'compatible' => false,
85 + ),
86 + 'tablepress-datatables-fixedheader/tablepress-datatables-fixedheader.php' => array(
87 + 'name' => 'TablePress Extension: DataTables FixedHeader',
88 + 'compatible' => true,
89 + ),
90 + 'tablepress-datatables-row-details/tablepress-datatables-row-details.php' => array(
91 + 'name' => 'TablePress Extension: DataTables Row Details',
92 + 'compatible' => false,
93 + ),
94 + 'tablepress-datatables-rowgroup/tablepress-datatables-rowgroup.php' => array(
95 + 'name' => 'TablePress Extension: DataTables RowGroup',
96 + 'compatible' => false,
97 + ),
98 + 'tablepress-responsive-tables/tablepress-responsive-tables.php' => array(
99 + 'name' => 'TablePress Extension: Responsive Tables',
100 + 'compatible' => false,
101 + ),
102 + 'tablepress-row-filter/tablepress-row-filter.php' => array(
103 + 'name' => 'TablePress Extension: Row Filtering',
104 + 'compatible' => true,
105 + ),
106 + 'tablepress-row-highlighting/tablepress-row-highlighting.php' => array(
107 + 'name' => 'TablePress Extension: Row Highlighting',
108 + 'compatible' => true,
109 + ),
110 + 'tablepress-table-auto-update/tablepress-table-auto-update.php' => array(
111 + 'name' => 'TablePress Extension: Table Auto Update',
112 + 'compatible' => true,
113 + ),
114 + 'tablepress-table-column-order/tablepress-table-column-order.php' => array(
115 + 'name' => 'TablePress Extension: Table Column Order',
116 + 'compatible' => true,
117 + ),
118 + );
119 +
120 + $active_compatible_superseded_extensions = array();
121 + $active_incompatible_superseded_extensions = array();
122 + foreach ( $superseded_extensions as $plugin => $extension ) {
123 + if ( is_plugin_active( $plugin ) ) {
124 + if ( $extension['compatible'] ) {
125 + $active_compatible_superseded_extensions[] = $extension['name'];
126 + } else {
127 + $active_incompatible_superseded_extensions[] = $extension['name'];
128 + }
129 + }
130 + }
131 +
132 + /*
133 + * If no superseded extensions are used, hide the message, to prevent running the checks on every load of the view.
134 + * This leaves a small risk of an Extension being activated later, but that's acceptable as they are no longer publicly available.
135 + */
136 + if ( empty( $active_incompatible_superseded_extensions ) && ( empty( $active_compatible_superseded_extensions ) || ! tb_tp_fs()->is_free_plan() ) ) {
137 + TablePress::$model_options->update( 'message_superseded_extensions', false );
138 + }
139 +
140 + $message = '';
141 +
142 + $notice_css_classes = 'not-dismissible';
143 +
144 + if ( ! empty( $active_incompatible_superseded_extensions ) ) {
145 + $notice_css_classes .= ' notice-error notice-large';
146 +
147 + $message .= '<p style="font-size:16px;">' . __( 'You are using <strong>TablePress Extension plugins</strong> on this website that have been retired more than 2 years ago.', 'tablepress' ) . '<br>' . __( 'For technical reasons, some or all features of these outdated plugins <strong>do no longer work with TablePress 3</strong>:', 'tablepress' ) . '</p>';
148 + $message .= '<ul style="list-style:disc;margin:0.5em 1em;font-size:16px;">';
149 + foreach ( $active_incompatible_superseded_extensions as $extension ) {
150 + $message .= '<li>' . esc_html( $extension ) . '</li>';
151 + }
152 + $message .= '</ul>';
153 + $message .= '<p style="font-size:16px;"><strong>' . __( 'Keeping them activated can lead to errors on your website.', 'tablepress' ) . '</strong></p>';
154 +
155 + if ( tb_tp_fs()->is_free_plan() ) {
156 + $message .= '<p style="font-size:16px;"><strong>' . sprintf( __( 'To continue using these features, <a href="%s">upgrade to a TablePress Premium license plan</a>!', 'tablepress' ), 'https://tablepress.org/upgrade-extensions/?utm_source=plugin&utm_medium=textlink&utm_content=superseded-extensions-message' ) . '</strong><br>'
157 + . __( 'TablePress Pro and TablePress Max come with updated and heavily improved versions of these features and include direct priority email support.', 'tablepress' ) . '</p>';
158 + }
159 +
160 + if ( ! empty( $active_compatible_superseded_extensions ) && tb_tp_fs()->is_free_plan() ) {
161 + $message .= '<p style="margin-top:1em;font-size:14px;">' . __( 'In addition, these TablePress Extension plugins have been retired and might become incompatible in the future as well:', 'tablepress' ) . '</strong></p>';
162 + $message .= '<ul style="list-style:disc;margin:0.5em 1em;font-size:14px;">';
163 + foreach ( $active_compatible_superseded_extensions as $extension ) {
164 + $message .= '<li>' . esc_html( $extension ) . '</li>';
165 + }
166 + $message .= '</ul>';
167 + }
168 + } elseif ( ! empty( $active_compatible_superseded_extensions ) && tb_tp_fs()->is_free_plan() ) {
169 + $notice_css_classes .= ' notice-warning notice-alt';
170 +
171 + $message .= '<p style="font-size:14px;"><strong>' . __( 'You are using TablePress Extension plugins on this website that have been retired and will no longer receive updates or support:', 'tablepress' ) . '</strong></p>';
172 + $message .= '<ul style="list-style:disc;margin:0.5em 1em;">';
173 + foreach ( $active_compatible_superseded_extensions as $extension ) {
174 + $message .= '<li>' . esc_html( $extension ) . '</li>';
175 + }
176 + $message .= '</ul>';
177 + $message .= '<p style="font-size:14px;"><strong>' . __( 'It is possible that these become incompatible with TablePress or WordPress in the future!', 'tablepress' ) . '</strong></p>';
178 + $message .= '<p style="margin-top:1em;font-size:14px;">' . sprintf( __( 'However, their features were heavily improved and are now part of the up-to-date <a href="%s">TablePress Premium versions</a>!', 'tablepress' ), 'https://tablepress.org/upgrade-extensions/?utm_source=plugin&utm_medium=textlink&utm_content=superseded-extensions-message' ) . '</p>';
179 + }
180 +
181 + if ( '' !== $message ) {
182 + if ( tb_tp_fs()->is_free_plan() ) {
183 + $message .= '<p style="font-size:16px;margin-top:1.5em;"><strong>' . __( 'Upgrade to a TablePress Premium license plan now and get:', 'tablepress' ) . '</strong></p>';
184 + $message .= '<ul style="list-style:disc;margin:0.5em 1em;font-size:16px;">';
185 + $message .= '<li>' . __( 'Updated and heavily improved versions of these features!', 'tablepress' ) . '</li>';
186 + $message .= '<li>' . __( 'Direct integration into the user interface!', 'tablepress' ) . '</li>';
187 + $message .= '<li>' . __( 'Regular updates that ensure compatibility with WordPress!', 'tablepress' ) . '</li>';
188 + $message .= '<li>' . __( 'Priority email support!', 'tablepress' ) . '</li>';
189 + $message .= '</ul>';
190 + $message .= '<p style="font-size:16px;"><strong>' . sprintf( __( 'And the best: %s', 'tablepress' ), sprintf( __( 'Use the promo code %1$s during the checkout process for a special offer!', 'tablepress' ), '<code>UPGRADE</code>' ) ) . '</strong></p>';
191 + $message .= '<p style="margin-top:2em;">' . sprintf( '<a href="%s" class="components-button is-primary" style="font-size:14px;margin-right:3em;background:linear-gradient(135deg,#00d184 0%%,#0791e3 100%%);border:none;font-weight:bold;">%s<span class="dashicons dashicons-arrow-right-alt" style="vertical-align:middle;margin:0 0 4px 4px"></span></a>', 'https://tablepress.org/upgrade-extensions/?utm_source=plugin&utm_medium=button&utm_content=superseded-extensions-message', __( 'Upgrade to a TablePress Premium version now!', 'tablepress' ) );
192 + }
193 + $message .= $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'superseded_extensions', 'return' => 'list' ), __( 'Hide this message', 'tablepress' ) ) . '</p>';
194 +
195 + $title = '<em>' . __( 'Important Notice!', 'tablepress' ) . '</em>';
196 +
197 + $this->add_header_message( $message, $notice_css_classes, $title );
198 + }
199 + }
200 +
48 201 if ( $data['messages']['first_visit'] ) {
49 - $message = '<p><strong style="font-size:14px;">' . __( 'Thank you for choosing TablePress, the most popular table plugin for WordPress!', 'tablepress' ) . '</strong></p>';
202 + $message = '<p style="font-size:14px;"><strong>' . __( 'Thank you for choosing TablePress, the most popular table plugin for WordPress!', 'tablepress' ) . '</strong></p>';
50 203 $message .= '<p>' . sprintf( __( 'If you encounter any questions or problems, please visit the <a href="%1$s">FAQ</a>, the <a href="%2$s">Documentation</a>, and the <a href="%3$s">Support</a> section on the <a href="%4$s">plugin website</a>.', 'tablepress' ), 'https://tablepress.org/faq/', 'https://tablepress.org/documentation/', 'https://tablepress.org/support/', 'https://tablepress.org/' ) . '</p>';
51 204
52 205 if ( tb_tp_fs()->is_free_plan() ) {
53 206 $message .= '<p style="font-size:14px;"><strong>' . sprintf( __( 'More great features for you and your site’s visitors and priority email support are available with a Premium license plan of TablePress. <a href="%s">Go check them out!</a>', 'tablepress' ), 'https://tablepress.org/premium/?utm_source=plugin&utm_medium=textlink&utm_content=first-visit-message' ) . '</strong></p>';
@@ -52,9 +205,9 @@
52 205 if ( tb_tp_fs()->is_free_plan() ) {
53 206 $message .= '<p style="font-size:14px;"><strong>' . sprintf( __( 'More great features for you and your site’s visitors and priority email support are available with a Premium license plan of TablePress. <a href="%s">Go check them out!</a>', 'tablepress' ), 'https://tablepress.org/premium/?utm_source=plugin&utm_medium=textlink&utm_content=first-visit-message' ) . '</strong></p>';
54 207 }
55 208
56 - $message .= '<p style="margin-top:14px;">' . $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'first_visit', 'return' => 'list' ), __( 'Hide this message', 'tablepress' ) ) . '</p>';
209 + $message .= '<p style="margin-top:1em;">' . $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'first_visit', 'return' => 'list' ), __( 'Hide this message', 'tablepress' ) ) . '</p>';
57 210
58 211 $title = '<em>' . __( 'Welcome!', 'tablepress' ) . '</em>';
59 212
60 213 $this->add_header_message( $message, 'notice-info not-dismissible', $title );
@@ -59,10 +212,10 @@
59 212
60 213 $this->add_header_message( $message, 'notice-info not-dismissible', $title );
61 214 }
62 215
63 - if ( $data['messages']['donation_message'] ) {
64 - $message = '<p style="font-size:14px;"><img alt="' . esc_attr__( 'Tobias Bäthge, developer of TablePress', 'tablepress' ) . '" src="https://secure.gravatar.com/avatar/50f1cff2e27a1f522b18ce229c057bc5?s=300" height="150" width="150" style="float:left;margin:2px 15px 30px 0;" />'
216 + if ( $data['messages']['donation_nag'] ) {
217 + $message = '<p style="font-size:14px;"><img alt="' . esc_attr__( 'Tobias Bäthge, developer of TablePress', 'tablepress' ) . '" src="https://secure.gravatar.com/avatar/50f1cff2e27a1f522b18ce229c057bc5?s=300" height="150" width="150" style="float:left;margin:2px 15px 30px 0;">'
65 218 . __( 'Hi, my name is Tobias, I&#8217;m the developer of the TablePress plugin.', 'tablepress' ) . '</p>';
66 219 $message .= '<p style="font-size:14px;">' . __( 'Thank you for using it!', 'tablepress' ) . ' ';
67 220 if ( $data['table_count'] > 0 ) {
68 221 $message .= sprintf( _n( 'I hope that everything works and that you are satisfied with the results of managing your %s table.', 'I hope that everything works and that you are satisfied with the results of managing your %s tables.', $data['table_count'], 'tablepress' ), $data['table_count'] );
@@ -69,12 +222,12 @@
69 222 } else {
70 223 $message .= sprintf( __( 'It looks like you haven’t added a table yet. If you need help to get started, please find more information in the FAQ and Documentation on the <a href="%s">TablePress website</a>.', 'tablepress' ), 'https://tablepress.org/' );
71 224 }
72 225 $message .= '</p>';
73 - $message .= '<p style="font-size:14px;"><strong>' . sprintf( __( 'I would like to invite you to check out the <a href="%s">Premium versions of TablePress</a>.', 'tablepress' ), 'https://tablepress.org/premium/?utm_source=plugin&utm_medium=textlink&utm_content=upgrade-message' ) . '<br />'
226 + $message .= '<p style="font-size:14px;"><strong>' . sprintf( __( 'I would like to invite you to check out the <a href="%s">Premium versions of TablePress</a>.', 'tablepress' ), 'https://tablepress.org/premium/?utm_source=plugin&utm_medium=textlink&utm_content=upgrade-message' ) . '<br>'
74 227 . __( 'The available Pro and Max plans offer user support and many exciting and helpful features for your tables.', 'tablepress' ) . '</strong></p>';
75 228 $message .= '<p style="font-size:14px;">' . __( 'Sincerely, Tobias', 'tablepress' ) . '</p>';
76 - $message .= '<p>' . sprintf( '<a href="%s" class="button button-primary" style="font-size:14px;margin-right:1em">%s<span class="dashicons dashicons-arrow-right-alt" style="vertical-align:middle;margin:0 0 4px 4px"></span></a>', 'https://tablepress.org/premium/?utm_source=plugin&utm_medium=textlink&utm_content=upgrade-message', __( 'Tell me more about the Premium features', 'tablepress' ) )
229 + $message .= '<p style="margin-top:1em;">' . sprintf( '<a href="%s" class="components-button is-primary" style="font-size:14px;margin-right:3em;">%s<span class="dashicons dashicons-arrow-right-alt" style="vertical-align:middle;margin:0 0 4px 4px"></span></a>', 'https://tablepress.org/premium/?utm_source=plugin&utm_medium=button&utm_content=upgrade-message', __( 'Tell me more about the Premium features', 'tablepress' ) )
77 230 . $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'donation_nag', 'return' => 'list' ), __( 'Hide this message', 'tablepress' ) ) . '</p>';
78 231
79 232 $title = '<em>' . __( 'TablePress has more to offer!', 'tablepress' ) . '</em>';
80 233
@@ -80,9 +233,9 @@
80 233
81 234 $this->add_header_message( $message, 'notice-success not-dismissible', $title );
82 235 }
83 236
84 - if ( $data['messages']['plugin_update_message'] ) {
237 + if ( $data['messages']['plugin_update'] ) {
85 238 $message = '<p>' . sprintf( __( 'To find out more about what’s new, please read the <a href="%s"><strong>release announcement</strong></a>.', 'tablepress' ), 'https://tablepress.org/news/?utm_source=plugin&utm_medium=textlink&utm_content=plugin-update-message' ) . '</p>';
86 239
87 240 if ( tb_tp_fs()->is_free_plan() ) {
88 241 $message .= '<p><strong>' . sprintf( __( 'More great features and priority email support are available with a Premium license plan. <a href="%s">Check them out!</a>', 'tablepress' ), 'https://tablepress.org/premium/?utm_source=plugin&utm_medium=textlink&utm_content=plugin-update-message' ) . '</strong></p>';
@@ -87,9 +240,9 @@
87 240 if ( tb_tp_fs()->is_free_plan() ) {
88 241 $message .= '<p><strong>' . sprintf( __( 'More great features and priority email support are available with a Premium license plan. <a href="%s">Check them out!</a>', 'tablepress' ), 'https://tablepress.org/premium/?utm_source=plugin&utm_medium=textlink&utm_content=plugin-update-message' ) . '</strong></p>';
89 242 }
90 243
91 - $message .= '<p style="margin-top:14px;">' . $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'plugin_update', 'return' => 'list' ), __( 'Hide this message', 'tablepress' ) ) . '</p>';
244 + $message .= '<p style="margin-top:1em;">' . $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'plugin_update', 'return' => 'list' ), __( 'Hide this message', 'tablepress' ) ) . '</p>';
92 245
93 246 $title = '<em>' . sprintf( __( 'Thank you for updating to TablePress %s!', 'tablepress' ), TablePress::version ) . '</em>';
94 247
95 248 $this->add_header_message( $message, 'notice-info not-dismissible', $title );
@@ -135,9 +288,9 @@
135 288 <?php
136 289 $this->print_nav_tab_menu();
137 290 ?>
138 291 <div id="tablepress-body">
139 - <hr class="wp-header-end" />
292 + <hr class="wp-header-end">
140 293 <?php
141 294 // Print all header messages.
142 295 foreach ( $this->header_messages as $message ) {
143 296 echo $message;
@@ -167,9 +320,9 @@
167 320 $this->do_meta_boxes( 'side' );
168 321 ?>
169 322 </div>
170 323 </div>
171 - <br class="clear" />
324 + <br class="clear">
172 325 </div>
173 326 </div>
174 327 </div>
175 328 <?php
@@ -213,9 +366,9 @@
213 366 ?>
214 367 <form method="get">
215 368 <?php
216 369 if ( isset( $_GET['page'] ) ) {
217 - echo '<input type="hidden" name="page" value="' . esc_attr( $_GET['page'] ) . '" />' . "\n";
370 + echo '<input type="hidden" name="page" value="' . esc_attr( $_GET['page'] ) . '">' . "\n";
218 371 }
219 372 $this->wp_list_table->search_box( __( 'Search Tables', 'tablepress' ), 'tables_search' );
220 373 ?>
221 374 </form>