PluginProbe
TablePress – Tables in WordPress made easy / 2.3
TablePress – Tables in WordPress made easy v2.3
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 | classes/class-controller.php +33 -37 trunk2.3 View file →
@@ -21,15 +21,41 @@
21 21 */
22 22 abstract class TablePress_Controller {
23 23
24 24 /**
25 - * Initializes all controllers.
25 + * File name of the admin screens' parent page in the admin menu.
26 26 *
27 27 * @since 1.0.0
28 + * @var string
28 29 */
30 + public $parent_page = 'middle';
31 +
32 + /**
33 + * Whether TablePress admin screens are a top-level menu item in the admin menu.
34 + *
35 + * @since 1.0.0
36 + * @var bool
37 + */
38 + public $is_top_level_page = false;
39 +
40 + /**
41 + * Initialize all controllers, by loading Plugin and User Options, and by performing an update check.
42 + *
43 + * @since 1.0.0
44 + */
29 45 public function __construct() {
30 46 // Update check, in all controllers (frontend and admin), to make sure we always have up-to-date options, should be done very early.
31 47 $this->plugin_update_check();
48 +
49 + /**
50 + * Filters the admin menu parent page, which is needed for the construction of plugin URLs.
51 + *
52 + * @since 1.0.0
53 + *
54 + * @param string $parent_page Current admin menu parent page.
55 + */
56 + $this->parent_page = apply_filters( 'tablepress_admin_menu_parent_page', TablePress::$model_options->get( 'admin_menu_parent_page' ) );
57 + $this->is_top_level_page = in_array( $this->parent_page, array( 'top', 'middle', 'bottom' ), true );
32 58 }
33 59
34 60 /**
35 61 * Check if the plugin was updated and perform necessary actions, like updating the options.
@@ -65,11 +91,11 @@
65 91 'tablepress_version' => TablePress::version,
66 92 'message_plugin_update' => true,
67 93 );
68 94
69 - // If used, re-save "Custom CSS" to re-create all files (as TablePress Default CSS might have changed).
70 - $custom_css = TablePress::$model_options->get( 'custom_css' );
71 - if ( TablePress::$model_options->get( 'use_custom_css' ) && '' !== $custom_css ) {
95 + // Only write files, if "Custom CSS" is to be used, and if there is "Custom CSS".
96 + if ( TablePress::$model_options->get( 'use_custom_css' ) && '' !== TablePress::$model_options->get( 'custom_css' ) ) {
97 + // Re-save "Custom CSS" to re-create all files (as TablePress Default CSS might have changed).
72 98 /**
73 99 * Load WP file functions to provide filesystem access functions early.
74 100 */
75 101 require_once ABSPATH . 'wp-admin/includes/file.php';
@@ -77,25 +103,9 @@
77 103 * Load WP admin template functions to provide `submit_button()` which is necessary for `request_filesystem_credentials()`.
78 104 */
79 105 require_once ABSPATH . 'wp-admin/includes/template.php';
80 106 $tablepress_css = TablePress::load_class( 'TablePress_CSS', 'class-css.php', 'classes' );
81 -
82 - $custom_css_minified = TablePress::$model_options->get( 'custom_css_minified' );
83 -
84 - // Update "Custom CSS" to be compatible with DataTables 2, introduced in TablePress 3.0.
85 - if ( $current_plugin_options_db_version < 96 ) {
86 - $old_custom_css = $custom_css;
87 - $custom_css = TablePress::convert_datatables_api_data( $custom_css );
88 - if ( $old_custom_css !== $custom_css ) {
89 - $custom_css = $tablepress_css->sanitize_css( $custom_css );
90 - $custom_css_minified = $tablepress_css->minify_css( $custom_css );
91 - $updated_options['custom_css'] = $custom_css;
92 - $updated_options['custom_css_minified'] = $custom_css_minified;
93 - }
94 - unset( $old_custom_css );
95 - }
96 -
97 - $result = $tablepress_css->save_custom_css_to_file( $custom_css, $custom_css_minified );
107 + $result = $tablepress_css->save_custom_css_to_file( TablePress::$model_options->get( 'custom_css' ), TablePress::$model_options->get( 'custom_css_minified' ) );
98 108 // If saving was successful, use "Custom CSS" file.
99 109 $updated_options['use_custom_css_file'] = $result;
100 110 // Increase the "Custom CSS" version number for cache busting.
101 111 if ( $result ) {
@@ -107,22 +117,12 @@
107 117
108 118 // Clear table caches.
109 119 TablePress::$model_table->invalidate_table_output_caches();
110 120
111 - // Add mime type field to existing posts with the TablePress Custom Post Type, in TablePress 1.5.
121 + // Add mime type field to existing posts with the TablePress Custom Post Type, so that other plugins know that they are not dealing with plain text.
112 122 if ( $current_plugin_options_db_version < 25 ) {
113 123 TablePress::$model_table->add_mime_type_to_posts();
114 124 }
115 -
116 - // Add new access capabilities that were introduced in TablePress 2.3.2.
117 - if ( $current_plugin_options_db_version < 77 ) {
118 - TablePress::$model_options->add_access_capabilities_tp232();
119 - }
120 -
121 - // Update all tables' "Custom Commands" to be compatible with DataTables 2, introduced in TablePress 3.0.
122 - if ( $current_plugin_options_db_version < 96 ) {
123 - TablePress::$model_table->update_custom_commands_datatables_tp30();
124 - }
125 125 }
126 126 }
127 127
128 128 // Maybe update the table scheme in each existing table, independently from updating the plugin options.
@@ -136,13 +136,9 @@
136 136 * User Options are not saved in DB until first change occurs.
137 137 */
138 138 if ( is_user_logged_in() && TablePress::$model_options->get( 'user_options_db_version' ) < TablePress::db_version ) {
139 139 TablePress::$model_options->merge_user_options_defaults();
140 - $updated_options = array(
141 - 'user_options_db_version' => TablePress::db_version,
142 - 'message_superseded_extensions' => true,
143 - );
144 - TablePress::$model_options->update( $updated_options );
140 + TablePress::$model_options->update( 'user_options_db_version', TablePress::db_version );
145 141 }
146 142 }
147 143
148 144 } // class TablePress_Controller