<?php
/**
 * Functions.php - дополнительные функции темы ЦДО Кяхта
 * Тема: my-custom-theme
 */

// Подключаем шрифт Inter
function my_custom_theme_fonts() {
    wp_enqueue_style( 
        'my-custom-google-fonts', 
        'https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap', 
        array(), 
        null 
    );
}
add_action( 'wp_enqueue_scripts', 'my_custom_theme_fonts' );

// Настройки темы
function my_custom_theme_setup() {
    // Включаем поддержку Site Editor
    add_theme_support( 'block-templates' );
    add_theme_support( 'block-template-parts' );
    
    // Поддержка логотипа
    add_theme_support( 'custom-logo', array(
        'height'      => 60,
        'width'       => 200,
        'flex-height' => true,
        'flex-width'  => true,
    ) );

    add_theme_support( 'title-tag' );
    add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
    
    // Регистрируем меню
    register_nav_menus(
        array(
            'primary' => __( 'Основное меню', 'my-custom-theme' ),
            'footer'  => __( 'Меню в подвале', 'my-custom-theme' ),
        )
    );
}
add_action( 'after_setup_theme', 'my_custom_theme_setup' );

// Принудительное подключение style.css
function my_custom_theme_enqueue_styles() {
    wp_enqueue_style( 'my-custom-theme-style', get_stylesheet_uri(), array(), wp_get_theme()->get('Version') );
}
add_action( 'wp_enqueue_scripts', 'my_custom_theme_enqueue_styles' );

// =============================================
// ПОДКЛЮЧЕНИЕ ДОПОЛНИТЕЛЬНЫХ CSS-ФАЙЛОВ
// =============================================
function my_custom_theme_extra_styles() {
    // Подключаем стили для виджетов
    wp_enqueue_style(
        'my-custom-theme-widgets',
        get_template_directory_uri() . '/css/widgets.css',
        array(),
        '1.0.0'
    );
    
    // 🔹 Подключаем стили для паттерна "Полезные ссылки"
    wp_enqueue_style(
        'useful-links-pattern',
        get_template_directory_uri() . '/css/patterns/useful-links.css',
        array(),
        '1.0.1'
    );
	// 🔹 ДОБАВЬТЕ ЭТО — стили для бокового меню
    wp_enqueue_style(
        'sidebar-menu-pattern',
        get_template_directory_uri() . '/css/patterns/sidebar-menu.css',
        array(),
        '1.0.0'
    );
}
add_action('wp_enqueue_scripts', 'my_custom_theme_extra_styles');

// =============================================
// ПРИНУДИТЕЛЬНАЯ РЕГИСТРАЦИЯ ПАТТЕРНОВ
// =============================================

// 1. Сначала создаём категорию для наших паттернов
function my_custom_theme_register_pattern_category() {
    if ( function_exists( 'register_block_pattern_category' ) ) {
        register_block_pattern_category(
            'cdo-kyakhta',
            array( 'label' => __( 'ЦДО Кяхта', 'my-custom-theme' ) )
        );
    }
}
add_action( 'init', 'my_custom_theme_register_pattern_category' );

// 2. Вручную регистрируем каждый паттерн из папки
/* function my_custom_theme_register_patterns() {
    if ( ! function_exists( 'register_block_pattern' ) ) {
        return;
    }
    
    // Путь к папке с паттернами
    $pattern_dir = get_template_directory() . '/patterns/';
    
    // Проверяем существование папки
    if ( ! file_exists( $pattern_dir ) ) {
        return;
    }
    
    // Получаем все PHP файлы
    $pattern_files = glob( $pattern_dir . '*.php' );
    
    foreach ( $pattern_files as $file ) {
        // Получаем содержимое файла
        $file_content = file_get_contents( $file );
        
        // Извлекаем заголовок из комментария в начале файла
        $file_data = get_file_data( $file, array(
            'title'       => 'Title',
            'slug'        => 'Slug',
            'description' => 'Description',
            'categories'  => 'Categories',
        ) );
        
        // Если slug не указан, используем имя файла
        $slug = ! empty( $file_data['slug'] ) ? $file_data['slug'] : basename( $file, '.php' );
        
        // Разбираем категории
        $categories = array();
        if ( ! empty( $file_data['categories'] ) ) {
            $categories = array_map( 'trim', explode( ',', $file_data['categories'] ) );
        }
        
        // Добавляем нашу категорию по умолчанию
        if ( ! in_array( 'cdo-kyakhta', $categories ) ) {
            $categories[] = 'cdo-kyakhta';
        }
        
        // Регистрируем паттерн
        register_block_pattern(
            'my-custom-theme/' . $slug,
            array(
                'title'       => ! empty( $file_data['title'] ) ? $file_data['title'] : basename( $file, '.php' ),
                'description' => ! empty( $file_data['description'] ) ? $file_data['description'] : '',
                'content'     => $file_content,
                'categories'  => $categories,
            )
        );
    }
}
add_action( 'init', 'my_custom_theme_register_patterns', 20 ); */

// Очистка кэша меню
add_action('init', function() {
    if (isset($_GET['clear_nav'])) {
        $locations = get_nav_menu_locations();
        foreach($locations as $location => $menu_id) {
            if (function_exists('flush_block_navigation_area_cache')) {
                flush_block_navigation_area_cache($location);
            }
        }
        wp_redirect(remove_query_arg('clear_nav'));
        exit;
    }
});

// =============================================
// ПОДКЛЮЧЕНИЕ JAVASCRIPT
// =============================================
function my_custom_theme_scripts() {
    // Подключаем jQuery (уже есть в WordPress)
    wp_enqueue_script('jquery');
    
    // Подключаем наш кастомный JS
    wp_enqueue_script(
        'my-custom-theme-script',
        get_template_directory_uri() . '/js/custom.js',
        array('jquery'),
        '1.0.0',
        true // В футере
    );
}
add_action('wp_enqueue_scripts', 'my_custom_theme_scripts');

// =============================================
// КАСТОМНЫЙ БЛОК: МЕНЮ ПРОФИЛЯ
// =============================================

// Регистрируем блок
function register_profile_menu_block() {
    // Проверяем, существует ли функция register_block_type
    if ( function_exists( 'register_block_type' ) ) {
        
        // Регистрируем блок
        register_block_type( 'my-custom-theme/profile-menu', array(
            'render_callback' => 'render_profile_menu_block',
            'attributes'      => array(),
        ) );
    }
}
add_action( 'init', 'register_profile_menu_block' );

// Функция рендеринга блока
function render_profile_menu_block() {
    ob_start();
    ?>
    
    <div class="profile-menu-block">
        <?php if ( is_user_logged_in() ) : 
            $current_user = wp_get_current_user();
            $user_id = $current_user->ID;
            
            // Проверка прав для админки
            $can_access_admin = (
                current_user_can('administrator') || 
                current_user_can('editor') || 
                current_user_can('custom_moderator') ||
                current_user_can('custom_leadership') ||
                current_user_can('custom_teacher') ||
                current_user_can('custom_junior_editor')
            );
            
            // Ссылки Ultimate Member
            $profile_url = home_url('/мой-профиль/');
            $account_url = home_url('/настройки-аккаунта/');
            
            // Правильный URL выхода для Ultimate Member
            if ( function_exists('um_get_core_page') ) {
                $logout_url = um_get_core_page('logout');
            } else {
                $logout_url = wp_logout_url( home_url() );
            }
            
            $messages_url = home_url('/сообщения/'); // Пока нет, но задел на будущее
            $files_url = home_url('/мои-файлы/'); // Пока нет, но задел на будущее
        ?>
            <div class="profile-menu-container">
                <div class="profile-trigger">
                    <div class="profile-avatar">
                        <?php echo get_avatar( $user_id, 32, '', '', array('class' => 'avatar') ); ?>
                    </div>
                    <span class="profile-name"><?php echo esc_html( $current_user->display_name ); ?></span>
                    <span class="profile-arrow">▼</span>
                </div>
                
                <div class="profile-dropdown">
                    <ul>
                        <li><a href="<?php echo esc_url( $profile_url ); ?>">Мой профиль</a></li>
                        <li><a href="<?php echo esc_url( $messages_url ); ?>">Сообщения</a></li>
                        <li><a href="<?php echo esc_url( $account_url ); ?>">Настройки профиля</a></li>
                        
                        <?php if ( $can_access_admin ) : ?>
                            <li class="divider"></li>
                            <li><a href="<?php echo esc_url( admin_url() ); ?>">Админ панель</a></li>
                        <?php endif; ?>
                        
                        <?php if ( $can_access_admin ) : // Заменим позже ?>
                            <li><a href="<?php echo esc_url( $files_url ); ?>">Мои файлы</a></li>
                        <?php endif; ?>
                        
                        <li class="divider"></li>
                        <li><a href="<?php echo esc_url( $logout_url ); ?>">Выйти</a></li>
                    </ul>
                </div>
            </div>
            
        <?php else : ?>
            <div class="profile-menu-login">
                <a href="<?php echo esc_url( home_url('/вход/') ); ?>" class="profile-login-btn">Войти</a>
                <a href="<?php echo esc_url( home_url('/регистрация/') ); ?>" class="profile-register-btn">Регистрация</a>
            </div>
        <?php endif; ?>
    </div>
    
    <?php
    return ob_get_clean();
}

// =============================================
// ПОДКЛЮЧЕНИЕ СКРИПТА ДЛЯ СЛАБОВИДЯЩИХ
// =============================================
function my_custom_theme_blind_script() {
    wp_enqueue_script(
        'blind-mode-script',
        get_template_directory_uri() . '/js/blind-mode.js',
        array('jquery'),
        '1.0.0',
        true
    );
}
add_action('wp_enqueue_scripts', 'my_custom_theme_blind_script');

// =============================================
// ПОДКЛЮЧЕНИЕ СКРИПТА ПОИСКА
// =============================================
function my_custom_theme_search_script() {
    wp_enqueue_script(
        'search-toggle-script',
        get_template_directory_uri() . '/js/search-toggle.js',
        array('jquery'),
        '1.0.0',
        true
    );
}
add_action('wp_enqueue_scripts', 'my_custom_theme_search_script');

// =============================================
// РЕГИСТРАЦИЯ ОБЛАСТИ ДЛЯ ВИДЖЕТОВ
// =============================================
function my_custom_theme_widgets_init() {
    register_sidebar(array(
        'name'          => __('Главная страница - левая колонка', 'my-custom-theme'),
        'id'            => 'home-left',
        'description'   => __('Виджеты для левой колонки на главной', 'my-custom-theme'),
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget'  => '</div>',
        'before_title'  => '<h3 class="widget-title">',
        'after_title'   => '</h3>',
    ));
    
    register_sidebar(array(
        'name'          => __('Главная страница - правая колонка', 'my-custom-theme'),
        'id'            => 'home-right',
        'description'   => __('Виджеты для правой колонки на главной', 'my-custom-theme'),
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget'  => '</div>',
        'before_title'  => '<h3 class="widget-title">',
        'after_title'   => '</h3>',
    ));
}
add_action('widgets_init', 'my_custom_theme_widgets_init');

// =============================================
// ОТКЛЮЧЕНИЕ ПРЕОБРАЗОВАНИЯ ЭМОДЗИ
// =============================================
function disable_emojis() {
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');
    remove_filter('the_content_feed', 'wp_staticize_emoji');
    remove_filter('comment_text_rss', 'wp_staticize_emoji');
    remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
    
    // Удаляем эмодзи из редактора
    add_filter('tiny_mce_plugins', 'disable_emojis_tinymce');
}
add_action('init', 'disable_emojis');

function disable_emojis_tinymce($plugins) {
    return array_diff($plugins, array('wpemoji'));
}
?>