| @@ -7,8 +7,10 @@ | ||
| 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 | /** |
| @@ -93,8 +95,12 @@ | ||
| 93 | 95 | * @param string $entry_name The admin menu entry name. Default "TablePress". |
| 94 | 96 | */ |
| 95 | 97 | $admin_menu_entry_name = apply_filters( 'tablepress_admin_menu_entry_name', 'TablePress' ); |
| 96 | 98 | |
| 99 | + if ( TablePress::$model_options->get( 'message_plugin_update' ) && strtotime( '2026-10-10' ) >= strtotime( 'today' ) ) { | |
| 100 | + $admin_menu_entry_name .= ' <span class="dashicons dashicons-buddicons-community" aria-hidden="true" style="color:orange"></span>'; | |
| 101 | + } | |
| 102 | + | |
| 97 | 103 | $this->init_view_actions(); |
| 98 | 104 | $min_access_cap = $this->view_actions['list']['required_cap']; |
| 99 | 105 | |
| 100 | 106 | if ( TablePress::$controller->is_top_level_page ) { |
| @@ -1005,10 +1011,9 @@ | ||
| 1005 | 1011 | |
| 1006 | 1012 | if ( empty( $export['format'] ) || ! isset( $exporter->export_formats[ $export['format'] ] ) ) { |
| 1007 | 1013 | TablePress::redirect( array( 'action' => 'export', 'message' => 'error_export', 'error_details' => 'The export format is invalid.' ) ); |
| 1008 | 1014 | } |
| 1009 | - if ( empty( $export['csv_delimiter'] ) ) { | |
| 1010 | - // Set a value, so that the variable exists. | |
| 1015 | + if ( ! isset( $export['csv_delimiter'] ) ) { | |
| 1011 | 1016 | $export['csv_delimiter'] = ''; |
| 1012 | 1017 | } |
| 1013 | 1018 | if ( 'csv' === $export['format'] && ! isset( $exporter->csv_delimiters[ $export['csv_delimiter'] ] ) ) { |
| 1014 | 1019 | TablePress::redirect( array( 'action' => 'export', 'message' => 'error_export', 'error_details' => 'The CSV delimiter is invalid.' ) ); |
| @@ -1052,9 +1057,13 @@ | ||
| 1052 | 1057 | */ |
| 1053 | 1058 | $download_filename = apply_filters( 'tablepress_export_filename', $download_filename, $table['id'], $table['name'], $export['format'], $export_to_zip ); |
| 1054 | 1059 | $download_filename = sanitize_file_name( $download_filename ); |
| 1055 | 1060 | // Export the table. |
| 1056 | - $export_data = $exporter->export_table( $table, $export['format'], $export['csv_delimiter'] ); | |
| 1061 | + $options = array(); | |
| 1062 | + if ( 'csv' === $export['format'] ) { | |
| 1063 | + $options['csv_delimiter'] = $export['csv_delimiter']; | |
| 1064 | + } | |
| 1065 | + $export_data = $exporter->export_table( $table, $export['format'], $options ); | |
| 1057 | 1066 | /** |
| 1058 | 1067 | * Filters the exported table data. |
| 1059 | 1068 | * |
| 1060 | 1069 | * @since 1.6.0 |
| @@ -1098,9 +1107,13 @@ | ||
| 1098 | 1107 | // Don't export if the table is corrupted. |
| 1099 | 1108 | if ( isset( $table['is_corrupted'] ) && $table['is_corrupted'] ) { |
| 1100 | 1109 | continue; |
| 1101 | 1110 | } |
| 1102 | - $export_data = $exporter->export_table( $table, $export['format'], $export['csv_delimiter'] ); | |
| 1111 | + $options = array(); | |
| 1112 | + if ( 'csv' === $export['format'] ) { | |
| 1113 | + $options['csv_delimiter'] = $export['csv_delimiter']; | |
| 1114 | + } | |
| 1115 | + $export_data = $exporter->export_table( $table, $export['format'], $options ); | |
| 1103 | 1116 | /** This filter is documented in controllers/controller-admin.php */ |
| 1104 | 1117 | $export_data = apply_filters( 'tablepress_export_data', $export_data, $table, $export['format'], $export['csv_delimiter'] ); |
| 1105 | 1118 | $export_filename = sprintf( '%1$s-%2$s-%3$s.%4$s', $table['id'], $table['name'], wp_date( 'Y-m-d' ), $export['format'] ); |
| 1106 | 1119 | /** This filter is documented in controllers/controller-admin.php */ |