PluginProbe
TablePress – Tables in WordPress made easy / 3.4
TablePress – Tables in WordPress made easy v3.4
3.4 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 All 45 releases
← All changes | views/view-about.php +123 -75 1.14 → 3.4 View file →
@@ -7,13 +7,16 @@
7 7 * @author Tobias Bäthge
8 8 * @since 1.0.0
9 9 */
10 10
11 +declare(strict_types=1);
12 +
11 13 // Prohibit direct script loading.
12 14 defined( 'ABSPATH' ) || die( 'No direct script access allowed!' );
13 15
14 16 /**
15 17 * About TablePress View class
18 + *
16 19 * @package TablePress
17 20 * @subpackage Views
18 21 * @author Tobias Bäthge
19 22 * @since 1.0.0
@@ -23,11 +26,10 @@
23 26 /**
24 27 * Number of screen columns for post boxes on this screen.
25 28 *
26 29 * @since 1.0.0
27 - * @var int
28 30 */
29 - protected $screen_columns = 2;
31 + protected int $screen_columns = 2;
30 32
31 33 /**
32 34 * Set up the view with data and do things that are specific for this view.
33 35 *
@@ -32,14 +34,21 @@
32 34 * Set up the view with data and do things that are specific for this view.
33 35 *
34 36 * @since 1.0.0
35 37 *
36 - * @param string $action Action for this view.
37 - * @param array $data Data for this view.
38 + * @param string $action Action for this view.
39 + * @param array<string, mixed> $data Data for this view.
38 40 */
39 - public function setup( $action, array $data ) {
41 + #[\Override]
42 + public function setup( /* string */ $action, array $data ) /* : void */ {
43 + // Don't use type hints in the method declaration to prevent PHP errors, as the method is inherited.
44 +
40 45 parent::setup( $action, $data );
41 46
47 + TablePress::enqueue_script( 'common', array( 'jquery-core', 'postbox' ) );
48 +
49 + $this->add_text_box( 'spacer', array( $this, 'textbox_spacer' ), 'normal' );
50 + $this->add_text_box( 'spacer', array( $this, 'textbox_spacer' ), 'side' );
42 51 $this->add_meta_box( 'plugin-purpose', __( 'Plugin Purpose', 'tablepress' ), array( $this, 'postbox_plugin_purpose' ), 'normal' );
43 52 $this->add_meta_box( 'usage', __( 'Usage', 'tablepress' ), array( $this, 'postbox_usage' ), 'normal' );
44 53 $this->add_meta_box( 'more-information', __( 'More Information and Documentation', 'tablepress' ), array( $this, 'postbox_more_information' ), 'normal' );
45 54 $this->add_meta_box( 'help-support', __( 'Help and Support', 'tablepress' ), array( $this, 'postbox_help_support' ), 'normal' );
@@ -48,22 +57,33 @@
48 57 $this->add_meta_box( 'debug-version-information', __( 'Debug and Version Information', 'tablepress' ), array( $this, 'postbox_debug_version_information' ), 'side' );
49 58 }
50 59
51 60 /**
61 + * Prints the screen head spacer.
62 + *
63 + * @since 2.0.0
64 + *
65 + * @param array<string, mixed> $data Data for this screen.
66 + * @param array<string, mixed> $box Information about the text box.
67 + */
68 + public function textbox_spacer( array $data, array $box ): void {
69 + echo '<p></p>';
70 + }
71 +
72 + /**
52 73 * Print the content of the "Plugin Purpose" post meta box.
53 74 *
54 75 * @since 1.0.0
55 76 *
56 - * @param array $data Data for this screen.
57 - * @param array $box Information about the meta box.
77 + * @param array<string, mixed> $data Data for this screen.
78 + * @param array<string, mixed> $box Information about the meta box.
58 79 */
59 - public function postbox_plugin_purpose( array $data, array $box ) {
80 + public function postbox_plugin_purpose( array $data, array $box ): void {
60 81 ?>
61 82 <p>
62 83 <?php _e( 'TablePress allows you to create and manage tables in the admin area of WordPress.', 'tablepress' ); ?>
63 - <?php _e( 'Tables may contain text, numbers, and even HTML (e.g. to include images or links).', 'tablepress' ); ?>
64 - <?php _e( 'You can then show the tables in your posts, on your pages, or in text widgets by using a Shortcode.', 'tablepress' ); ?>
65 - <?php _e( 'If you want to show your tables anywhere else in your theme, you can use a Template Tag function.', 'tablepress' ); ?>
84 + <?php _e( 'Tables may contain text, numbers, formulas, and even HTML code (e.g. to include images or links).', 'tablepress' ); ?>
85 + <?php _e( 'You can embed the tables into posts, pages, or other site areas using a block in the block editor, a widget in the Elementor page builder, or a Shortcode.', 'tablepress' ); ?>
66 86 </p>
67 87 <?php
68 88 }
69 89
@@ -71,12 +91,12 @@
71 91 * Print the content of the "Usage" post meta box.
72 92 *
73 93 * @since 1.0.0
74 94 *
75 - * @param array $data Data for this screen.
76 - * @param array $box Information about the meta box.
95 + * @param array<string, mixed> $data Data for this screen.
96 + * @param array<string, mixed> $box Information about the meta box.
77 97 */
78 - public function postbox_usage( array $data, array $box ) {
98 + public function postbox_usage( array $data, array $box ): void {
79 99 ?>
80 100 <p>
81 101 <?php _e( 'At first, you should add or import a table.', 'tablepress' ); ?>
82 102 <?php _e( 'This means that you either let the plugin create an empty table for you or that you load an existing table from either a CSV, HTML, JSON, XLS, or XLSX file.', 'tablepress' ); ?>
@@ -86,11 +106,20 @@
86 106 <?php _e( 'To easily add a link or an image to a cell, use the provided buttons.', 'tablepress' ); ?>
87 107 <?php _e( 'Those will ask you for the necessary information and corresponding HTML code will be added to the cell automatically.', 'tablepress' ); ?>
88 108 </p>
89 109 <p>
90 - <label class="screen-reader-text" for="table-shortcode-inline"><?php esc_html_e( 'Shortcode text for editor', 'tablepress' ); ?></label>
91 - <?php printf( __( 'To insert a table into a post or page, copy its Shortcode %s and paste it into a &#8220;Shortcode&#8221; block at the desired place in the block editor.', 'tablepress' ), '<label class="screen-reader-text" for="table-shortcode-inline">' . esc_html__( 'Shortcode text for editor', 'tablepress' ) . '</label>' . '<input type="text" class="table-shortcode table-shortcode-inline" id="table-shortcode-inline" value="' . esc_attr( '[' . TablePress::$shortcode . ' id=<ID> /]' ) . '" readonly="readonly" />' ); ?>
92 - <?php _e( 'Each table has a unique ID that needs to be adjusted in that Shortcode.', 'tablepress' ); ?>
110 + <?php
111 + // Show the instructions string depending on whether the Block Editor is used on the site or not.
112 + if ( 'block' === $data['site_used_editor'] ) {
113 + printf( __( 'To insert a table into a post or page, add a “%1$s” block in the block editor and select the desired table.', 'tablepress' ), __( 'TablePress table', 'tablepress' ) );
114 + } elseif ( 'elementor' === $data['site_used_editor'] ) {
115 + printf( __( 'To insert a table into a post or page, add a “%1$s” widget in the Elementor editor and select the desired table.', 'tablepress' ), __( 'TablePress table', 'tablepress' ) );
116 + } else {
117 + _e( 'To insert a table into a post or page, paste its Shortcode at the desired place in the editor.', 'tablepress' );
118 + echo ' ';
119 + _e( 'Each table has a unique ID that needs to be adjusted in that Shortcode.', 'tablepress' );
120 + }
121 + ?>
93 122 </p>
94 123 <p>
95 124 <?php _e( 'Tables can be styled by changing and adding CSS commands.', 'tablepress' ); ?>
96 125 <?php _e( 'The plugin ships with default CSS stylesheets, which can be customized with own code or replaced with other stylesheets.', 'tablepress' ); ?>
@@ -104,16 +133,17 @@
104 133 * Print the content of the "More Information and Documentation" post meta box.
105 134 *
106 135 * @since 1.0.0
107 136 *
108 - * @param array $data Data for this screen.
109 - * @param array $box Information about the meta box.
137 + * @param array<string, mixed> $data Data for this screen.
138 + * @param array<string, mixed> $box Information about the meta box.
110 139 */
111 - public function postbox_more_information( array $data, array $box ) {
140 + public function postbox_more_information( array $data, array $box ): void {
112 141 ?>
113 142 <p>
114 143 <?php printf( __( 'More information about TablePress can be found on the <a href="%1$s">plugin website</a> or on its page in the <a href="%2$s">WordPress Plugin Directory</a>.', 'tablepress' ), 'https://tablepress.org/', 'https://wordpress.org/plugins/tablepress/' ); ?>
115 144 <?php printf( __( 'For technical information, please see the <a href="%s">Documentation</a>.', 'tablepress' ), 'https://tablepress.org/documentation/' ); ?>
145 + <?php printf( __( 'Common questions are answered in the <a href="%s">FAQ</a>.', 'tablepress' ), 'https://tablepress.org/faq/' ); ?>
116 146 </p>
117 147 <?php
118 148 }
119 149
@@ -121,23 +151,34 @@
121 151 * Print the content of the "Author and License" post meta box.
122 152 *
123 153 * @since 1.0.0
124 154 *
125 - * @param array $data Data for this screen.
126 - * @param array $box Information about the meta box.
155 + * @param array<string, mixed> $data Data for this screen.
156 + * @param array<string, mixed> $box Information about the meta box.
127 157 */
128 - public function postbox_author_license( array $data, array $box ) {
158 + public function postbox_author_license( array $data, array $box ): void {
129 159 ?>
130 160 <p>
131 - <?php printf( __( 'This plugin was written and developed by <a href="%s">Tobias Bäthge</a>.', 'tablepress' ), 'https://tobias.baethge.com/' ); ?>
161 + <?php
162 + /* translators: %s: Author's website URL */
163 + printf( __( 'This plugin was written and developed by <a href="%s">Tobias Bäthge</a>.', 'tablepress' ), 'https://tobias.baethge.com/' );
164 + ?>
132 165 <?php _e( 'It is licensed as Free Software under GNU General Public License 2 (GPL 2).', 'tablepress' ); ?>
133 - <br />
134 - <?php printf( __( 'If you like the plugin, <a href="%s"><strong>giving a donation</strong></a> is recommended.', 'tablepress' ), 'https://tablepress.org/donate/' ); ?>
135 - <?php printf( __( 'Please rate and review the plugin in the <a href="%s">WordPress Plugin Directory</a>.', 'tablepress' ), 'https://wordpress.org/support/view/plugin-reviews/tablepress' ); ?>
136 - <br />
137 - <?php _e( 'Donations and good ratings encourage me to further develop the plugin and to provide countless hours of support. Any amount is appreciated! Thanks!', 'tablepress' ); ?>
138 166 </p>
167 + <p>
139 168 <?php
169 + /* translators: %s: WordPress Plugin Directory URL */
170 + printf( __( 'Please rate and review the plugin in the <a href="%s">WordPress Plugin Directory</a>.', 'tablepress' ), 'https://wordpress.org/support/view/plugin-reviews/tablepress' );
171 + ?>
172 + </p>
173 + <?php
174 + if ( tb_tp_fs()->is_free_plan() ) {
175 + /* translators: %s: TablePress Premium website URL */
176 + echo '<p><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=about-screen' ) . ' '
177 + . __( 'The available Pro and Max plans offer user support and many exciting and helpful features for your tables.', 'tablepress' ) . '</strong></p>';
178 + }
179 + ?>
180 + <?php
140 181 }
141 182
142 183 /**
143 184 * Print the content of the "Help and Support" post meta box.
@@ -143,21 +184,27 @@
143 184 * Print the content of the "Help and Support" post meta box.
144 185 *
145 186 * @since 1.0.0
146 187 *
147 - * @param array $data Data for this screen.
148 - * @param array $box Information about the meta box.
188 + * @param array<string, mixed> $data Data for this screen.
189 + * @param array<string, mixed> $box Information about the meta box.
149 190 */
150 - public function postbox_help_support( array $data, array $box ) {
151 - ?>
152 - <p>
153 - <?php printf( __( '<a href="%1$s">Support</a> is provided through the <a href="%2$s">WordPress Support Forums</a>.', 'tablepress' ), 'https://tablepress.org/support/', 'https://wordpress.org/support/plugin/tablepress' ); ?>
154 - <?php printf( __( 'Before asking for support, please carefully read the <a href="%s">Frequently Asked Questions</a>, where you will find answers to the most common questions, and search through the forums.', 'tablepress' ), 'https://tablepress.org/faq/' ); ?>
155 - </p>
156 - <p>
157 - <?php printf( __( 'If you do not find an answer there, please <a href="%s">open a new thread</a> in the WordPress Support Forums.', 'tablepress' ), 'https://wordpress.org/support/plugin/tablepress' ); ?>
158 - </p>
159 - <?php
191 + public function postbox_help_support( array $data, array $box ): void {
192 + if ( tb_tp_fs()->is_free_plan() ) {
193 + ?>
194 + <h4><?php _e( 'Premium Support', 'tablepress' ); ?></h4>
195 + <p>
196 + <?php _e( 'Users with a valid TablePress Premium license plan are eligible for Priority Email Support, directly from the plugin developer!', 'tablepress' ); ?>
197 + <strong><?php printf( __( '<a href="%s">Find out more!</a>', 'tablepress' ), 'https://tablepress.org/premium/?utm_source=plugin&utm_medium=textlink&utm_content=about-screen' ); ?></strong>
198 + </p>
199 + <h4><?php _e( 'Community Support for users of the Free version', 'tablepress' ); ?></h4>
200 + <p>
201 + <?php printf( __( '<a href="%1$s">Support</a> is provided through the <a href="%2$s">WordPress Support Forums</a>.', 'tablepress' ), 'https://tablepress.org/support/', 'https://wordpress.org/support/plugin/tablepress' ); ?>
202 + <?php printf( __( 'Before asking for support, please carefully read the <a href="%s">Frequently Asked Questions</a>, where you will find answers to the most common questions, and search through the forums.', 'tablepress' ), 'https://tablepress.org/faq/' ); ?>
203 + <?php printf( __( 'If you do not find an answer there, please <a href="%s">open a new thread</a> in the WordPress Support Forums.', 'tablepress' ), 'https://wordpress.org/support/plugin/tablepress' ); ?>
204 + </p>
205 + <?php
206 + }
160 207 }
161 208
162 209 /**
163 210 * Print the content of the "Debug and Version Information" post meta box.
@@ -163,36 +210,40 @@
163 210 * Print the content of the "Debug and Version Information" post meta box.
164 211 *
165 212 * @since 1.0.0
166 213 *
167 - * @param array $data Data for this screen.
168 - * @param array $box Information about the meta box.
214 + * @param array<string, mixed> $data Data for this screen.
215 + * @param array<string, mixed> $box Information about the meta box.
169 216 */
170 - public function postbox_debug_version_information( array $data, array $box ) {
171 - $mysqli = ( isset( $GLOBALS['wpdb']->use_mysqli, $GLOBALS['wpdb']->dbh ) && $GLOBALS['wpdb']->use_mysqli );
217 + public function postbox_debug_version_information( array $data, array $box ): void {
172 218 ?>
173 219 <p>
174 220 <strong><?php _e( 'Please provide this information in bug reports and support requests.', 'tablepress' ); ?></strong>
175 221 </p>
176 - <p class="ltr">
177 - &middot; Website: <?php echo site_url(); ?>
178 - <br />&middot; TablePress: <?php echo TablePress::version; ?>
179 - <br />&middot; TablePress (DB): <?php echo TablePress::db_version; ?>
180 - <br />&middot; TablePress table scheme: <?php echo TablePress::table_scheme_version; ?>
181 - <br />&middot; Plugin installed: <?php echo wp_date( 'Y/m/d H:i:s', $data['first_activation'] ); ?>
182 - <br />&middot; WordPress: <?php echo $GLOBALS['wp_version']; ?>
183 - <br />&middot; Multisite: <?php echo is_multisite() ? 'yes' : 'no'; ?>
184 - <br />&middot; PHP: <?php echo phpversion(); ?>
185 - <br />&middot; mysqli Extension: <?php echo $mysqli ? 'true' : 'false'; ?>
186 - <br />&middot; mySQL (Server): <?php echo $mysqli ? mysqli_get_server_info( $GLOBALS['wpdb']->dbh ) : '<em>no mysqli</em>'; // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_server_info ?>
187 - <br />&middot; mySQL (Client): <?php echo $mysqli ? mysqli_get_client_info( $GLOBALS['wpdb']->dbh ) : '<em>no mysqli</em>'; // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_client_info ?>
188 - <br />&middot; ZIP support: <?php echo $data['zip_support_available'] ? 'yes' : 'no'; ?>
189 - <br />&middot; UTF-8 conversion: <?php echo ( function_exists( 'mb_detect_encoding' ) && function_exists( 'iconv' ) ) ? 'yes' : 'no'; ?>
190 - <br />&middot; WP Memory Limit: <?php echo WP_MEMORY_LIMIT; ?>
191 - <br />&middot; Server Memory Limit: <?php echo (int) @ini_get( 'memory_limit' ) . 'M'; // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged ?>
192 - <br />&middot; WP_DEBUG: <?php echo WP_DEBUG ? 'true' : 'false'; ?>
193 - <br />&middot; WP_POST_REVISIONS: <?php echo is_bool( WP_POST_REVISIONS ) ? ( WP_POST_REVISIONS ? 'true' : 'false' ) : WP_POST_REVISIONS; ?>
194 - </p>
222 + <ul>
223 + <li>Website: <?php echo site_url(); ?></li>
224 + <li>Block Theme: <?php echo wp_is_block_theme() ? 'yes' : 'no'; ?></li>
225 + <li>TablePress: <?php echo TablePress::version; ?></li>
226 + <li>TablePress (DB): <?php echo TablePress::db_version; ?></li>
227 + <li>TablePress table scheme: <?php echo TablePress::table_scheme_version; ?></li>
228 + <li>Plan: Free</li>
229 + <li>Plugin installed: <?php echo wp_date( 'Y/m/d H:i:s', $data['first_activation'] ); ?></li>
230 + <li>WordPress: <?php echo wp_get_wp_version(); ?></li>
231 + <li>Multisite: <?php echo is_multisite() ? 'yes' : 'no'; ?></li>
232 + <li>PHP: <?php echo PHP_VERSION; ?></li>
233 + <li>mySQL (Server): <?php echo ( isset( $GLOBALS['wpdb']->dbh ) && 'mysqli' === get_class( $GLOBALS['wpdb']->dbh ) && function_exists( 'mysqli_get_server_info' ) ) ? mysqli_get_server_info( $GLOBALS['wpdb']->dbh ) : 'no mySQL server'; // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_server_info ?></li>
234 + <li>mySQL (Client): <?php echo function_exists( 'mysqli_get_client_info' ) ? mysqli_get_client_info() : 'no mySQL client'; // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_client_info ?></li>
235 + <li>mbstring: <?php echo extension_loaded( 'mbstring' ) ? 'yes' : '<span style="color:#800000;font-weight:bold;">no</span>'; ?></li>
236 + <li>ZipArchive: <?php echo class_exists( 'ZipArchive', false ) ? 'yes' : '<span style="color:#800000;font-weight:bold;">no</span>'; ?></li>
237 + <li>DOMDocument: <?php echo class_exists( 'DOMDocument', false ) ? 'yes' : '<span style="color:#800000;font-weight:bold;">no</span>'; ?></li>
238 + <li>simplexml_load_string: <?php echo function_exists( 'simplexml_load_string' ) ? 'yes' : '<span style="color:#800000;font-weight:bold;">no</span>'; ?></li>
239 + <li>libxml_disable_entity_loader: <?php echo function_exists( 'libxml_disable_entity_loader' ) ? 'yes' : '<span style="color:#800000;font-weight:bold;">no</span>'; ?></li>
240 + <li>UTF-8 conversion: <?php echo ( function_exists( 'mb_detect_encoding' ) && function_exists( 'iconv' ) ) ? 'yes' : '<span style="color:#800000;font-weight:bold;">no</span>'; ?></li>
241 + <li>WP Memory Limit: <?php echo WP_MEMORY_LIMIT; ?></li>
242 + <li>Server Memory Limit: <?php echo esc_html( @ini_get( 'memory_limit' ) ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged ?></li>
243 + <li>WP_DEBUG: <?php echo WP_DEBUG ? 'true' : 'false'; ?></li>
244 + <li>WP_POST_REVISIONS: <?php echo is_bool( WP_POST_REVISIONS ) ? ( WP_POST_REVISIONS ? 'true' : 'false' ) : WP_POST_REVISIONS; // @phpstan-ignore constant.notFound, phpstanWP.wpConstant.fetch, phpstanWP.wpConstant.fetch, phpstanWP.wpConstant.fetch (The constant is printed for debugging purposes.) ?></li>
245 + </ul>
195 246 <?php
196 247 }
197 248
198 249 /**
@@ -199,24 +250,21 @@
199 250 * Print the content of the "Credits and Thanks" post meta box.
200 251 *
201 252 * @since 1.0.0
202 253 *
203 - * @param array $data Data for this screen.
204 - * @param array $box Information about the meta box.
254 + * @param array<string, mixed> $data Data for this screen.
255 + * @param array<string, mixed> $box Information about the meta box.
205 256 */
206 - public function postbox_credits_thanks( array $data, array $box ) {
257 + public function postbox_credits_thanks( array $data, array $box ): void {
207 258 ?>
208 259 <p>
209 260 <?php _e( 'Special Thanks go to:', 'tablepress' ); ?>
210 - <br />&middot; <?php printf( __( 'Allan Jardine for <a href="%s">DataTables</a>,', 'tablepress' ), 'https://www.datatables.net/' ); ?>
211 - <br />&middot; <?php printf( __( 'the translators in the <a href="%s">Plugin Directory</a>,', 'tablepress' ), 'https://translate.wordpress.org/projects/wp-plugins/tablepress/' ); ?>
212 - <br />&middot; <?php _e( 'all donors, contributors, supporters, reviewers, and users of the plugin!', 'tablepress' ); ?>
213 261 </p>
214 - <hr />
215 - <p>
216 - <a href="https://wpactivitylog.com/?utm_source=tablepress&utm_medium=referral&utm_campaign=WSAL" target="_blank" rel="noopener"><img src="<?php echo plugins_url( 'admin/img/wsal-logo.png', TABLEPRESS__FILE__ ); ?>" alt="<?php printf( esc_attr_x( 'This release of TablePress is supported by %s, the most comprehensive WordPress activity logs plugin.', 'WP Activity Log', 'tablepress' ), 'WP Activity Log' ); ?>" style="width:100%;height:auto;max-width:320px;display:block;margin:0 auto" /></a>
217 - <?php printf( _x( 'This release of TablePress is supported by %s, the most comprehensive WordPress activity logs plugin.', 'WP Activity Log', 'tablepress' ), '<a href="https://wpactivitylog.com/?utm_source=tablepress&utm_medium=referral&utm_campaign=WSAL" target="_blank" rel="noopener">WP Activity Log</a>' ); ?>
218 - </p>
262 + <ul>
263 + <li><?php printf( __( 'Allan Jardine for <a href="%s">DataTables</a>,', 'tablepress' ), 'https://datatables.net/' ); ?></li>
264 + <li><?php printf( __( 'the translators in the <a href="%s">Plugin Directory</a>,', 'tablepress' ), 'https://translate.wordpress.org/projects/wp-plugins/tablepress/' ); ?></li>
265 + <li><?php _e( 'all customers, donors, contributors, supporters, reviewers, and users of the plugin!', 'tablepress' ); ?></li>
266 + </ul>
219 267 <?php
220 268 }
221 269
222 270 } // class TablePress_About_View