__( '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' ),
);
$args['edit_form_class'] = 'WPDataProjects\\Project\\WPDP_Project_Page_Form';
if ( isset( $args['mode'] ) ) {
$mode = $args['mode'];
} else {
wp_die( __( 'ERROR: Wrong arguments [missing mode]', 'wp-data-access' ) );
}
if ( 'view' === $mode ) {
$args['list_form_class'] = 'WPDataProjects\\Project\\WPDP_Project_Page_List_View';
} else {
$args['list_form_class'] = 'WPDataProjects\\Project\\WPDP_Project_Page_List';
}
parent::__construct( $schema_name, $table_name, $wpda_list_columns, $args, $relationship );
$this->title = 'Project';
}
/**
* Overwrites method show to add debug info
*
* This debug info can be helpful in case of project page structure errors
*
* @param bool $allow_save
* @param string $add_param
*/
public function show( $allow_save = true, $add_param = '' ) {
if ( 'on' === WPDA::get_option( WPDA::OPTION_PLUGIN_DEBUG ) && isset( $_REQUEST['project_id'] ) ) {
$project_id = sanitize_text_field( wp_unslash( $_REQUEST['project_id'] ) ); // input var okay.
global $wpdb;
$project_page_table_name = $wpdb->prefix . 'wpda_project_page';
$pages = $wpdb->get_results(
$wpdb->prepare(
" select * from `%1s` where project_id = %d and add_to_menu = 'Yes' order by page_sequence", // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
array(
WPDA::remove_backticks( $project_page_table_name ),
$project_id,
)
),
'ARRAY_A'
); // phpcs:ignore Standard.Category.SniffName.ErrorCode
$project_info = '';
$first_page = true;
foreach ( $pages as $page ) {
$wpdp = new WPDP_Project( $project_id, $page['page_id'] );
if ( null === $wpdp->get_project() ) {
wp_die( __( 'Data Project page not found [need a valid project_id and page_id]', 'wp-data-access' ) );
}
if ( ! $first_page ) {
$project_info .= '
';
}
$project_info .= "Project $project_id, page {$page['page_id']}:
";
$project_info .= json_encode( $wpdp->get_project() );
$first_page = false;
}
?>