<?php
/*
Fichier : GESTION TCP PLUGIN DIR . '/tcp/tcp-Galeries.inc.php'
Objet : Création d'un TCP
Nom : TCP Galeries
Description : Crée un nouveau TCP pour la gestion des galeries
*/

// Création du TCP
function at111_init_TCP_Galeries() {
	$labels = array(
		'name' => 'Galeries',
		'singular_name' => 'Galerie',
		'add_new' => 'Ajouter',
		'add_new_item' => 'Ajouter un contenu',
		'edit_item' => 'Modifier',
		'new_item' => 'Nouveau',
		'all_items' => 'Tous les contenu',
		'view_item' => 'Visualiser',
		'search_items' => 'Rechercher',
		'not_found' =>  'Aucun contenu trouvé',
		'not_found_in_trash' => 'Aucun contenu trouvé dans la corbeille',
		'parent_item_colon' => '',
		'menu_name' => 'Galeries'
	);
	$args = array(
		'labels' => $labels,
		'public' => true,
		'publicly_queryable' => true,
		'show_ui' => true,
		'show_in_menu' => true,
		'query_var' => true,
		'rewrite' => array( 'slug' => 'galeries' ),
		'has_archive' => true,
//    	'hierarchical' => false,
		'menu_position' => 20,
		'menu_icon' => 'dashicons-images-alt2',
		'supports' => array( 'title', 'editor', 'thumbnail' , 'revisions' ),
		'show_in_rest' => true,
		'rest_base' => 'galeries',
		'rest_controller_class' => 'WP_REST_Posts_Controller'
	);
	// Enregistrement du TCP
	register_post_type( 'galeries', $args );

	// Labels des rubriques.
	$rubLabels = array(
		'name' => 'Catégories',
		'singular_name' => 'Catégorie',
		'search_items' => 'Rechercher',
		'popular_items' => 'Catégories souvent utilisées',
		'all_items' => 'Toutes les catégories',
		'edit_item' => 'Modifier une catégorie',
		'update_item' => 'Mettre à jour une catégorie',
		'add_new_item' => 'Ajouter une catégorie',
		'new_item_name' => 'Nouvelle catégorie'
	);

	// Catégories
	register_taxonomy('galeries-categorie', 'galeries', array(
		'hierarchical' => true,
		'label' => 'Catégories',
		'labels' => $rubLabels,
		'rewrite' => array('slug' => 'galeries-categorie'),
		'show_in_nav_menus' => false,
		'show_admin_column' => true
	));

}
add_action('init', 'at111_init_TCP_Galeries');

// Gestion des colonnes de la liste de contenus
// Pour créer un filtre sur les métadonnées ou autres, voir : http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types

// Création des entêtes de colonnes
add_filter( 'manage_edit-galeries_columns', 'my_edit_Galeries_columns' ) ;
function my_edit_Galeries_columns( $columns ) {
	$columns = array(
		'cb' => '<input type="checkbox" />',
		'title' => __( 'Titre' ),
		'date' => __( 'Date de publication' )
	);
	return $columns;
}

// Remplissage des lignes du tableau
add_action( 'manage_galeries_posts_custom_column', 'my_manage_Galeries_columns', 10, 2 );
function my_manage_Galeries_columns( $column, $post_id ) {
	global $post;
	switch( $column ) {
		case 'galeries-rubrique' :
			$terms = get_the_terms( $post_id, 'galeries-rubrique' );
			/* Si des taxonomies sont trouvées */
			if (!empty($terms)) {
				$out = array();
				/* On boucle sur chacune des taxonomies et on place un lien */
				foreach ( $terms as $term ) {
					$out[] = sprintf( '<a href="%s">%s</a>',
						esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'galeries-rubrique' => $term->slug ), 'edit.php' ) ),
						esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'galeries-rubrique', 'display' ) )
					);
				}
				/* On associe les taxonomies, séparées par une virgule */
				echo join( ', ', $out );
			}
			/* Si aucune taxonomie n'est trouvée, on affiche un message */
			else {
				_e( 'Aucune rubrique trouvée' );
			}
			break;
		/* Break out */
		default :
			break;
	}
}