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

// Création du TCP
function at111_init_TCP_Trombinoscope() {
	$labels = array(
	    'name' => 'Trombinoscope des élus',
    	'singular_name' => 'Élu',
    	'add_new' => 'Ajouter un élu',
    	'add_new_item' => 'Ajouter un élu',
    	'edit_item' => 'Modifier',
    	'new_item' => 'Nouveau',
    	'all_items' => 'Tous les élus',
    	'view_item' => 'Visualiser',
    	'search_items' => 'Rechercher',
    	'not_found' =>  'Aucun élu trouvé',
    	'not_found_in_trash' => 'Aucun élu trouvé dans la corbeille', 
    	'parent_item_colon' => '',
    	'menu_name' => 'Les élus'
  	);
 	$args = array(
    	'labels' => $labels,
    	'public' => true,
    	'publicly_queryable' => true,
    	'show_ui' => true, 
    	'show_in_menu' => true, 
    	'query_var' => true,
    	'rewrite' => array( 'slug' => 'elus' ),
    	'exclude_from_search' => true, // ON EXCLUE CE TCP DE LA RECHERCHE !
    	'has_archive' => false, 
    	'hierarchical' => true,
    	'menu_position' => 20,
    	'menu_icon' => 'dashicons-awards',
    	'supports' => array( 'title', 'editor', 'thumbnail' , 'revisions' )
  	); 
	// Enregistrement du TCP
	register_post_type( 'elus', $args );

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

	// Rubriques.
	register_taxonomy('elus-fonction', 'elus', array(
		'hierarchical' => true,
		'label' => 'Fonctions',
		'labels' => $rubLabels,
		'rewrite' => array( 'slug' => 'elus-fonction' ),
		'show_in_nav_menus' => false,
		'show_admin_column' => true
	));

	// Labels des rubriques.
	$rubLabels2 = array(
		'name' => 'Commissions',
		'singular_name' => 'Commission',
		'search_items' => 'Rechercher',
		'popular_items' => 'Commissions souvent utilisées',
		'all_items' => 'Toutes les commissions',
		'edit_item' => 'Modifier une commission',
		'update_item' => 'Mettre à jour une commission',
		'add_new_item' => 'Ajouter une commission',
		'new_item_name' => 'Nouvelle commission'
	);

	// Rubriques.
	register_taxonomy('elus-commission', 'elus', array(
		'hierarchical' => true,
		'label' => 'Commissions',
		'labels' => $rubLabels2,
		'rewrite' => array( 'slug' => 'elus-comission' ),
		'show_in_nav_menus' => false,
		'show_admin_column' => true
	));

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

// 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-elus_columns', 'my_edit_Trombinoscope_columns' ) ;
function my_edit_Trombinoscope_columns( $columns ) {
	$columns = array(
		'cb' => '<input type="checkbox" />',
		'title' => __( 'Nom de l’élu' ),
		'elus-fonction' => __( 'Fonction de l’élu' ),
		'elus-commission' => __( 'Commission de l’élu' ),
		'date' => __( 'Date de publication' )
	);
	return $columns;
}
// Remplissage des lignes du tableau
add_action( 'manage_elus_posts_custom_column', 'my_manage_Elus_columns', 10, 2 );
function my_manage_Elus_columns( $column, $post_id ) {
	global $post;
	switch( $column ) {
		case 'elus-fonction' :
			$terms = get_the_terms( $post_id, 'elus-fonction' );
			/* 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, 'elus-fonction' => $term->slug ), 'edit.php' ) ),
						esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'elus-fonction', '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 fonction trouvée pour cet élu' );
			}
			break;
		case 'elus-commission' :
			$terms = get_the_terms( $post_id, 'elus-commission' );
			/* 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, 'elus-commission' => $term->slug ), 'edit.php' ) ),
						esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'elus-commission', '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 commission trouvée pour cet élu' );
			}
			break;
		/* Break out */
		default :
			break;
	}
}