define_constants();
// Actions
add_action( 'init', array( $this, 'register_post_type' ) );
add_action( 'sportspress_config_page', array( $this, 'sp_specs_config' ), 9 );
add_action( 'sportspress_include_post_type_handlers', array( $this, 'include_post_type_handler' ) );
// Filters
add_filter( 'sportspress_meta_boxes', array( $this, 'add_meta_boxes' ) );
add_filter( 'sportspress_screen_ids', array( $this, 'screen_ids' ) );
}
/**
* Define constants.
*/
private function define_constants() {
if ( !defined( 'SP_EVENT_SPECS_VERSION' ) )
define( 'SP_EVENT_SPECS_VERSION', '2.5.10' );
if ( !defined( 'SP_EVENT_SPECS_URL' ) )
define( 'SP_EVENT_SPECS_URL', plugin_dir_url( __FILE__ ) );
if ( !defined( 'SP_EVENT_SPECS_DIR' ) )
define( 'SP_EVENT_SPECS_DIR', plugin_dir_path( __FILE__ ) );
}
/**
* Register event specs post type
*/
public static function register_post_type() {
register_post_type( 'sp_spec',
apply_filters( 'sportspress_register_post_type_spec',
array(
'labels' => array(
'name' => __( 'Event Specs', 'sportspress' ),
'singular_name' => __( 'Event Spec', 'sportspress' ),
'add_new_item' => __( 'Add New Event Spec', 'sportspress' ),
'edit_item' => __( 'Edit Event Spec', 'sportspress' ),
'new_item' => __( 'New', 'sportspress' ),
'view_item' => __( 'View', 'sportspress' ),
'search_items' => __( 'Search', 'sportspress' ),
'not_found' => __( 'No results found.', 'sportspress' ),
'not_found_in_trash' => __( 'No results found.', 'sportspress' ),
),
'public' => false,
'show_ui' => true,
'capability_type' => 'sp_config',
'map_meta_cap' => true,
'publicly_queryable' => false,
'exclude_from_search' => true,
'hierarchical' => false,
'supports' => array( 'title', 'page-attributes', 'excerpt' ),
'has_archive' => false,
'show_in_nav_menus' => false,
'can_export' => false,
'show_in_menu' => false,
)
)
);
}
/**
* Add screen ids.
*
* @return array
*/
public function screen_ids( $ids ) {
return array_merge( $ids, array(
'edit-sp_spec',
'sp_spec',
) );
}
/**
* Conditonally load the class and functions only needed when viewing this post type.
*/
public function include_post_type_handler() {
include_once( SP()->plugin_path() . '/includes/admin/post-types/class-sp-admin-cpt-spec.php' );
}
/**
* Display Event Specs Table at Config Page
* @return null
*/
public function sp_specs_config() {
?>
array(
'title' => __( 'Specs', 'sportspress' ),
'save' => 'SP_Meta_Box_Spec_Details::save',
'output' => 'SP_Meta_Box_Spec_Details::output',
'context' => 'normal',
'priority' => 'high',
),
);
$meta_boxes['sp_event']['specs'] = array(
'title' => __( 'Specs', 'sportspress' ),
'save' => 'SP_Meta_Box_Event_Specs::save',
'output' => 'SP_Meta_Box_Event_Specs::output',
'context' => 'side',
'priority' => 'default',
);
return $meta_boxes;
}
}
endif;
new SportsPress_Event_Specs();