<?php
/**
 * Functions du thème enfant Twenty Twenty-Five
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/**
 * 1) Charger les styles du thème parent + enfant
 */
function dp_child_enqueue_styles() {
    $parent_style = 'twentytwentyfive-style'; // handle du parent (on s'en sort même si ce n'est pas parfait)

    // Style du parent
    wp_enqueue_style(
        $parent_style,
        get_template_directory_uri() . '/style.css'
    );

    // Style du thème enfant
    wp_enqueue_style(
        'twentytwentyfive-child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style ),
        wp_get_theme()->get( 'Version' )
    );
}
add_action( 'wp_enqueue_scripts', 'dp_child_enqueue_styles' );


/**
 * 2) Création des rôles personnalisés : Visiteur et Animateur
 *
 * À ne faire qu'une fois normalement, mais ce code peut rester là
 * (WordPress ne va pas recréer les rôles à chaque fois, il va juste s'assurer qu'ils existent).
 */
function dp_creer_roles_personnalises() {

    // --- Rôle VISITEUR ---
    if ( ! get_role( 'visiteur' ) ) {
        add_role(
            'visiteur',
            'Visiteur',
            array(
                'read'           => true,  // peut lire le contenu réservé
                'edit_posts'     => false, // pas d'écriture d'articles
                'edit_pages'     => false,
                'publish_posts'  => false,
                'upload_files'   => false,
                'delete_posts'   => false,
                'moderate_comments' => false,
            )
        );
    }

    // --- Rôle ANIMATEUR ---
    if ( ! get_role( 'animateur' ) ) {
        add_role(
            'animateur',
            'Animateur',
            array(
                'read'                   => true,
                'edit_posts'             => true,
                'edit_published_posts'   => true,
                'delete_posts'           => true,
                'delete_published_posts' => true,
                'publish_posts'          => true,

                'edit_pages'             => true,
                'edit_published_pages'   => true,
                'publish_pages'          => true,
                'delete_pages'           => true,
                'delete_published_pages' => true,

                'upload_files'           => true,

                // Pas de gestion du site/global (pas manage_options, etc.)
            )
        );
    }
}
add_action( 'init', 'dp_creer_roles_personnalises' );
/* Fin création rôles */


/**
 * 3) Shortcodes personnalisés
 *    - Ici on ajoutera [page_discussion]
 *    - Et plus tard [blog_filtrable_relevanssi], etc.
 */

/* Exemple de squelette pour le shortcode de discussion */
function dp_page_discussion_shortcode( $atts ) {
    if ( ! is_singular() ) {
        return '';
    }

    $post_id = get_the_ID();

    // Si tu veux, plus tard, on pourra vérifier les rôles ici.
    // if ( ! is_user_logged_in() ) { ... }

    // Vérifie que les commentaires sont ouverts pour ce contenu
    if ( ! comments_open( $post_id ) ) {
        return '<p>La discussion n’est pas ouverte pour cette page.</p>';
    }

    ob_start();
    ?>
    <div class="dp-discussion">
        <h2 class="dp-discussion-titre">Discussion</h2>

        <div class="dp-discussion-liste">
            <?php
            $comments = get_comments( array(
                'post_id' => $post_id,
                'status'  => 'approve',
                'order'   => 'ASC',
            ) );

            if ( ! empty( $comments ) ) :
                ?>
                <ul class="dp-commentaires">
                    <?php
                    wp_list_comments( array(
                        'style'      => 'ul',
                        'short_ping' => true,
                        'avatar_size'=> 32,
                    ), $comments );
                    ?>
                </ul>
                <?php
            else :
                ?>
                <p>Aucun message pour le moment. Lancez la discussion&nbsp;!</p>
                <?php
            endif;
            ?>
        </div>

        <div class="dp-discussion-formulaire">
            <?php
            comment_form( array(
                'title_reply'          => 'Ajouter un message',
                'title_reply_to'       => 'Répondre à %s',
                'label_submit'         => 'Envoyer',
                'comment_notes_before' => '',
                'comment_notes_after'  => '',
            ), $post_id );
            ?>
        </div>
    </div>
    <?php

    return ob_get_clean();
}
add_shortcode( 'page_discussion', 'dp_page_discussion_shortcode' );
/* Fin shortcode discussion */


/**
 * 4) Protection globale du site (DÉSACTIVÉE AU DÉPART)
 *
 * Quand tu voudras restreindre tout le site aux connectés,
 * on décommentera ce bloc et on adaptera le slug de la page publique.
 */

// function dp_restriction_site_global() {
//     if ( is_user_logged_in() ) {
//         return;
//     }
//
//     if ( is_admin() || wp_doing_ajax() ) {
//         return;
//     }
//
//     // Slug de la page publique (à adapter, ex: 'accueil-public')
//     $public_slug = 'accueil-public';
//
//     if ( ! is_page( $public_slug ) ) {
//         wp_redirect( home_url( '/' . $public_slug . '/' ) );
//         exit;
//     }
// }
// add_action( 'template_redirect', 'dp_restriction_site_global' );
/* Fin protection globale */


/**
 * 5) Espace réservé pour ta future deuxième collection d'articles
 *
 * Ici, plus tard, on pourra ajouter :
 * - register_post_type( 'journal2', ... )
 * - register_taxonomy( 'journal2_sujet', ... ), etc.
 */

// function dp_register_journal2_cpt() {
//     // CPT + taxonomies viendront ici plus tard
// }
// add_action( 'init', 'dp_register_journal2_cpt' );