PluginProbe
WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards / 5.5.85
WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards v5.5.85
5.5.85 5.5.84 5.5.83 5.5.82 5.5.81 5.5.80 5.5.79 5.5.77 5.5.76 5.5.75 5.5.73 5.5.72 5.5.22 5.5.23 5.5.29 5.5.3 5.5.31 5.5.32 5.5.34 5.5.35 5.5.36 5.5.37 5.5.4 5.5.40 5.5.41 All 161 releases
← All changes | WPDataAccess/Settings/WPDA_Settings_ManageRepository.php +256 -65 5.5.3 → 5.5.85 View file →
@@ -1,8 +1,11 @@
1 1 <?php
2 2
3 3 namespace WPDataAccess\Settings {
4 4
5 + use WPDataAccess\Plugin_Table_Models\WPDA_App_Apps_Model;
6 + use WPDataAccess\Plugin_Table_Models\WPDA_App_Container_Model;
7 + use WPDataAccess\Plugin_Table_Models\WPDA_App_Model;
5 8 use WPDataAccess\Plugin_Table_Models\WPDA_CSV_Uploads_Model;
6 9 use WPDataAccess\Plugin_Table_Models\WPDA_Design_Table_Model;
7 10 use WPDataAccess\Plugin_Table_Models\WPDA_Logging_Model;
8 11 use WPDataAccess\Plugin_Table_Models\WPDA_Media_Model;
@@ -18,10 +21,10 @@
18 21 use WPDataAccess\WPDA;
19 22
20 23 class WPDA_Settings_ManageRepository extends WPDA_Settings {
21 24
22 - public function __construct( $current_tab, $help_url ) {
23 - parent::__construct( $current_tab, $help_url );
25 + public function __construct( $current_tab ) {
26 + parent::__construct( $current_tab );
24 27
25 28 // Recreation of repository must be performed before checking the availability of menu items (done next).
26 29 if ( isset( $_REQUEST['repos'] ) && 'true' === sanitize_text_field( wp_unslash( $_REQUEST['repos'] ) ) ) {
27 30 // Security check.
@@ -26,9 +29,9 @@
26 29 if ( isset( $_REQUEST['repos'] ) && 'true' === sanitize_text_field( wp_unslash( $_REQUEST['repos'] ) ) ) {
27 30 // Security check.
28 31 $wp_nonce = isset( $_REQUEST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ) : ''; // input var okay.
29 32 if ( ! wp_verify_nonce( $wp_nonce, 'wpda-settings-recreate-repository-' . WPDA::get_current_user_login() ) ) {
30 - wp_die( __( 'ERROR: Not authorized', 'wp-data-access' ) );
33 + wp_die( esc_attr__( 'ERROR: Not authorized', 'wp-data-access' ) );
31 34 }
32 35
33 36 // Recreate repository.
34 37 $wpda_repository = new WPDA_Repository();
@@ -51,9 +54,9 @@
51 54 protected function count_repository_backup_table( $table_name ) {
52 55 global $wpdb;
53 56
54 57 $suppress = $wpdb->suppress_errors( true );
55 - $wpdb->get_results(
58 + $wpdb->get_results( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- plugin table
56 59 $wpdb->prepare(
57 60 'select 1 from `%1s`', // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
58 61 array(
59 62 WPDA::remove_backticks( $table_name ),
@@ -81,9 +84,9 @@
81 84
82 85 // Security check.
83 86 $wp_nonce = isset( $_REQUEST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ) : ''; // input var okay.
84 87 if ( ! wp_verify_nonce( $wp_nonce, 'wpda-repository-settings-' . WPDA::get_current_user_login() ) ) {
85 - wp_die( __( 'ERROR: Not authorized', 'wp-data-access' ) );
88 + wp_die( esc_attr__( 'ERROR: Not authorized', 'wp-data-access' ) );
86 89 }
87 90
88 91 if ( 'save' === $action ) {
89 92 // Save changes.
@@ -116,8 +119,20 @@
116 119
117 120 $keep_backup_tables = WPDA::get_option( WPDA::OPTION_MR_KEEP_BACKUP_TABLES );
118 121 $backup_tables_kept = WPDA::get_option( WPDA::OPTION_MR_BACKUP_TABLES_KEPT );
119 122
123 + // Check table wp_wpda_app.
124 + $app_table_name = WPDA_App_Model::get_base_table_name();
125 + $app_table_name_exists = WPDA_App_Model::table_exists();
126 +
127 + // Check table wp_wpda_app_container.
128 + $app_container_table_name = WPDA_App_Container_Model::get_base_table_name();
129 + $app_container_table_name_exists = WPDA_App_Container_Model::table_exists();
130 +
131 + // Check table wp_wpda_app_apps.
132 + $app_apps_table_name = WPDA_App_Apps_Model::get_base_table_name();
133 + $app_apps_table_name_exists = WPDA_App_Apps_Model::table_exists();
134 +
120 135 // Check table wp_wpda_menus.
121 136 $menus_table_name = WPDA_User_Menus_Model::get_base_table_name();
122 137 $menus_table_name_exists = WPDA_User_Menus_Model::table_exists();
123 138
@@ -174,8 +189,11 @@
174 189 or table_name like %s
175 190 or table_name like %s
176 191 or table_name like %s
177 192 or table_name like %s
193 + or table_name like %s
194 + or table_name like %s
195 + or table_name like %s
178 196 )
179 197 order by 1 desc';
180 198
181 199 if ( isset( $_REQUEST['create_backup'] ) && 'true' === $_REQUEST['create_backup'] ) {
@@ -181,9 +199,9 @@
181 199 if ( isset( $_REQUEST['create_backup'] ) && 'true' === $_REQUEST['create_backup'] ) {
182 200 // Security check
183 201 $wp_nonce = isset( $_REQUEST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ) : ''; // input var okay.
184 202 if ( ! wp_verify_nonce( $wp_nonce, 'wpda-settings-create_backup-repository-' . WPDA::get_current_user_login() ) ) {
185 - wp_die( __( 'ERROR: Not authorized', 'wp-data-access' ) );
203 + wp_die( esc_attr__( 'ERROR: Not authorized', 'wp-data-access' ) );
186 204 }
187 205
188 206 $wpda_repository = new WPDA_Repository();
189 207 $wpda_repository->create_new_backup();
@@ -190,9 +208,9 @@
190 208 } elseif ( isset( $_REQUEST['remove_one_backup'] ) && 'true' === $_REQUEST['remove_one_backup'] ) {
191 209 // Security check
192 210 $wp_nonce = isset( $_REQUEST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ) : ''; // input var okay.
193 211 if ( ! wp_verify_nonce( $wp_nonce, 'wpda-settings-remove_backup-repository-' . WPDA::get_current_user_login() ) ) {
194 - wp_die( __( 'ERROR: Not authorized', 'wp-data-access' ) );
212 + wp_die( esc_attr__( 'ERROR: Not authorized', 'wp-data-access' ) );
195 213 }
196 214
197 215 if ( isset( $_REQUEST['backup_date'] ) ) {
198 216 $backup_date = sanitize_text_field( wp_unslash( $_REQUEST['backup_date'] ) ); // input var okay.
@@ -210,13 +228,13 @@
210 228 }
211 229 } elseif ( isset( $_REQUEST['remove_backup'] ) && 'true' === $_REQUEST['remove_backup'] ) {
212 230 $wp_nonce = isset( $_REQUEST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ) : ''; // input var okay.
213 231 if ( ! wp_verify_nonce( $wp_nonce, 'wpda-settings-remove_backup-repository-' . WPDA::get_current_user_login() ) ) {
214 - wp_die( __( 'ERROR: Not authorized', 'wp-data-access' ) );
232 + wp_die( esc_attr__( 'ERROR: Not authorized', 'wp-data-access' ) );
215 233 }
216 234
217 235 // Remove all repository backups
218 - $backup_tables = $wpdb->get_results(
236 + $backup_tables = $wpdb->get_results( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter -- plugin table
219 237 $wpdb->prepare(
220 238 $query, // phpcs:ignore WordPress.DB.PreparedSQL
221 239 array(
222 240 $wpdb->dbname,
@@ -229,16 +247,19 @@
229 247 "$csv_import_table_name{$bck_postfix}%",
230 248 "$data_projects_project_name{$bck_postfix}%",
231 249 "$data_projects_page_name{$bck_postfix}%",
232 250 "$data_projects_table_name{$bck_postfix}%",
251 + "$app_table_name{$bck_postfix}%",
252 + "$app_container_table_name{$bck_postfix}%",
253 + "$app_apps_table_name{$bck_postfix}%",
233 254 )
234 255 ),
235 256 'ARRAY_N'
236 257 );
237 258 foreach ( $backup_tables as $backup_table ) {
238 - $wpdb->query(
259 + $wpdb->query( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- plugin table
239 260 $wpdb->prepare(
240 - 'drop table `%1s`', // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
261 + 'drop table `%1s`', // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders, WordPress.DB.DirectDatabaseQuery.SchemaChange
241 262 array(
242 263 WPDA::remove_backticks( $backup_table[0] ),
243 264 )
244 265 )
@@ -254,9 +275,9 @@
254 275 } elseif ( isset( $_REQUEST['restore_backup'] ) ) {
255 276 if ( isset( $_REQUEST['restore_date'] ) ) {
256 277 $wp_nonce = isset( $_REQUEST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ) : ''; // input var okay.
257 278 if ( ! wp_verify_nonce( $wp_nonce, 'wpda-settings-restore_backup-repository-' . WPDA::get_current_user_login() ) ) {
258 - wp_die( __( 'ERROR: Not authorized', 'wp-data-access' ) );
279 + wp_die( esc_attr__( 'ERROR: Not authorized', 'wp-data-access' ) );
259 280 }
260 281
261 282 // Start repository restore procedure
262 283 $restore_date = sanitize_text_field( wp_unslash( $_REQUEST['restore_date'] ) ); // input var okay.
@@ -265,61 +286,76 @@
265 286 }
266 287 }
267 288
268 289 // Count backup tables rows
290 + if ( $app_table_name_exists ) {
291 + $no_app_items = WPDA_App_Model::count(); // phpcs:ignore -- 8.1 proof
292 + } else {
293 + $no_app_items = 0;
294 + }
295 + if ( $app_container_table_name_exists ) {
296 + $no_app_container_items = WPDA_App_Container_Model::count(); // phpcs:ignore -- 8.1 proof
297 + } else {
298 + $no_app_container_items = 0;
299 + }
300 + if ( $app_apps_table_name_exists ) {
301 + $no_app_apps_items = WPDA_App_Apps_Model::count(); // phpcs:ignore -- 8.1 proof
302 + } else {
303 + $no_app_apps_items = 0;
304 + }
269 305 if ( $menus_table_name_exists ) {
270 - $no_menu_items = WPDA_User_Menus_Model::count();//phpcs:ignore - 8.1 proof
306 + $no_menu_items = WPDA_User_Menus_Model::count(); // phpcs:ignore -- 8.1 proof
271 307 } else {
272 308 $no_menu_items = 0;
273 309 }
274 310 if ( $design_table_name_exists ) {
275 - $no_table_designs = WPDA_Design_Table_Model::count();//phpcs:ignore - 8.1 proof
311 + $no_table_designs = WPDA_Design_Table_Model::count(); // phpcs:ignore -- 8.1 proof
276 312 } else {
277 313 $no_table_designs = 0;
278 314 }
279 315 if ( $logging_table_exists ) {
280 - $no_logs = WPDA_Logging_Model::count();//phpcs:ignore - 8.1 proof
316 + $no_logs = WPDA_Logging_Model::count(); // phpcs:ignore -- 8.1 proof
281 317 } else {
282 318 $no_logs = 0;
283 319 }
284 320 if ( $media_table_exists ) {
285 - $no_media = WPDA_Media_Model::count();//phpcs:ignore - 8.1 proof
321 + $no_media = WPDA_Media_Model::count(); // phpcs:ignore -- 8.1 proof
286 322 } else {
287 323 $no_media = 0;
288 324 }
289 325 if ( $data_projects_project_name_exists ) {
290 - $no_projects = WPDP_Project_Model::count();//phpcs:ignore - 8.1 proof
326 + $no_projects = WPDP_Project_Model::count(); // phpcs:ignore -- 8.1 proof
291 327 } else {
292 328 $no_projects = 0;
293 329 }
294 330 if ( $data_projects_page_name_exists ) {
295 - $no_pages = WPDP_Page_Model::count();//phpcs:ignore - 8.1 proof
331 + $no_pages = WPDP_Page_Model::count(); // phpcs:ignore -- 8.1 proof
296 332 } else {
297 333 $no_pages = 0;
298 334 }
299 335 if ( $data_projects_table_name_exists ) {
300 - $no_project_table_designs = WPDP_Project_Design_Table_Model::count();//phpcs:ignore - 8.1 proof
336 + $no_project_table_designs = WPDP_Project_Design_Table_Model::count(); // phpcs:ignore -- 8.1 proof
301 337 } else {
302 338 $no_project_table_designs = 0;
303 339 }
304 340 if ( $data_publication_table_name_exists ) {
305 - $no_data_publication = WPDA_Publisher_Model::count();//phpcs:ignore - 8.1 proof
341 + $no_data_publication = WPDA_Publisher_Model::count(); // phpcs:ignore -- 8.1 proof
306 342 } else {
307 343 $no_data_publication = 0;
308 344 }
309 345 if ( $table_settings_table_exists ) {
310 - $no_table_settings = WPDA_Table_Settings_Model::count();//phpcs:ignore - 8.1 proof
346 + $no_table_settings = WPDA_Table_Settings_Model::count(); // phpcs:ignore -- 8.1 proof
311 347 } else {
312 348 $no_table_settings = 0;
313 349 }
314 350 if ( $csv_import_table_exists ) {
315 - $no_csv_import = WPDA_CSV_Uploads_Model::count();//phpcs:ignore - 8.1 proof
351 + $no_csv_import = WPDA_CSV_Uploads_Model::count(); // phpcs:ignore -- 8.1 proof
316 352 } else {
317 353 $no_csv_import = 0;
318 354 }
319 355
320 356 // Count backup tables
321 - $backup_tables = $wpdb->get_results(
357 + $backup_tables = $wpdb->get_results( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter -- plugin tables
322 358 $wpdb->prepare(
323 359 $query, // phpcs:ignore WordPress.DB.PreparedSQL
324 360 array(
325 361 $wpdb->dbname,
@@ -332,8 +368,11 @@
332 368 "$csv_import_table_name{$bck_postfix}%",
333 369 "$data_projects_project_name{$bck_postfix}%",
334 370 "$data_projects_page_name{$bck_postfix}%",
335 371 "$data_projects_table_name{$bck_postfix}%",
372 + "$app_table_name{$bck_postfix}%",
373 + "$app_container_table_name{$bck_postfix}%",
374 + "$app_apps_table_name{$bck_postfix}%",
336 375 )
337 376 ),
338 377 'ARRAY_N'
339 378 );
@@ -382,9 +421,9 @@
382 421 $wpnonce_download_backup = wp_create_nonce( 'wpda-export-' . WPDA::get_current_user_login() );
383 422 ?>
384 423 <form id="wpda-download-actual-respository"
385 424 method="post"
386 - action="<?php echo admin_url( 'admin.php' ); // phpcs:ignore WordPress.Security.EscapeOutput ?>?action=wpda_export"
425 + action="<?php echo esc_url( admin_url( 'admin.php' ) ); ?>?action=wpda_export"
387 426 target="_blank"
388 427 style="display: none"
389 428 >
390 429 <input type="hidden" name="type" value="table">
@@ -389,8 +428,11 @@
389 428 >
390 429 <input type="hidden" name="type" value="table">
391 430 <input type="hidden" name="_wpnonce" value="<?php echo esc_attr( $wpnonce_download_backup ); ?>">
392 431 <input type="hidden" name="show_create" value="off">
432 + <input type="hidden" name="table_names[]" value="<?php echo esc_attr( $app_table_name ); ?>">
433 + <input type="hidden" name="table_names[]" value="<?php echo esc_attr( $app_container_table_name ); ?>">
434 + <input type="hidden" name="table_names[]" value="<?php echo esc_attr( $app_apps_table_name ); ?>">
393 435 <input type="hidden" name="table_names[]" value="<?php echo esc_attr( $table_settings_table_name ); ?>">
394 436 <input type="hidden" name="table_names[]" value="<?php echo esc_attr( $media_table_name ); ?>">
395 437 <input type="hidden" name="table_names[]" value="<?php echo esc_attr( $design_table_name ); ?>">
396 438 <input type="hidden" name="table_names[]" value="<?php echo esc_attr( $data_projects_project_name ); ?>">
@@ -403,9 +445,9 @@
403 445 <input type="submit">
404 446 </form>
405 447 <form id="wpda-download-backup"
406 448 method="post"
407 - action="<?php echo admin_url( 'admin.php' ); // phpcs:ignore WordPress.Security.EscapeOutput ?>?action=wpda_export"
449 + action="<?php echo esc_url( admin_url( 'admin.php' ) ); ?>?action=wpda_export"
408 450 target="_blank"
409 451 style="display: none"
410 452 >
411 453 <input type="hidden" name="type" value="table">
@@ -410,8 +452,11 @@
410 452 >
411 453 <input type="hidden" name="type" value="table">
412 454 <input type="hidden" name="_wpnonce" value="<?php echo esc_attr( $wpnonce_download_backup ); ?>">
413 455 <input type="hidden" name="show_create" value="off">
456 + <input type="hidden" name="table_names[]" id="app_table_name">
457 + <input type="hidden" name="table_names[]" id="app_container_table_name">
458 + <input type="hidden" name="table_names[]" id="app_apps_table_name">
414 459 <input type="hidden" name="table_names[]" id="table_settings_table_name">
415 460 <input type="hidden" name="table_names[]" id="media_table_name">
416 461 <input type="hidden" name="table_names[]" id="design_table_name">
417 462 <input type="hidden" name="table_names[]" id="data_projects_project_name">
@@ -424,9 +469,9 @@
424 469 <input type="submit">
425 470 </form>
426 471 <form id="wpda-remove-backup"
427 472 method="post"
428 - action="<?php echo admin_url( 'admin.php' ); // phpcs:ignore WordPress.Security.EscapeOutput ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository"
473 + action="<?php esc_url( admin_url( 'admin.php' ) ); ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository"
429 474 style="display: none"
430 475 >
431 476 <input type="hidden" name="backup_date" id="remove_backup_date">
432 477 <input type="hidden" name="remove_one_backup" value="true">
@@ -434,9 +479,9 @@
434 479 <input type="submit">
435 480 </form>
436 481 <form id="wpda-create-backup"
437 482 method="post"
438 - action="<?php echo admin_url( 'admin.php' ); // phpcs:ignore WordPress.Security.EscapeOutput ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository"
483 + action="<?php esc_url( admin_url( 'admin.php' ) ); ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository"
439 484 style="display: none"
440 485 >
441 486 <input type="hidden" name="create_backup" value="true">
442 487 <input type="hidden" name="_wpnonce" value="<?php echo esc_attr( $wpnonce_create_backup ); ?>">
@@ -443,9 +488,9 @@
443 488 <input type="submit">
444 489 </form>
445 490 <form id="wpda-remove-all-backups"
446 491 method="post"
447 - action="<?php echo admin_url( 'admin.php' ); // phpcs:ignore WordPress.Security.EscapeOutput ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository"
492 + action="<?php esc_url( admin_url( 'admin.php' ) ); ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository"
448 493 style="display: none"
449 494 >
450 495 <input type="hidden" name="remove_backup" value="true">
451 496 <input type="hidden" name="_wpnonce" value="<?php echo esc_attr( $wpnonce_remove_backup ); ?>">
@@ -452,11 +497,14 @@
452 497 <input type="submit">
453 498 </form>
454 499 <form id="wpda-restore-respository"
455 500 method="post"
456 - action="<?php echo admin_url( 'admin.php' ); // phpcs:ignore WordPress.Security.EscapeOutput ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository"
501 + action="<?php esc_url( admin_url( 'admin.php' ) ); ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository"
457 502 style="display: none"
458 503 >
504 + <input type="hidden" name="wpda_app" id="restore_app_table_name">
505 + <input type="hidden" name="wpda_app_container" id="restore_app_container_table_name">
506 + <input type="hidden" name="wpda_app_apps" id="restore_app_apps_table_name">
459 507 <input type="hidden" name="wpda_table_settings" id="restore_table_settings_table_name">
460 508 <input type="hidden" name="wpda_media" id="restore_media_table_name">
461 509 <input type="hidden" name="wpda_table_design" id="restore_design_table_name">
462 510 <input type="hidden" name="wpda_project" id="restore_data_projects_project_name">
@@ -471,21 +519,21 @@
471 519 <input type="hidden" name="_wpnonce" value="<?php echo esc_attr( $wpnonce_restore_backup ); ?>">
472 520 <input type="submit">
473 521 </form>
474 522 <form id="wpda_settings_repository" method="post"
475 - action="<?php echo admin_url( 'admin.php' ); // phpcs:ignore WordPress.Security.EscapeOutput ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository">
523 + action="<?php esc_url( admin_url( 'admin.php' ) ); ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository">
476 524 <table class="wpda-table-settings">
477 525
478 526 <tr>
479 527 <th>
480 - <?php echo __( 'On Plugin Update', 'wp-data-access' ); ?>
528 + <?php esc_html_e( 'On Plugin Update', 'wp-data-access' ); ?>
481 529 </th>
482 530 <td>
483 531 <label>
484 532 <input type="checkbox" name="keep_backup_tables"
485 533 <?php echo 'on' === $keep_backup_tables ? 'checked' : ''; ?>>
486 - <strong><?php echo __( 'Keep backup of repository tables', 'wp-data-access' ); ?></strong>
487 - <?php echo __( '(creates backup tables on plugin updates)', 'wp-data-access' ); ?>
534 + <strong><?php esc_html_e( 'Keep backup of repository tables', 'wp-data-access' ); ?></strong>
535 + <?php esc_html_e( '(creates backup tables on plugin updates)', 'wp-data-access' ); ?>
488 536 </label>
489 537 <br/>
490 538 <label style="display: inline-block; margin-top: 5px">
491 539 <strong>Max backups saved:</strong>&nbsp;
@@ -495,10 +543,11 @@
495 543 <a href="javascript:void(0)"
496 544 class="button"
497 545 onclick="jQuery('#wpda-download-actual-respository').submit()"
498 546 >
499 - <?php echo __( 'Download actual repository tables' ); ?>
547 + <?php esc_html_e( 'Download actual repository tables', 'wp-data-access' ); ?>
500 548 </a>
549 + <div style="width: fit-content">
501 550 <?php
502 551 if ( $no_backup_tables > 0 ) {
503 552 ?>
504 553 <table class="wpda-table-backup">
@@ -506,8 +555,11 @@
506 555 <th style="vertical-align: bottom">Current repository backups</th>
507 556 <th class="wpda-repository-column"></th>
508 557 <th class="wpda-repository-column"></th>
509 558 <th class="wpda-repository-column"></th>
559 + <th class="wpda-repository-column"><span>Apps</span></th>
560 + <th class="wpda-repository-column"><span>App Containers</span></th>
561 + <th class="wpda-repository-column"><span>App Apps</span></th>
510 562 <th class="wpda-repository-column"><span>Table Settings</span></th>
511 563 <th class="wpda-repository-column"><span>Media Columns</span></th>
512 564 <th class="wpda-repository-column"><span>Data Designer</span></th>
513 565 <th class="wpda-repository-column"><span>Data Projects</span></th>
@@ -541,9 +593,9 @@
541 593 </td>
542 594 <td>
543 595 <span class="dashicons dashicons-download wpda_tooltip"
544 596 title="Download backup: <?php echo esc_attr( $display_date ); ?>"
545 - onclick="backup_respository_tables('<?php echo "{$table_settings_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$media_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$design_table_name}{$bck_postfix}{$backup_date}"; ?>', '<?php echo "{$data_projects_project_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$data_projects_page_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$data_projects_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$data_publication_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$menus_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$csv_import_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$logging_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>')"
597 + onclick="backup_respository_tables('<?php echo "{$app_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$app_container_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$app_apps_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$table_settings_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$media_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$design_table_name}{$bck_postfix}{$backup_date}"; ?>', '<?php echo "{$data_projects_project_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$data_projects_page_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$data_projects_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$data_publication_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$menus_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$csv_import_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>', '<?php echo "{$logging_table_name}{$bck_postfix}{$backup_date}"; // phpcs:ignore WordPress.Security.EscapeOutput ?>')"
546 598 >
547 599 </span>
548 600 </td>
549 601 <td>
@@ -559,8 +611,11 @@
559 611 onclick="if (confirm('Remove backup?')) { jQuery('#remove_backup_date').val('<?php echo esc_attr( $backup_date ); ?>'); jQuery('#wpda-remove-backup').submit(); }"
560 612 >
561 613 </span>
562 614 </td>
615 + <td class="wpda-repository-column"><?php echo esc_attr( $this->count_repository_backup_table( $app_table_name . $bck_postfix . $backup_date ) ); ?></td>
616 + <td class="wpda-repository-column"><?php echo esc_attr( $this->count_repository_backup_table( $app_container_table_name . $bck_postfix . $backup_date ) ); ?></td>
617 + <td class="wpda-repository-column"><?php echo esc_attr( $this->count_repository_backup_table( $app_apps_table_name . $bck_postfix . $backup_date ) ); ?></td>
563 618 <td class="wpda-repository-column"><?php echo esc_attr( $this->count_repository_backup_table( $table_settings_table_name . $bck_postfix . $backup_date ) ); ?></td>
564 619 <td class="wpda-repository-column"><?php echo esc_attr( $this->count_repository_backup_table( $media_table_name . $bck_postfix . $backup_date ) ); ?></td>
565 620 <td class="wpda-repository-column"><?php echo esc_attr( $this->count_repository_backup_table( $design_table_name . $bck_postfix . $backup_date ) ); ?></td>
566 621 <td class="wpda-repository-column"><?php echo esc_attr( $this->count_repository_backup_table( $data_projects_project_name . $bck_postfix . $backup_date ) ); ?></td>
@@ -579,15 +634,78 @@
579 634 <?php
580 635 $replace_title = __( 'CAREFULL This will truncate your actual repository table before restoring the selected version. Make a backup first!', 'wp-data-access' );
581 636 $add_title = __( 'IMPORTANT This option fails for which existing rows.', 'wp-data-access' );
582 637 ?>
583 - <div id="wpda-restore-repository-backup" style="display: none">
584 - <fieldset class="wpda_fieldset wpda-restore-repository-backup">
638 + <div id="wpda-restore-repository-backup" style="display: none; margin-top: 10px;">
639 + <fieldset class="wpda_fieldset wpda-restore-repository-backup" style="box-sizing: border-box; width: 100%;">
585 640 <legend>
586 641 Restore repository backup
587 642 </legend>
588 643 <table class="wpda-restore-repository-backup">
589 644 <tr>
645 + <td>Apps</td>
646 + <th>
647 + <label title="<?php echo esc_attr( $replace_title ); ?>" class="wpda_tooltip">
648 + <input type="radio" name="restore_app_table_name" value="replace"/>
649 + Replace
650 + </label>
651 + </th>
652 + <th>
653 + <label title="<?php echo esc_attr( $add_title ); ?>" class="wpda_tooltip">
654 + <input type="radio" name="restore_app_table_name" value="add"/>
655 + Add
656 + </label>
657 + </th>
658 + <th>
659 + <label>
660 + <input type="radio" name="restore_app_table_name" value="noaction" checked/>
661 + No action
662 + </label>
663 + </th>
664 + </tr>
665 + <tr>
666 + <td>App Containers</td>
667 + <th>
668 + <label title="<?php echo esc_attr( $replace_title ); ?>" class="wpda_tooltip">
669 + <input type="radio" name="restore_app_container_table_name" value="replace"/>
670 + Replace
671 + </label>
672 + </th>
673 + <th>
674 + <label title="<?php echo esc_attr( $add_title ); ?>" class="wpda_tooltip">
675 + <input type="radio" name="restore_app_container_table_name" value="add"/>
676 + Add
677 + </label>
678 + </th>
679 + <th>
680 + <label>
681 + <input type="radio" name="restore_app_container_table_name" value="noaction" checked/>
682 + No action
683 + </label>
684 + </th>
685 + </tr>
686 + <tr>
687 + <td>App Apps</td>
688 + <th>
689 + <label title="<?php echo esc_attr( $replace_title ); ?>" class="wpda_tooltip">
690 + <input type="radio" name="restore_app_apps_table_name" value="replace"/>
691 + Replace
692 + </label>
693 + </th>
694 + <th>
695 + <label title="<?php echo esc_attr( $add_title ); ?>" class="wpda_tooltip">
696 + <input type="radio" name="restore_app_apps_table_name" value="add"/>
697 + Add
698 + </label>
699 + </th>
700 + <th>
701 + <label>
702 + <input type="radio" name="restore_app_apps_table_name" value="noaction" checked/>
703 + No action
704 + </label>
705 + </th>
706 + </tr>
707 + <tr>
590 708 <td>Table Settings</td>
591 709 <th>
592 710 <label title="<?php echo esc_attr( $replace_title ); ?>" class="wpda_tooltip">
593 711 <input type="radio" name="restore_table_settings_table_name" value="replace"/>
@@ -780,15 +898,15 @@
780 898 <a href="javascript:void(0)"
781 899 class="button"
782 900 onclick="jQuery('.wpda-restore-repository-backup-selected').removeClass('wpda-restore-repository-backup-selected'); jQuery('#wpda-restore-repository-backup').hide();"
783 901 >
784 - <?php echo __( 'Cancel' ); ?>
902 + <?php esc_html_e( 'Cancel', 'wp-data-access' ); ?>
785 903 </a>
786 904 <a href="javascript:void(0)"
787 905 class="button"
788 906 onclick="restore_respository_tables()"
789 907 >
790 - <?php echo __( 'Restore' ); ?>
908 + <?php esc_html_e( 'Restore', 'wp-data-access' ); ?>
791 909 </a>
792 910 </div>
793 911 </fieldset>
794 912 </div>
@@ -794,20 +912,21 @@
794 912 </div>
795 913 <?php
796 914 }
797 915 ?>
916 + </div>
798 917 <div class="wpda-spacer"></div>
799 918 <a href="javascript:void(0)"
800 919 class="button"
801 - onclick=" if (confirm('<?php echo __( 'Backup repository tables?', 'wp-data-access' ); ?>')) { jQuery('#wpda-create-backup').submit(); }"
920 + onclick=" if (confirm('<?php esc_html_e( 'Backup repository tables?', 'wp-data-access' ); ?>')) { jQuery('#wpda-create-backup').submit(); }"
802 921 >
803 - <?php echo __( 'Create new repository backup' ); ?>
922 + <?php esc_html_e( 'Create new repository backup', 'wp-data-access' ); ?>
804 923 </a>
805 924 <a href="javascript:void(0)"
806 925 class="button <?php echo 0 === $no_backup_tables ? 'disabled' : ''; ?>"
807 - onclick="if (confirm('<?php echo __( 'Delete all backup tables?', 'wp-data-access' ) . '\n' . __( 'This action cannot be undone.', 'wp-data-access' ) . '\n' . __( '\\\'Cancel\\\' to stop, \\\'OK\\\' to delete.', 'wp-data-access' ); ?>')) { jQuery('#wpda-remove-all-backups').submit(); }"
926 + onclick="if (confirm('<?php echo esc_attr__( 'Delete all backup tables?', 'wp-data-access' ) . '\n' . esc_attr__( 'This action cannot be undone.', 'wp-data-access' ) . '\n' . esc_attr__( '\\\'Cancel\\\' to stop, \\\'OK\\\' to delete.', 'wp-data-access' ); ?>')) { jQuery('#wpda-remove-all-backups').submit(); }"
808 927 >
809 - <?php echo __( 'Delete all (' ) . esc_html( $no_backup_tables ) . __( ') repository backup tables' ); ?>
928 + <?php echo esc_attr__( 'Delete all (', 'wp-data-access' ) . esc_attr( $no_backup_tables ) . esc_attr__( ') repository backup tables', 'wp-data-access' ); ?>
810 929 </a>
811 930 </td>
812 931 </tr>
813 932
@@ -812,11 +931,83 @@
812 931 </tr>
813 932
814 933 <tr>
815 934 <th>
816 - <?php echo __( 'Table Settings', 'wp-data-access' ); ?>
935 + <?php esc_html_e( 'Apps', 'wp-data-access' ); ?>
817 936 </th>
818 937 <td>
938 + <span class="dashicons <?php echo $app_table_name_exists ? 'dashicons-yes' : 'dashicons-no'; ?>"></span>
939 + <?php echo esc_attr( $table ); ?>
940 + <strong><?php echo esc_attr( $app_table_name ); ?></strong>
941 + <?php echo $app_table_name_exists ? esc_attr( $found ) : esc_attr( $not_found ); ?>
942 + <?php
943 + if ( $app_table_name_exists ) {
944 + ?>
945 + <br/><br/>
946 + <span class="dashicons dashicons-yes"></span>
947 + <strong>
948 + <?php echo esc_attr( $no_app_items ); ?>
949 + <?php esc_html_e( 'apps defined in repository', 'wp-data-access' ); ?>
950 + </strong>
951 + <?php
952 + }
953 + ?>
954 + </td>
955 + </tr>
956 +
957 + <tr>
958 + <th>
959 + <?php esc_html_e( 'App Containers', 'wp-data-access' ); ?>
960 + </th>
961 + <td>
962 + <span class="dashicons <?php echo $app_container_table_name_exists ? 'dashicons-yes' : 'dashicons-no'; ?>"></span>
963 + <?php echo esc_attr( $table ); ?>
964 + <strong><?php echo esc_attr( $app_container_table_name ); ?></strong>
965 + <?php echo $app_container_table_name_exists ? esc_attr( $found ) : esc_attr( $not_found ); ?>
966 + <?php
967 + if ( $app_container_table_name_exists ) {
968 + ?>
969 + <br/><br/>
970 + <span class="dashicons dashicons-yes"></span>
971 + <strong>
972 + <?php echo esc_attr( $no_app_container_items ); ?>
973 + <?php esc_html_e( 'apps containers defined in repository', 'wp-data-access' ); ?>
974 + </strong>
975 + <?php
976 + }
977 + ?>
978 + </td>
979 + </tr>
980 +
981 + <tr>
982 + <th>
983 + <?php esc_html_e( 'App Apps', 'wp-data-access' ); ?>
984 + </th>
985 + <td>
986 + <span class="dashicons <?php echo $app_apps_table_name_exists ? 'dashicons-yes' : 'dashicons-no'; ?>"></span>
987 + <?php echo esc_attr( $table ); ?>
988 + <strong><?php echo esc_attr( $app_apps_table_name ); ?></strong>
989 + <?php echo $app_apps_table_name_exists ? esc_attr( $found ) : esc_attr( $not_found ); ?>
990 + <?php
991 + if ( $app_apps_table_name_exists ) {
992 + ?>
993 + <br/><br/>
994 + <span class="dashicons dashicons-yes"></span>
995 + <strong>
996 + <?php echo esc_attr( $no_app_apps_items ); ?>
997 + <?php esc_html_e( 'app apps defined in repository', 'wp-data-access' ); ?>
998 + </strong>
999 + <?php
1000 + }
1001 + ?>
1002 + </td>
1003 + </tr>
1004 +
1005 + <tr>
1006 + <th>
1007 + <?php esc_html_e( 'Table Settings', 'wp-data-access' ); ?>
1008 + </th>
1009 + <td>
819 1010 <span class="dashicons <?php echo $table_settings_table_exists ? 'dashicons-yes' : 'dashicons-no'; ?>"></span>
820 1011 <?php echo esc_attr( $table ); ?>
821 1012 <strong><?php echo esc_attr( $table_settings_table_name ); ?></strong>
822 1013 <?php echo $table_settings_table_exists ? esc_attr( $found ) : esc_attr( $not_found ); ?>
@@ -826,9 +1017,9 @@
826 1017 <br/><br/>
827 1018 <span class="dashicons dashicons-yes"></span>
828 1019 <strong>
829 1020 <?php echo esc_attr( $no_table_settings ); ?>
830 - <?php echo __( 'table settings defined in repository', 'wp-data-access' ); ?>
1021 + <?php esc_html_e( 'table settings defined in repository', 'wp-data-access' ); ?>
831 1022 </strong>
832 1023 <?php
833 1024 }
834 1025 ?>
@@ -836,9 +1027,9 @@
836 1027 </tr>
837 1028
838 1029 <tr>
839 1030 <th>
840 - <?php echo __( 'Manage Media', 'wp-data-access' ); ?>
1031 + <?php esc_html_e( 'Manage Media', 'wp-data-access' ); ?>
841 1032 </th>
842 1033 <td>
843 1034 <span class="dashicons <?php echo $media_table_exists ? 'dashicons-yes' : 'dashicons-no'; ?>"></span>
844 1035 <?php echo esc_attr( $table ); ?>
@@ -850,9 +1041,9 @@
850 1041 <br/><br/>
851 1042 <span class="dashicons dashicons-yes"></span>
852 1043 <strong>
853 1044 <?php echo esc_attr( $no_media ); ?>
854 - <?php echo __( 'media columns defined in repository', 'wp-data-access' ); ?>
1045 + <?php esc_html_e( 'media columns defined in repository', 'wp-data-access' ); ?>
855 1046 </strong>
856 1047 <?php
857 1048 }
858 1049 ?>
@@ -874,9 +1065,9 @@
874 1065 <br/><br/>
875 1066 <span class="dashicons dashicons-yes"></span>
876 1067 <strong>
877 1068 <?php echo esc_attr( $no_table_designs ); ?>
878 - <?php echo __( 'table designs in repository', 'wp-data-access' ); ?>
1069 + <?php esc_html_e( 'table designs in repository', 'wp-data-access' ); ?>
879 1070 </strong>
880 1071 <?php
881 1072 }
882 1073 ?>
@@ -912,9 +1103,9 @@
912 1103 <br/>
913 1104 <span class="dashicons dashicons-yes"></span>
914 1105 <strong>
915 1106 <?php echo esc_attr( $no_projects ); ?>
916 - <?php echo __( 'data projects in repository', 'wp-data-access' ); ?>
1107 + <?php esc_html_e( 'data projects in repository', 'wp-data-access' ); ?>
917 1108 </strong>
918 1109 <?php
919 1110 }
920 1111 if ( $data_projects_page_name_exists ) {
@@ -922,9 +1113,9 @@
922 1113 <br/>
923 1114 <span class="dashicons dashicons-yes"></span>
924 1115 <strong>
925 1116 <?php echo esc_attr( $no_pages ); ?>
926 - <?php echo __( 'project pages in repository', 'wp-data-access' ); ?>
1117 + <?php esc_html_e( 'project pages in repository', 'wp-data-access' ); ?>
927 1118 </strong>
928 1119 <?php
929 1120 }
930 1121 if ( $data_projects_table_name_exists ) {
@@ -932,9 +1123,9 @@
932 1123 <br/>
933 1124 <span class="dashicons dashicons-yes"></span>
934 1125 <strong>
935 1126 <?php echo esc_attr( $no_project_table_designs ); ?>
936 - <?php echo __( 'project tables in repository', 'wp-data-access' ); ?>
1127 + <?php esc_html_e( 'project tables in repository', 'wp-data-access' ); ?>
937 1128 </strong>
938 1129 <?php
939 1130 }
940 1131 ?>
@@ -956,9 +1147,9 @@
956 1147 <br/><br/>
957 1148 <span class="dashicons dashicons-yes"></span>
958 1149 <strong>
959 1150 <?php echo esc_attr( $no_data_publication ); ?>
960 - <?php echo __( 'data tables in repository', 'wp-data-access' ); ?>
1151 + <?php esc_html_e( 'data tables in repository', 'wp-data-access' ); ?>
961 1152 </strong>
962 1153 <?php
963 1154 }
964 1155 ?>
@@ -980,9 +1171,9 @@
980 1171 <br/><br/>
981 1172 <span class="dashicons dashicons-yes"></span>
982 1173 <strong>
983 1174 <?php echo esc_attr( $no_menu_items ); ?>
984 - <?php echo __( 'menus in repository', 'wp-data-access' ); ?>
1175 + <?php esc_html_e( 'menus in repository', 'wp-data-access' ); ?>
985 1176 </strong>
986 1177 <?php
987 1178 }
988 1179 ?>
@@ -990,9 +1181,9 @@
990 1181 </tr>
991 1182
992 1183 <tr>
993 1184 <th>
994 - <?php echo __( 'CSV Uploads', 'wp-data-access' ); ?>
1185 + <?php esc_html_e( 'CSV Uploads', 'wp-data-access' ); ?>
995 1186 </th>
996 1187 <td>
997 1188 <span class="dashicons <?php echo $csv_import_table_exists ? 'dashicons-yes' : 'dashicons-no'; ?>"></span>
998 1189 <?php echo esc_attr( $table ); ?>
@@ -1004,9 +1195,9 @@
1004 1195 <br/><br/>
1005 1196 <span class="dashicons dashicons-yes"></span>
1006 1197 <strong>
1007 1198 <?php echo esc_attr( $no_csv_import ); ?>
1008 - <?php echo __( 'menus in repository', 'wp-data-access' ); ?>
1199 + <?php esc_html_e( 'menus in repository', 'wp-data-access' ); ?>
1009 1200 </strong>
1010 1201 <?php
1011 1202 }
1012 1203 ?>
@@ -1028,9 +1219,9 @@
1028 1219 <br/><br/>
1029 1220 <span class="dashicons dashicons-yes"></span>
1030 1221 <strong>
1031 1222 <?php echo esc_attr( $no_logs ); ?>
1032 - <?php echo __( 'logging rows in repository', 'wp-data-access' ); ?>
1223 + <?php esc_html_e( 'logging rows in repository', 'wp-data-access' ); ?>
1033 1224 </strong>
1034 1225 <?php
1035 1226 }
1036 1227 ?>
@@ -1041,27 +1232,27 @@
1041 1232 <div class="wpda-table-settings-button">
1042 1233 <input type="hidden" name="action" value="save"/>
1043 1234 <button type="submit" class="button button-primary">
1044 1235 <i class="fas fa-check wpda_icon_on_button"></i>
1045 - <?php echo __( 'Save Manage Respository Settings', 'wp-data-access' ); ?>
1236 + <?php esc_html_e( 'Save Manage Respository Settings', 'wp-data-access' ); ?>
1046 1237 </button>
1047 1238 <a href="javascript:void(0)"
1048 - onclick="if (confirm('<?php echo __( 'Reset to defaults?', 'wp-data-access' ); ?>')) {
1239 + onclick="if (confirm('<?php esc_html_e( 'Reset to defaults?', 'wp-data-access' ); ?>')) {
1049 1240 jQuery('input[name=\'action\']').val('setdefaults');
1050 1241 jQuery('#wpda_settings_repository').trigger('submit');
1051 1242 }"
1052 1243 class="button button-secondary">
1053 1244 <i class="fas fa-times-circle wpda_icon_on_button"></i>
1054 - <?php echo __( 'Reset Manage Repository Settings To Defaults', 'wp-data-access' ); ?>
1245 + <?php esc_html_e( 'Reset Manage Repository Settings To Defaults', 'wp-data-access' ); ?>
1055 1246 </a>
1056 1247 <?php
1057 1248 $wpnonce_recreate = wp_create_nonce( 'wpda-settings-recreate-repository-' . WPDA::get_current_user_login() );
1058 1249 ?>
1059 - <a href="<?php echo admin_url( 'admin.php' ); // phpcs:ignore WordPress.Security.EscapeOutput ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository&repos=true&_wpnonce=<?php echo esc_attr( $wpnonce_recreate ); ?>"
1250 + <a href="<?php esc_url( admin_url( 'admin.php' ) ); ?>?page=<?php echo esc_attr( $this->page ); ?>&tab=repository&repos=true&_wpnonce=<?php echo esc_attr( $wpnonce_recreate ); ?>"
1060 1251 class="button button-secondary">
1061 1252 <i class="fas fa-redo wpda_icon_on_button"></i>
1062 - <?php echo __( 'Recreate', 'wp-data-access' ); ?> WP Data Access
1063 - <?php echo __( 'Repository', 'wp-data-access' ); ?>
1253 + <?php esc_html_e( 'Recreate', 'wp-data-access' ); ?> WP Data Access
1254 + <?php esc_html_e( 'Repository', 'wp-data-access' ); ?>
1064 1255 </a>
1065 1256 </div>
1066 1257 <?php wp_nonce_field( 'wpda-repository-settings-' . WPDA::get_current_user_login(), '_wpnonce', false ); ?>
1067 1258 </form>
@@ -1081,12 +1272,12 @@
1081 1272 ! $data_projects_table_name_exists ||
1082 1273 ! $data_publication_table_name_exists
1083 1274 ) {
1084 1275 ?>
1085 - <p><strong><?php echo __( 'Your repository has errors!', 'wp-data-access' ); ?></strong></p>
1276 + <p><strong><?php esc_html_e( 'Your repository has errors!', 'wp-data-access' ); ?></strong></p>
1086 1277 <p>
1087 - <?php echo __( 'Recreate the WP Data Access repository to solve this problem.', 'wp-data-access' ); ?>
1088 - <?php echo __( 'Please leave your comments on the support forum if the problem remains.', 'wp-data-access' ); ?>
1278 + <?php esc_html_e( 'Recreate the WP Data Access repository to solve this problem.', 'wp-data-access' ); ?>
1279 + <?php esc_html_e( 'Please leave your comments on the support forum if the problem remains.', 'wp-data-access' ); ?>
1089 1280 (<a href="https://wordpress.org/support/plugin/wp-data-access/" target="_blank">go to forum</a>)
1090 1281 </p>
1091 1282 <?php
1092 1283