<?php
function ljn_cpt_realisation()
{

	// On rentre les différentes dénominations de notre custom post type qui seront affichées dans l'administration
	$labels = array(
		// Le nom au pluriel
		'name'                => _x('Réalisations', 'Post Type General Name'),
		// Le nom au singulier
		'singular_name'       => _x('Réalisation', 'Post Type Singular Name'),
		// Le libellé affiché dans le menu
		'menu_name'           => __('Réalisations'),
		// Les différents libellés de l'administration
		'all_items'           => __('Toutes les réalisations'),
		'view_item'           => __('Voir la réalisation'),
		'add_new_item'        => __('Ajouter une nouvelle réalisation'),
		'add_new'             => __('Ajouter'),
		'edit_item'           => __('Editer la réalisation'),
		'update_item'         => __('Modifier la réalisation'),
		'search_items'        => __('Rechercher une réalisation'),
		'not_found'           => __('Non trouvée'),
		'not_found_in_trash'  => __('Non trouvée dans la corbeille'),
	);

	// On peut définir ici d'autres options pour notre custom post type

	$args = array(
		'label'               => __('Réalisations'),
		'description'         => __('Toutes les réalisations'),
		'labels'              => $labels,
		'menu_icon'           => 'dashicons-palmtree',
		// On définit les options disponibles dans l'éditeur de notre custom post type ( un titre, un auteur...)
		'supports'            => array(
			'title',
			'editor',
			'thumbnail',
			'excerpt',
			'custom-fields',
			'revisions',
			'page-attributes',
		),
		/*
        * Différentes options supplémentaires
        */
		'show_in_rest' => true,
		'rest_base' => 'realisations',
		'rest_controller_class' => 'WP_REST_Posts_Controller',
		'hierarchical'        => false,
		'public'              => true,
		'has_archive'         => false,
		'rewrite'			  => array('slug' => 'realisation'),
		'capability_type'     => 'post',
		'menu_position'       => 5,
		'can_export'          => true,
		'exclude_from_search' => false,
		'publicly_queryable'  => true,
		'show_ui'             => true,
		'show_in_menu'        => true,
		'show_in_nav_menus'   => true,
		'show_in_admin_bar'   => true,

	);

	// On enregistre notre custom post type qu'on nomme ici "serietv" et ses arguments
	register_post_type('realisation', $args);
}

add_action('init', 'ljn_cpt_realisation', 0);

add_filter('manage_edit-realisation_columns', function ($columns) {
	$new_columns = array();

	foreach ($columns as $key => $label) {
		$new_columns[$key] = $label;

		if ($key === 'title') {
			$new_columns['realisation_grid_thumbnail'] = __('Vignette grille');
			$new_columns['realisation_aspect_ratio'] = __('Format');
		}
	}

	return $new_columns;
});

add_action('manage_realisation_posts_custom_column', function ($column, $post_id) {
	if ($column === 'realisation_grid_thumbnail') {
		$vignette = get_field('vignette', $post_id);
		$aspect_ratio = get_field('aspect_ratio', $post_id);

		if (!$vignette) {
			echo '—';
			return;
		}

		$ratio_style = '16 / 18';
		if (is_string($aspect_ratio) && preg_match('/^\s*(\d+(?:\.\d+)?)\s*\/\s*(\d+(?:\.\d+)?)\s*$/', $aspect_ratio, $matches)) {
			$ratio_style = $matches[1] . ' / ' . $matches[2];
		}

		echo '<div style="width:72px;aspect-ratio:' . esc_attr($ratio_style) . ';overflow:hidden;border-radius:2px;background:#e5e7eb;">';
		echo wp_get_attachment_image($vignette, 'medium', false, array(
			'style' => 'width:100%;height:100%;object-fit:cover;display:block;'
		));
		echo '</div>';
		return;
	}

	if ($column === 'realisation_aspect_ratio') {
		$aspect_ratio = get_field('aspect_ratio', $post_id);
		echo $aspect_ratio ? esc_html($aspect_ratio) : '—';
	}
}, 10, 2);

add_action('admin_head-edit.php', function () {
	$screen = get_current_screen();
	if (!$screen || $screen->post_type !== 'realisation') {
		return;
	}
	?>
	<style>
		.column-realisation_grid_thumbnail {
			width: 100px;
		}

		.column-realisation_aspect_ratio {
			width: 110px;
		}

		.edit-php.post-type-realisation .wp-list-table tbody tr:nth-child(4n) td {
			border-bottom: 4px solid #E24D27;
		}

	</style>
	<?php
});




// Désactiver commentaires
add_action('admin_menu', function () {
	// remove_menu_page( 'edit.php' );
	remove_menu_page('edit-comments.php');
});



add_action('wp_before_admin_bar_render', function () {
	global $wp_admin_bar;

	// Supprimer l'élément "Commentaires" de la barre d'administration
	$wp_admin_bar->remove_menu('comments');

	$wp_admin_bar->remove_node('new-post');
});
