all-in-one-event-calendar/app/view/admin/organize.php
2017-11-09 17:36:04 +01:00

105 lines
3.5 KiB
PHP

<?php
/**
* The page to manage taxonomies.
*
* @author Time.ly Network Inc.
* @since 2.0
*
* @package AI1EC
* @subpackage AI1EC.View
*/
class Ai1ec_View_Organize extends Ai1ec_Base {
/**
* @var array The taxonomies for events
*/
protected $_taxonomies = array();
/**
* Register actions to draw the headers
*/
public function add_taxonomy_actions() {
$taxonomies = get_object_taxonomies( AI1EC_POST_TYPE, 'object' );
$dispatcher = $this->_registry->get( 'event.dispatcher' );
$taxonomy_metadata = array(
'events_categories' => array(
'icon' => 'ai1ec-fa ai1ec-fa-folder-open'
),
'events_tags' => array(
'icon' => 'ai1ec-fa ai1ec-fa-tags'
)
);
$taxonomy_metadata = apply_filters(
'ai1ec_add_custom_groups',
$taxonomy_metadata
);
do_action( 'ai1ec_taxonomy_management_css' );
foreach ( $taxonomies as $taxonomy => $data ) {
if ( true === $data->public ) {
$active_taxonomy =
isset( $_GET['taxonomy'] ) &&
$taxonomy === $_GET['taxonomy'];
$edit_url = $edit_label = '';
if ( isset( $taxonomy_metadata[$taxonomy]['url'] ) ) {
$edit_url = $taxonomy_metadata[$taxonomy]['url'];
$edit_label = $taxonomy_metadata[$taxonomy]['edit_label'];
}
$this->_taxonomies[] = array(
'taxonomy_name' => $taxonomy,
'url' => add_query_arg(
array(
'post_type' => AI1EC_POST_TYPE,
'taxonomy' => $taxonomy
),
admin_url( 'edit-tags.php' )
),
'name' => $data->labels->name,
'active' => $active_taxonomy,
'icon' => isset( $taxonomy_metadata[$taxonomy] ) ?
$taxonomy_metadata[$taxonomy]['icon'] :
'',
'edit_url' => $edit_url,
'edit_label' => $edit_label,
);
if ( $active_taxonomy ) {
$dispatcher->register_action(
$taxonomy . '_pre_add_form',
array( 'view.admin.organize', 'render_header' )
);
$dispatcher->register_action(
$taxonomy . '_pre_edit_form',
array( 'view.admin.organize', 'render_header' )
);
}
}
}
}
/**
* Render tabbed header to manage taxonomies.
*/
public function render_header() {
echo $this->get_header();
}
/**
* Generate and return tabbed header to manage taxonomies.
*
* @return string HTML markup for tabbed header
*/
public function get_header() {
return $this->_registry->get( 'theme.loader' )->get_file(
'organize/header.twig',
array(
'taxonomies' => apply_filters(
'ai1ec_custom_taxonomies',
$this->_taxonomies
),
'text_title' => Ai1ec_I18n::__( 'Organize Events' ),
),
true
)->get_content();
}
}