<?php /** * Suppress "error - 0 - No summary was found for this file" on phpdoc generation * * @package WPDataProjects\Project */ namespace WPDataProjects\Project; use WPDataAccess\WPDA; use WPDataProjects\Parent_Child\WPDP_Parent_List_Table; use WPDataAccess\Utilities\WPDA_Import_Multi; /** * Class WPDP_Project_Project_List extends WPDP_Parent_List_Table * * @see WPDP_Parent_List_Table * * @author Peter Schulz * @since 2.0.0 */ class WPDP_Project_Project_List extends WPDP_Parent_List_Table { /** * WPDP_Project_Project_List constructor * * @param array $args */ public function __construct( array $args = array() ) { $args['column_headers'] = self::column_headers_labels(); $args['allow_import'] = 'off'; $args['allow_insert'] = 'on'; parent::__construct( $args ); try { // Instantiate WPDA_Import. $this->wpda_import = new WPDA_Import_Multi("?page={$this->page}", $this->schema_name, array(__( 'IMPORT DATA PROJECTS', 'wp-data-access' ), '')); } catch ( \Exception $e ) { // If import is turned off instantition will fail. Handle is set to null (check in future calls). $this->wpda_import = null; } } /** * Overwrites method add_header_button to add arguments to insert button */ protected function add_header_button() { ?> <form method="post" action="?page=<?php echo esc_attr( $this->page ); ?>" style="display: inline-block; vertical-align: unset;" > <div> <input type="hidden" name="action" value="new"> <input type="hidden" name="mode" value="edit"> <input type="hidden" name="table_name" value="<?php echo esc_attr( $this->table_name ); ?>"> <button type="submit" class="page-title-action wpda_tooltip" title="Add new project to repository" > <i class="fas fa-plus-circle wpda_icon_on_button"></i> <?php echo __( 'Add New', 'wp-data-access' ); ?> </button> </div> </form> <?php if ( null !== $this->wpda_import ) { $this->wpda_import->add_button( __( 'Import', 'wp-data-access' ) ); } } /** * Overwrites method column_default_add_action to rewrite export action * * Default export supports single table export only. Project export support exporting child rows as well. * * @param array $item * @param string $column_name * @param array $actions */ protected function column_default_add_action( $item, $column_name, &$actions ) { parent::column_default_add_action( $item, $column_name, $actions ); $wp_nonce_action = 'wpdp-export-project-' . $item['project_id']; $wp_nonce = wp_create_nonce( $wp_nonce_action ); $src = '?action=wpda_export_project&project_id=' . $item['project_id'] . '&wpnonce=' . $wp_nonce; $actions['export'] = sprintf( ' <a href="%s" target="_blank" title="Export project" class="wpda_tooltip"> <span style="white-space:nowrap"> <i class="fas fa-cloud-download wpda_icon_on_button"></i> %s </span> </a> ', $src, __( 'Export', 'wp-data-access' ) ); } public static function column_headers_labels() { return array( 'project_id' => __( 'Project ID', 'wp-data-access' ), 'project_name' => __( 'Project Name', 'wp-data-access' ), 'project_description' => __( 'Project Description', 'wp-data-access' ), 'add_to_menu' => __( 'Add To Menu', 'wp-data-access' ), 'menu_name' => __( 'Menu Name', 'wp-data-access' ), 'project_sequence' => __( 'Seq#', 'wp-data-access' ), ); } // Overwrite method public function show() { parent::show(); WPDA::shortcode_popup(); } public function get_bulk_actions() { $actions = parent::get_bulk_actions(); unset( $actions['bulk-export'], $actions['bulk-export-xml'], $actions['bulk-export-json'], $actions['bulk-export-excel'], $actions['bulk-export-csv'] ); return $actions; } }