<?php
/*
  Fichier : TEMPLATEPATH. '/inc/modules/tcp-Discussions.inc.php'
  Objet : Création d'un TCP
  Nom : TCP Discussions / Forum
  Description : Crée un nouveau TCP de discussion / forum
*/

// Création du TCP
function at111_init_TCP_Discussions() {
	$labels = array(
	    'name' => 'Discussions',
    	'singular_name' => 'Discussion',
    	'add_new' => 'Ajouter',
    	'add_new_item' => 'Ajouter un fil de dicusssion',
    	'edit_item' => 'Modifier',
    	'new_item' => 'Nouveau',
    	'all_items' => 'Tous les fils de discussion',
    	'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' => 'Forum'
  	);
 	$args = array(
    	'labels' => $labels,
    	'public' => true,
    	'publicly_queryable' => true,
    	'show_ui' => true, 
    	'show_in_menu' => true, 
    	'query_var' => true,
    	'rewrite' => array( 'slug' => 'forum' ),
    	'has_archive' => true,
//    	'hierarchical' => false,
    	'menu_position' => 20,
    	'menu_icon' => 'dashicons-format-status',
    	'supports' => array( 'title', 'editor', 'comments', 'author' )
  	); 
	// Enregistrement du TCP
	register_post_type( 'discussions', $args );
	
	// Labels des rubriques.
	$rubLabels = array(
		'name' => 'Thématiques',
		'singular_name' => 'Thématique',
		'search_items' => 'Rechercher',
		'popular_items' => 'Thématiques souvent utilisées',
		'all_items' => 'Toutes les thématiques',
		'edit_item' => 'Modifier une thématique',
		'update_item' => 'Mettre à jour une thématique',
		'add_new_item' => 'Ajouter une thématique',
		'new_item_name' => 'Nouvelle thématique'
	);

	// Rubriques.
	register_taxonomy('forum-thematique', 'discussions', array(
		'hierarchical' => true,
		'label' => 'Thématique',
		'labels' => $rubLabels,
		'rewrite' => array( 'slug' => 'forum-thematique' ),
		'show_in_nav_menus' => false,
		'show_admin_column' => true
	));
}
add_action('init', 'at111_init_TCP_Discussions');

// 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-Discussions_columns', 'my_edit_Discussions_columns' ) ;
function my_edit_Discussions_columns( $columns ) {
	$columns = array(
		'cb' => '<input type="checkbox" />',
		'title' => __( 'Titre' ),
		'forum-thematique' => __( 'Thématique(s)' ),
		'date' => __( 'Date de publication' )
	);
	return $columns;
}

// Remplissage des lignes du tableau
add_action( 'manage_Discussions_posts_custom_column', 'my_manage_Discussions_columns', 10, 2 );
function my_manage_Discussions_columns( $column, $post_id ) {
	global $post;
	switch( $column ) {
		case 'forum-thematique' :
			$terms = get_the_terms( $post_id, 'forum-thematique' );
			/* 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, 'forum-thematique' => $term->slug ), 'edit.php' ) ),
						esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'forum-thematique', '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 thématique trouvée' );
			}
			break;
		/* Break out */
		default :
			break;
	}
}