Пример #1
0
 /**
  * Set up the view with data and do things that are specific for this view
  *
  * @since 1.0.0
  *
  * @param string $action Action for this view
  * @param array $data Data for this view
  */
 public function setup($action, $data)
 {
     parent::setup($action, $data);
     add_thickbox();
     $this->admin_page->enqueue_script('list', array('jquery'), array('list' => array('shortcode_popup' => __('To embed this table into a post or page, use this Shortcode:', 'tablepress'), 'donation-message-already-donated' => __('Thank you very much! Your donation is highly appreciated. You just contributed to the further development of TablePress!', 'tablepress'), 'donation-message-maybe-later' => sprintf(__('No problem! I still hope you enjoy the benefits that TablePress adds to your site. If you should change your mind, you\'ll always find the &#8220;Donate&#8221; button on the <a href="%s">TablePress website</a>.', 'tablepress'), 'http://tablepress.org/'))));
     if ($data['messages']['first_visit']) {
         $this->add_header_message('<strong><em>' . __('Welcome!', 'tablepress') . '</em></strong><br />' . __('Thank you for using TablePress for the first time!', 'tablepress') . ' ' . 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'), 'http://tablepress.org/faq/', 'http://tablepress.org/documentation/', 'http://tablepress.org/support/', 'http://tablepress.org/') . '<br /><br />' . $this->ajax_link(array('action' => 'hide_message', 'item' => 'first_visit', 'return' => 'list'), __('Hide this message', 'tablepress')));
     }
     if ($data['messages']['wp_table_reloaded_warning']) {
         $this->add_header_message('<strong><em>' . __('Attention!', 'tablepress') . '</em></strong><br />' . __('You have activated the plugin WP-Table Reloaded, which can not be used together with TablePress.', 'tablepress') . '<br />' . __('It is strongly recommended that you switch from WP-Table Reloaded to TablePress, which not only fixes many problems, but also has more and better features than WP-Table Reloaded.', 'tablepress') . '<br />' . sprintf(__('Please follow the <a href="%s">migration guide</a> to move your tables and then deactivate WP-Table Reloaded!', 'tablepress'), 'http://tablepress.org/migration-from-wp-table-reloaded/') . '<br />' . '<a href="' . TablePress::url(array('action' => 'import')) . '" class="button button-primary button-large" title="' . __('Import your tables from WP-Table Reloaded', 'tablepress') . '" style="color:#ffffff;margin-top:5px;">' . __('Import your tables from WP-Table Reloaded', 'tablepress') . '</a>', 'error');
     }
     if ($data['messages']['donation_message']) {
         $this->add_header_message('<img alt="' . __('Tobias Bäthge, developer of TablePress', 'tablepress') . '" src="https://secure.gravatar.com/avatar/50f1cff2e27a1f522b18ce229c057bc5?s=94" height="94" width="94" style="float:left;margin-right:10px;" />' . __('Hi, my name is Tobias, I\'m the developer of the TablePress plugin.', 'tablepress') . '<br /><br />' . __('Thanks for using it! You\'ve installed TablePress over a month ago.', 'tablepress') . ' ' . sprintf(_n('If everything works and you are satisfied with the results of managing your %s table, isn\'t that worth a coffee or two?', 'If everything works and you are satisfied with the results of managing your %s tables, isn\'t that worth a coffee or two?', $data['table_count'], 'tablepress'), $data['table_count']) . '<br/>' . sprintf(__('<a href="%s">Donations</a> help me to continue user support and development of this <em>free</em> software &mdash; things for which I spend countless hours of my free time! Thank you very much!', 'tablepress'), 'http://tablepress.org/donate/') . '<br/><br />' . __('Sincerly, Tobias', 'tablepress') . '<br /><br />' . sprintf('<a href="%s" target="_blank"><strong>%s</strong></a>', 'http://tablepress.org/donate/', __('Sure, I\'ll buy you a coffee and support TablePress!', 'tablepress')) . '&nbsp;&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;&nbsp;&nbsp;' . $this->ajax_link(array('action' => 'hide_message', 'item' => 'donation_nag', 'return' => 'list', 'target' => 'already-donated'), __('I already donated.', 'tablepress')) . '&nbsp;&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;&nbsp;&nbsp;' . $this->ajax_link(array('action' => 'hide_message', 'item' => 'donation_nag', 'return' => 'list', 'target' => 'maybe-later'), __('No, thanks. Don\'t ask again.', 'tablepress')));
     }
     if ($data['messages']['show_plugin_update']) {
         $message = '<strong><em>' . sprintf(__('Thank you for updating to TablePress %s!', 'tablepress'), TablePress::version) . '</em></strong><br />';
         if (!empty($data['messages']['plugin_update_message'])) {
             $message .= $data['messages']['plugin_update_message'] . '<br />';
         }
         $message .= sprintf(__('Please read the <a href="%s">release announcement</a> for more information.', 'tablepress'), 'http://tablepress.org/news/') . ' ' . sprintf(__('If you like the new features and enhancements, <a href="%s">giving a donation</a> towards the further support and development of TablePress is recommended. Thank you!', 'tablepress'), 'http://tablepress.org/donate/') . '<br /><br />';
         $message .= $this->ajax_link(array('action' => 'hide_message', 'item' => 'plugin_update', 'return' => 'list'), __('Hide this message', 'tablepress'));
         $this->add_header_message($message);
     }
     $this->process_action_messages(array('success_delete' => _n('The table was deleted successfully.', 'The tables were deleted successfully.', 1, 'tablepress'), 'success_delete_plural' => _n('The table was deleted successfully.', 'The tables were deleted successfully.', 2, 'tablepress'), 'error_delete' => __('Error: The table could not be deleted.', 'tablepress'), 'error_save' => __('Error: The table could not be saved.', 'tablepress'), 'success_copy' => _n('The table was copied successfully.', 'The tables were copied successfully.', 1, 'tablepress'), 'success_copy_plural' => _n('The table was copied successfully.', 'The tables were copied successfully.', 2, 'tablepress'), 'error_copy' => __('Error: The table could not be copied.', 'tablepress'), 'error_no_table' => __('Error: You did not specify a valid table ID.', 'tablepress'), 'error_load_table' => __('Error: This table could not be loaded!', 'tablepress'), 'error_bulk_action_invalid' => __('Error: This bulk action is invalid!', 'tablepress'), 'error_no_selection' => __('Error: You did not select any tables!', 'tablepress'), 'error_delete_not_all_tables' => __('Notice: Not all selected tables could be deleted!', 'tablepress'), 'error_copy_not_all_tables' => __('Notice: Not all selected tables could be copied!', 'tablepress'), 'success_import' => __('The tables were imported successfully.', 'tablepress'), 'success_import_wp_table_reloaded' => __('The tables were imported successfully from WP-Table Reloaded.', 'tablepress')));
     $this->add_text_box('head', array($this, 'textbox_head'), 'normal');
     $this->add_text_box('tables-list', array($this, 'textbox_tables_list'), 'normal');
     add_screen_option('per_page', array('label' => __('Tables', 'tablepress'), 'default' => 20));
     // Admin_Controller contains function to allow changes to this in the Screen Options to be saved
     $this->wp_list_table = new TablePress_All_Tables_List_Table();
     $this->wp_list_table->set_items($this->data['tables']);
     $this->wp_list_table->prepare_items();
     // cleanup Request URI string, which WP_List_Table uses to generate the sort URLs
     $_SERVER['REQUEST_URI'] = remove_query_arg(array('message', 'table_id'), $_SERVER['REQUEST_URI']);
 }
 /**
  * Set up the view with data and do things that are specific for this view.
  *
  * @param string $action Action for this view.
  * @param array $data Data for this view.
  */
 public function setup($action, array $data)
 {
     $params = array('option_name' => 'tablepress_stockflock_config', 'default_value' => array());
     $this->stockflock_config = TablePress::load_class('TablePress_WP_Option', 'class-wp_option.php', 'classes', $params);
     parent::setup($action, $data);
     $this->add_header_message('<span>' . __('Please contact stockflock if you get any issue with this plugin.', 'tablepress') . '</span>', 'notice-info');
     $this->process_action_messages(array('success_save' => __('Stockflock Changes saved successfully.', 'tablepress'), 'error_save' => __('Error: Stockflock Changes could not be saved.', 'tablepress')));
     $this->add_meta_box('stockflock-options', __('Stockflock Options', 'tablepress'), array($this, 'stockflock_plugin_options'), 'normal');
     $this->add_text_box('submit', array($this, 'textbox_submit_button'), 'submit');
 }
Пример #3
0
 /**
  * Set up the view with data and do things that are specific for this view.
  *
  * @since 1.0.0
  *
  * @param string $action Action for this view.
  * @param array  $data   Data for this view.
  */
 public function setup($action, array $data)
 {
     parent::setup($action, $data);
     $this->admin_page->enqueue_script('add', array('jquery-core'));
     $this->process_action_messages(array('error_add' => __('Error: The table could not be added.', 'tablepress')));
     $this->add_text_box('head', array($this, 'textbox_head'), 'normal');
     $this->add_meta_box('add-table', __('Add New Table', 'tablepress'), array($this, 'postbox_add_table'), 'normal');
     $this->data['submit_button_caption'] = __('Add Table', 'tablepress');
     $this->add_text_box('submit', array($this, 'textbox_submit_button'), 'submit');
 }
Пример #4
0
 /**
  * Set up the view with data and do things that are specific for this view.
  *
  * @since 1.0.0
  *
  * @param string $action Action for this view.
  * @param array  $data   Data for this view.
  */
 public function setup($action, array $data)
 {
     parent::setup($action, $data);
     $this->add_meta_box('plugin-purpose', __('Plugin Purpose', 'tablepress'), array($this, 'postbox_plugin_purpose'), 'normal');
     $this->add_meta_box('usage', __('Usage', 'tablepress'), array($this, 'postbox_usage'), 'normal');
     $this->add_meta_box('more-information', __('More Information and Documentation', 'tablepress'), array($this, 'postbox_more_information'), 'normal');
     $this->add_meta_box('help-support', __('Help and Support', 'tablepress'), array($this, 'postbox_help_support'), 'normal');
     $this->add_meta_box('author-license', __('Author and License', 'tablepress'), array($this, 'postbox_author_license'), 'side');
     $this->add_meta_box('credits-thanks', __('Credits and Thanks', 'tablepress'), array($this, 'postbox_credits_thanks'), 'side');
     $this->add_meta_box('debug-version-information', __('Debug and Version Information', 'tablepress'), array($this, 'postbox_debug_version_information'), 'side');
 }
Пример #5
0
 /**
  * Set up the view with data and do things that are specific for this view
  *
  * @since 1.0.0
  *
  * @param string $action Action for this view
  * @param array $data Data for this view
  */
 public function setup($action, $data)
 {
     parent::setup($action, $data);
     $this->admin_page->enqueue_script('import', array('jquery'), array('import' => array('error_wp_table_reloaded_nothing_selected' => __('Error: You did not select what to import from WP-Table Reloaded!', 'tablepress'))));
     $this->process_action_messages(array('error_import' => __('Error: The import failed.', 'tablepress'), 'error_no_zip_import' => __('Error: Import of ZIP files is not available on this server.', 'tablepress'), 'error_import_zip_open' => __('Error: The ZIP file could not be opened.', 'tablepress'), 'error_import_zip_content' => __('Error: The data in the ZIP file is invalid.', 'tablepress'), 'error_import_no_replace_id' => __('Error: You selected to replace an existing table, but did not select a table.', 'tablepress'), 'error_import_source_invalid' => __('Error: The source for the import is invalid or could not be accessed.', 'tablepress'), 'error_import_data' => __('Error: The data for the import is invalid.', 'tablepress'), 'error_wp_table_reloaded_nothing_selected' => __('Error: You did not select what to import from WP-Table Reloaded!', 'tablepress'), 'error_wp_table_reloaded_not_installed' => __('Error: Existing WP-Table Reloaded tables were not found in the database.', 'tablepress'), 'error_import_wp_table_reloaded' => __('Error: The tables from WP-Table Reloaded could not be imported.', 'tablepress'), 'error_wp_table_reloaded_dump_file' => __('Error: The WP-Table Reloaded Dump File could not be imported!', 'tablepress')));
     $this->add_text_box('head', array($this, 'textbox_head'), 'normal');
     $this->add_meta_box('import-form', __('Import Tables', 'tablepress'), array($this, 'postbox_import_form'), 'normal');
     if (current_user_can('tablepress_import_tables_wptr')) {
         $this->add_meta_box('import-wp-table-reloaded', __('Import from WP-Table Reloaded', 'tablepress'), array($this, 'postbox_wp_table_reloaded_import'), 'additional');
     }
 }
 /**
  * Show a list of tables in the Editor toolbar Thickbox (opened by TinyMCE or Quicktags button).
  *
  * @since 1.0.0
  */
 public function handle_get_action_editor_button_thickbox()
 {
     TablePress::check_nonce('editor_button_thickbox');
     if (!current_user_can('tablepress_list_tables')) {
         wp_die(__('You do not have sufficient permissions to access this page.', 'default'), 403);
     }
     $this->init_i18n_support();
     $view_data = array('table_ids' => TablePress::$model_table->load_all(false));
     set_current_screen('tablepress_editor_button_thickbox');
     // Prepare, initialize, and render the view.
     $this->view = TablePress::load_view('editor_button_thickbox', $view_data);
     $this->view->render();
 }
Пример #7
0
 /**
  * Set up the view with data and do things that are specific for this view.
  *
  * @since 1.0.0
  *
  * @param string $action Action for this view.
  * @param array  $data   Data for this view.
  */
 public function setup($action, array $data)
 {
     parent::setup($action, $data);
     $this->process_action_messages(array('error_export' => __('Error: The export failed.', 'tablepress'), 'error_load_table' => __('Error: This table could not be loaded!', 'tablepress'), 'error_table_corrupted' => __('Error: The internal data of this table is corrupted!', 'tablepress'), 'error_create_zip_file' => __('Error: The ZIP file could not be created.', 'tablepress')));
     $this->add_text_box('head', array($this, 'textbox_head'), 'normal');
     if (0 === $data['tables_count']) {
         $this->add_meta_box('no-tables', __('Export Tables', 'tablepress'), array($this, 'postbox_no_tables'), 'normal');
     } else {
         $this->admin_page->enqueue_script('export', array('jquery-core'));
         $this->add_meta_box('export-form', __('Export Tables', 'tablepress'), array($this, 'postbox_export_form'), 'normal');
         $this->data['submit_button_caption'] = _x('Download Export File', 'button', 'tablepress');
         $this->add_text_box('submit', array($this, 'textbox_submit_button'), 'submit');
     }
 }
Пример #8
0
 /**
  * Set up the view with data and do things that are specific for this view
  *
  * @since 1.0.0
  *
  * @param string $action Action for this view
  * @param array $data Data for this view
  */
 public function setup($action, $data)
 {
     parent::setup($action, $data);
     $this->admin_page->enqueue_style('codemirror');
     $this->admin_page->enqueue_script('codemirror', array(), false, true);
     $this->admin_page->enqueue_script('options', array('jquery', 'tablepress-codemirror'));
     $this->process_action_messages(array('success_save' => __('Options saved successfully.', 'tablepress'), 'success_save_error_custom_css' => __('Options saved successfully, but &#8220;Custom CSS&#8221; was not saved to file.', 'tablepress'), 'error_save' => __('Error: Options could not be saved.', 'tablepress'), 'success_import_wp_table_reloaded' => __('The WP-Table Reloaded &#8220;Custom CSS&#8221; was imported successfully.', 'tablepress')));
     $this->add_text_box('head', array($this, 'textbox_head'), 'normal');
     if (current_user_can('tablepress_edit_options')) {
         $this->add_meta_box('frontend-options', __('Frontend Options', 'tablepress'), array($this, 'postbox_frontend_options'), 'normal');
     }
     $this->add_meta_box('user-options', __('User Options', 'tablepress'), array($this, 'postbox_user_options'), 'normal');
     $this->data['submit_button_caption'] = __('Save Changes', 'tablepress');
     $this->add_text_box('submit', array($this, 'textbox_submit_button'), 'submit');
 }
Пример #9
0
 /**
  * Set up the view with data and do things that are specific for this view.
  *
  * @since 1.0.0
  *
  * @param string $action Action for this view.
  * @param array  $data   Data for this view.
  */
 public function setup($action, array $data)
 {
     parent::setup($action, $data);
     $this->admin_page->enqueue_style('codemirror');
     $this->admin_page->enqueue_script('codemirror', array(), array(), true);
     $this->admin_page->enqueue_script('options', array('jquery-core', 'tablepress-codemirror', 'jquery-ui-resizable'), array('strings' => array('uninstall_warning_1' => __('Do you really want to uninstall TablePress and delete ALL data?', 'tablepress'), 'uninstall_warning_2' => __('Are you really sure?', 'tablepress'))));
     $this->process_action_messages(array('success_save' => __('Options saved successfully.', 'tablepress'), 'success_save_error_custom_css' => __('Options saved successfully, but &#8220;Custom CSS&#8221; was not saved to file.', 'tablepress'), 'error_save' => __('Error: Options could not be saved.', 'tablepress'), 'success_import_wp_table_reloaded' => __('The WP-Table Reloaded &#8220;Custom CSS&#8221; was imported successfully.', 'tablepress')));
     $this->add_text_box('head', array($this, 'textbox_head'), 'normal');
     if (current_user_can('tablepress_edit_options')) {
         $this->add_meta_box('frontend-options', __('Frontend Options', 'tablepress'), array($this, 'postbox_frontend_options'), 'normal');
     }
     $this->add_meta_box('user-options', __('User Options', 'tablepress'), array($this, 'postbox_user_options'), 'normal');
     $this->data['submit_button_caption'] = __('Save Changes', 'tablepress');
     $this->add_text_box('submit', array($this, 'textbox_submit_button'), 'submit');
     if (current_user_can('activate_plugins') && current_user_can('tablepress_edit_options') && current_user_can('tablepress_delete_tables') && !is_plugin_active_for_network(TABLEPRESS_BASENAME)) {
         $this->add_text_box('uninstall-tablepress', array($this, 'textbox_uninstall_tablepress'), 'submit');
     }
 }
Пример #10
0
 /**
  * Set up the view with data and do things that are specific for this view
  *
  * @since 1.0.0
  *
  * @param string $action Action for this view
  * @param array $data Data for this view
  */
 public function setup($action, array $data)
 {
     parent::setup($action, $data);
     if (isset($data['table']['is_corrupted']) && $data['table']['is_corrupted']) {
         $this->add_text_box('table-corrupted', array($this, 'textbox_corrupted_table'), 'normal');
         return;
     }
     $action_messages = array('success_save' => __('The table was saved successfully.', 'tablepress'), 'success_add' => __('The table was added successfully.', 'tablepress'), 'success_copy' => _n('The table was copied successfully.', 'The tables were copied successfully.', 1, 'tablepress') . ' ' . sprintf(__('You are now seeing the copied table, which has the table ID &#8220;%s&#8221;.', 'tablepress'), esc_html($data['table']['id'])), 'success_import' => __('The table was imported successfully.', 'tablepress'), 'success_import_wp_table_reloaded' => __('The table was imported successfully from WP-Table Reloaded.', 'tablepress'), 'error_save' => __('Error: The table could not be saved.', 'tablepress'), 'error_delete' => __('Error: The table could not be deleted.', 'tablepress'), 'success_save_success_id_change' => __('The table was saved successfully, and the table ID was changed.', 'tablepress'), 'success_save_error_id_change' => __('The table was saved successfully, but the table ID could not be changed!', 'tablepress'));
     // Custom handling instead of $this->process_action_messages(). Also, $action_messages is used below.
     if ($data['message'] && isset($action_messages[$data['message']])) {
         $class = 'error' == substr($data['message'], 0, 5) || in_array($data['message'], array('success_save_error_id_change'), true) ? 'error' : 'updated';
         $this->add_header_message("<strong>{$action_messages[$data['message']]}</strong>", $class);
     }
     wp_enqueue_style('wp-jquery-ui-dialog');
     // do this here to get CSS into <head>
     wp_enqueue_script('wpdialogs');
     // For the Advanced Editor
     add_action('admin_footer', array($this, 'dequeue_media_upload_js'), 2);
     // remove default media-upload.js, in favor of own code
     add_thickbox();
     add_filter('media_view_strings', array($this, 'change_media_view_strings'));
     wp_enqueue_media();
     // Use modified version of wpLink, instead of default version (changes "Title" to "Link Text")
     wp_deregister_script('wplink');
     $version = 0 === strpos($GLOBALS['wp_version'], '3.8') ? '38' : '';
     // temporary backward-compatibility with WordPress 3.8, where we keep loading the old version of the customized wplink script
     $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     // See wp-includes/script-loader.php for default parameters
     $wplink_url = plugins_url("admin/js/tp_wplink{$version}{$suffix}.js", TABLEPRESS__FILE__);
     wp_enqueue_script('wplink', $wplink_url, array('jquery'), TablePress::version, true);
     wp_localize_script('wplink', 'wpLinkL10n', array('title' => _x('Insert/edit link', 'Insert Link dialog', 'tablepress'), 'update' => _x('Update', 'Insert Link dialog', 'tablepress'), 'save' => _x('Add Link', 'Insert Link dialog', 'tablepress'), 'noTitle' => _x('(no title)', 'Insert Link dialog', 'tablepress'), 'noMatchesFound' => _x('No matches found.', 'Insert Link dialog', 'tablepress'), 'link_text' => _x('Link Text', 'Insert Link dialog', 'tablepress')));
     $this->admin_page->enqueue_style('edit');
     $this->admin_page->enqueue_script('edit', array('jquery', 'jquery-ui-sortable', 'json2'), array('options' => array('print_debug_output' => apply_filters('tablepress_print_debug_output', isset($_GET['debug']) ? 'true' == $_GET['debug'] : WP_DEBUG), 'cells_advanced_editor' => apply_filters('tablepress_edit_cells_advanced_editor', true), 'cells_auto_grow' => apply_filters('tablepress_edit_cells_auto_grow', true), 'shortcode' => esc_js(TablePress::$shortcode)), 'strings' => array_merge(array('no_remove_all_rows' => __('You can not delete all table rows!', 'tablepress'), 'no_remove_all_columns' => __('You can not delete all table columns!', 'tablepress'), 'no_rows_selected' => __('You did not select any rows!', 'tablepress'), 'no_columns_selected' => __('You did not select any columns!', 'tablepress'), 'append_num_rows_invalid' => __('The value for the number of rows is invalid!', 'tablepress'), 'append_num_columns_invalid' => __('The value for the number of columns is invalid!', 'tablepress'), 'ays_remove_rows_singular' => _n('Do you really want to delete the selected row?', 'Do you really want to delete the selected rows?', 1, 'tablepress'), 'ays_remove_rows_plural' => _n('Do you really want to delete the selected row?', 'Do you really want to delete the selected rows?', 2, 'tablepress'), 'ays_remove_columns_singular' => _n('Do you really want to delete the selected column?', 'Do you really want to delete the selected columns?', 1, 'tablepress'), 'ays_remove_columns_plural' => _n('Do you really want to delete the selected column?', 'Do you really want to delete the selected columns?', 2, 'tablepress'), 'advanced_editor_open' => __('Please click into the cell that you want to edit using the &#8220;Advanced Editor&#8221;.', 'tablepress'), 'rowspan_add' => __('To combine cells within a column, click into the cell below the cell that has the content the combined cells shall have.', 'tablepress'), 'colspan_add' => __('To combine cells within a row, click into the cell to the right of the cell that has the content the combined cells shall have.', 'tablepress'), 'span_add_datatables_warning' => __('Attention: You have enabled the usage of the DataTables JavaScript library for features like sorting, search, or pagination.', 'tablepress') . "\n" . __('Unfortunately, these can not be used in tables with combined cells.', 'tablepress') . "\n" . __('Do you want to proceed and automatically turn off the usage of DataTables for this table?', 'tablepress'), 'link_add' => __('Please click into the cell that you want to add a link to.', 'tablepress') . "\n" . __('You can then enter the Link URL and Text or choose an existing page or post.', 'tablepress'), 'image_add' => __('Please click into the cell that you want to add an image to.', 'tablepress') . "\n" . __('The Media Library will open, where you can select or upload the desired image or enter the image URL.', 'tablepress') . "\n" . sprintf(__('Click the &#8220;%s&#8221; button to insert the image.', 'tablepress'), __('Insert into Post', 'default')), 'unsaved_changes_unload' => __('The changes to this table were not saved yet and will be lost if you navigate away from this page.', 'tablepress'), 'preparing_preview' => __('The Table Preview is being loaded...', 'tablepress'), 'preview_error' => __('The Table Preview could not be loaded.', 'tablepress'), 'save_changes_success' => __('Saving successful', 'tablepress'), 'save_changes_error' => __('Saving failed', 'tablepress'), 'saving_changes' => __('Changes are being saved...', 'tablepress'), 'table_id_not_empty' => __('The Table ID field can not be empty. Please enter a Table ID!', 'tablepress'), 'table_id_not_zero' => __('The Table ID &#8220;0&#8221; is not supported. Please enter a different Table ID!', 'tablepress'), 'ays_change_table_id' => __('Do you really want to change the Table ID? All Shortcodes for this table in your pages and posts will have to be adjusted!', 'tablepress'), 'extra_css_classes_invalid' => __('The entered value in the field &#8220;Extra CSS classes&#8221; is invalid.', 'tablepress'), 'num_pagination_entries_invalid' => __('The entered value in the field &#8220;Pagination Entries&#8221; is not a number.', 'tablepress'), 'sort_asc' => __('Sort ascending', 'tablepress'), 'sort_desc' => __('Sort descending', 'tablepress'), 'no_rowspan_first_row' => __('You can not add rowspan to the first row!', 'tablepress'), 'no_colspan_first_col' => __('You can not add colspan to the first column!', 'tablepress'), 'no_rowspan_table_head' => __('You can not connect cells into the table head row!', 'tablepress'), 'no_rowspan_table_foot' => __('You can not connect cells out of the table foot row!', 'tablepress')), $action_messages)));
     $this->add_text_box('head', array($this, 'textbox_head'), 'normal');
     $this->add_text_box('buttons-1', array($this, 'textbox_buttons'), 'normal');
     $this->add_meta_box('table-information', __('Table Information', 'tablepress'), array($this, 'postbox_table_information'), 'normal');
     $this->add_meta_box('table-data', __('Table Content', 'tablepress'), array($this, 'postbox_table_data'), 'normal');
     $this->add_meta_box('table-manipulation', __('Table Manipulation', 'tablepress'), array($this, 'postbox_table_manipulation'), 'normal');
     $this->add_meta_box('table-options', __('Table Options', 'tablepress'), array($this, 'postbox_table_options'), 'normal');
     $this->add_meta_box('datatables-features', __('Features of the DataTables JavaScript library', 'tablepress'), array($this, 'postbox_datatables_features'), 'normal');
     $this->add_text_box('hidden-containers', array($this, 'textbox_hidden_containers'), 'additional');
     $this->add_text_box('buttons-2', array($this, 'textbox_buttons'), 'additional');
     $this->add_text_box('other-actions', array($this, 'textbox_other_actions'), 'submit');
 }