File "WPDA_Design_Table_List_Table.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/wp-data-access/WPDataAccess/Design_Table/WPDA_Design_Table_List_Table.php
File size: 3.19 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Suppress "error - 0 - No summary was found for this file" on phpdoc generation
*
* @package WPDataAccess\Design_Table
*/
namespace WPDataAccess\Design_Table {
use WPDataAccess\List_Table\WPDA_List_Table;
use WPDataAccess\WPDA;
/**
* Class WPDA_Design_Table_List_Table
*
* @author Peter Schulz
* @since 1.1.0
*/
class WPDA_Design_Table_List_Table extends WPDA_List_Table {
/**
* WPDA_Design_Table_List_Table constructor
*
* @param array $args See {@see WPDA_List_Table::__construct()}.
*
* @since 1.1.0
*
* @see WPDA_List_Table
*/
public function __construct( $args = array() ) {
$args['column_headers'] = self::column_headers_labels();
$args['title'] = 'Data Designer';
parent::__construct( $args );
}
/**
* Add buttons new and import (overwritten)
*/
protected function add_header_button() {
?>
<form
method="post"
action="?page=<?php echo esc_attr( $this->page ); ?>"
style="display: inline-block; vertical-align: baseline;"
>
<div>
<input type="hidden" name="table_name" value="<?php echo esc_attr( $this->table_name ); ?>">
<input type="hidden" name="action" value="edit">
<button type="submit" class="page-title-action">
<i class="fas fa-plus-circle wpda_icon_on_button"></i>
<?php echo __( 'Design new table', 'wp-data-access' ); ?>
</button>
<?php
// Add import button to title.
if ( null !== $this->wpda_import ) {
$this->wpda_import->add_button();
}
?>
</div>
</form>
<?php
}
/**
* Overwrites method column_default to support static pages
*
* @param array $item
* @param string $column_name
*
* @return mixed|string
*/
public function column_default( $item, $column_name ) {
if ( 'wpda_table_name' === $column_name ) {
if ( null !== $item['wpda_table_design'] ) {
$table_structure = json_decode( $item['wpda_table_design'], true );
if ( isset( $table_structure['table'] ) ) {
$column_names = array_column( (array) $table_structure['table'], 'column_name' ); //phpcs:ignore - 8.1 proof
} else {
$column_names = array();
}
} else {
$column_names = array();
}
// Validate schema, table and column names
$warning = WPDA::validate_names( $item['wpda_schema_name'], $item['wpda_table_name'], $column_names );
if ( '' !== $warning ) {
return $item['wpda_table_name'] . $warning .
substr( parent::column_default( $item, $column_name ), strlen( $item['wpda_table_name'] ) );
}
}
if ( 'wpda_schema_name' === $column_name ) {
global $wpdb;
if ( $wpdb->dbname === $item[ $column_name ] ) {
return "WordPress database ({$item[ $column_name ]})";
}
}
return parent::column_default( $item, $column_name );
}
public static function column_headers_labels() {
return array(
'wpda_table_name' => __( 'Table name', 'wp-data-access' ),
'wpda_schema_name' => __( 'Database', 'wp-data-access' ),
'wpda_table_design' => __( 'Table structure', 'wp-data-access' ),
'wpda_date_created' => __( 'Creation date', 'wp-data-access' ),
'wpda_last_updated' => __( 'Last updated', 'wp-data-access' ),
);
}
}
}