File: /var/www/html/wp-content/plugins/jet-engine/includes/components/taxonomies/pages/list.php
<?php
/**
* Taxonomies list page
*/
// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
die;
}
if ( ! class_exists( 'Jet_Engine_CPT_Tax_Page_List' ) ) {
/**
* Define Jet_Engine_CPT_Tax_Page_List class
*/
class Jet_Engine_CPT_Tax_Page_List extends Jet_Engine_CPT_Page_Base {
public $is_default = true;
public $engine_types = null;
/**
* Class constructor
*/
public function __construct( $manager ) {
parent::__construct( $manager );
add_action( 'jet-engine/taxonomies/page/after-title', array( $this, 'add_new_btn' ) );
}
/**
* Add new post type button
*/
public function add_new_btn( $page ) {
if ( $page->get_slug() !== $this->get_slug() ) {
return;
}
?>
<a class="page-title-action" href="<?php echo $this->manager->get_page_link( 'add' ); ?>"><?php
_e( 'Add New', 'jet-engine' );
?></a>
<?php
jet_engine()->get_video_help_popup( array(
'popup_title' => __( 'How to add a new Custom Taxonomy?', 'jet-engine' ),
'embed' => 'https://www.youtube.com/embed/hxYkMiKNk-E',
) )->wp_page_popup();
}
/**
* Page slug
*
* @return string
*/
public function get_slug() {
return 'list';
}
/**
* Page name
*
* @return string
*/
public function get_name() {
return esc_html__( 'Custom Taxonomies List', 'jet-engine' );
}
/**
* Register add controls
* @return [type] [description]
*/
public function page_specific_assets() {
$module_data = jet_engine()->framework->get_included_module_data( 'cherry-x-vue-ui.php' );
$ui = new CX_Vue_UI( $module_data );
$ui->enqueue_assets();
wp_register_script(
'jet-engine-cpt-delete-dialog',
jet_engine()->taxonomies->component_url( 'assets/js/delete-dialog.js' ),
array( 'cx-vue-ui', 'wp-api-fetch', ),
jet_engine()->get_version(),
true
);
wp_localize_script(
'jet-engine-cpt-delete-dialog',
'JetEngineCPTDeleteDialog',
array(
'taxonomies' => Jet_Engine_Tools::get_taxonomies_for_js(),
'api_path' => jet_engine()->api->get_route( 'delete-taxonomy' ),
'redirect' => $this->manager->get_page_link( 'list' ),
)
);
wp_enqueue_script(
'jet-engine-cpt-list',
jet_engine()->taxonomies->component_url( 'assets/js/list.js' ),
array( 'cx-vue-ui', 'wp-api-fetch', 'jet-engine-cpt-delete-dialog' ),
jet_engine()->get_version(),
true
);
wp_localize_script(
'jet-engine-cpt-list',
'JetEngineCPTListConfig',
array(
'api_path' => jet_engine()->api->get_route( 'get-taxonomies' ),
'api_path_copy' => jet_engine()->api->get_route( 'copy-taxonomy' ),
'edit_link' => $this->manager->get_edit_item_link( '%id%' ),
'built_in_types' => $this->get_built_in_types(),
'engine_types' => array_values( $this->get_engine_types() ),
'notices' => array(
'copied' => __( 'Copied!', 'jet-engine' ),
),
)
);
add_action( 'admin_footer', array( $this, 'add_page_template' ) );
}
/**
* Returns post types registered by JetEngine
*
* @return [type] [description]
*/
public function get_engine_types() {
if ( null !== $this->engine_types ) {
return $this->engine_types;
}
$this->engine_types = array();
$items = $this->manager->data->get_items();
if ( ! empty( $items ) ) {
foreach ( $items as $item ) {
$item['labels'] = maybe_unserialize( $item['labels'] );
$item['args'] = maybe_unserialize( $item['args'] );
$this->engine_types[ $item['slug'] ] = array(
'slug' => $item['slug'],
'id' => $item['id'],
'labels' => array(
'name' => $item['labels']['name'],
),
);
if ( ! empty( $item['args']['rewrite'] ) && ! empty( $item['args']['rewrite_slug'] )
&& $item['slug'] !== $item['args']['rewrite_slug']
) {
$this->engine_types[ $item['slug'] ]['rewrite_slug'] = $item['args']['rewrite_slug'];
}
}
}
return $this->engine_types;
}
/**
* Get built-in post types
*
* @return [type] [description]
*/
public function get_built_in_types() {
$objects = get_taxonomies( array(), 'objects' );
$result = array();
$excluded = apply_filters( 'jet-engine/taxonomies/excluded-built-in-types', array(
'link_category',
'wp_theme',
'post_format',
'nav_menu',
) );
$engine_types = $this->get_engine_types();
foreach ( $objects as $object ) {
if ( in_array( $object->name, $excluded ) || isset( $engine_types[ $object->name ] ) ) {
continue;
}
$tax_config = array(
'slug' => $object->name,
'id' => -1,
'labels' => array(
'name' => $object->label,
),
);
if ( ! empty( $object->rewrite ) && ! empty( $object->rewrite['slug'] )
&& $object->name !== $object->rewrite['slug']
) {
$tax_config['rewrite_slug'] = $object->rewrite['slug'];
}
$result[] = $tax_config;
}
return $result;
}
/**
* Print add/edit page template
*/
public function add_page_template() {
ob_start();
include jet_engine()->taxonomies->component_path( 'templates/list.php' );
$content = ob_get_clean();
printf( '<script type="text/x-template" id="jet-cpt-list">%s</script>', $content );
ob_start();
include jet_engine()->taxonomies->component_path( 'templates/delete-dialog.php' );
$content = ob_get_clean();
printf( '<script type="text/x-template" id="jet-cpt-delete-dialog">%s</script>', $content );
}
/**
* Renderer callback
*
* @return void
*/
public function render_page() {
?>
<br>
<div id="jet_cpt_list"></div>
<?php
}
}
}