<?php
/*
Plugin Name: ForumHub论坛/帖子/问答/社区/话题插件
Description: 主要功能是论坛/帖子/问答/社区/话题。包含登录、注册、邮箱系统、发布帖子、回复帖子、评论、点赞、踩、帖子分类、帖子审核、帖子管理（转移分类、删除帖子）等功能。
Version: 0.0.8
Author: 沃之涛科技
Author URI: https://www.seoceo.cn
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
*/

if (!defined('ABSPATH')) exit;
global $luntan_wzt_log;
$luntan_wzt_log = get_option('luntan_wzt_log');
define('LUNTAN_VERSION', '0.0.8');
define('LUNTAN_FILE', __FILE__);
define('LUNTAN_NAME', plugin_basename(__FILE__));
require plugin_dir_path(LUNTAN_FILE) . 'inc/index.php';
require plugin_dir_path(LUNTAN_FILE) . 'inc/post.php';
$luntan_index = new luntan_index();
$luntan_index->init();
$luntan_post = new luntan_post();
$luntan_post->init();
add_action('init', 'luntan_plugin_activate');
// 定义插件的激活函数
function luntan_plugin_activate()
{
    $luntan_url_guanli = get_option('luntan_url_guanli');
    if(isset($luntan_url_guanli['list']) && $luntan_url_guanli['list']){
        $url = $luntan_url_guanli['list'];
    }else{
        $url = 'ltwdsqht';
    }
    $labels = array(
        'name'              => _x('论坛分类', 'luntan_cate', 'luntan'),
        'singular_name'     => _x('论坛分类', 'luntan_cate', 'luntan'),
        'search_items'      => __('论坛分类', 'luntan'),
        'all_items'         => __('论坛分类', 'luntan'),
        'parent_item'       => __('论坛分类', 'luntan'),
        'parent_item_colon' => __('论坛分类：', 'luntan'),
        'edit_item'         => __('论坛分类', 'luntan'),
        'update_item'       => __('论坛分类', 'luntan'),
        'add_new_item'      => __('论坛分类', 'luntan'),
        'new_item_name'     => __('论坛分类', 'luntan'),
        'menu_name'         => __('论坛分类', 'luntan'),
    );
    $args = array(
        'labels'            => $labels,
        'public'            => true,
        'hierarchical'      => true, // 设置为 true 表示分类是有层级关系的（类似分类目录），false 则类似标签
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => array('slug' => 'luntan_cate','with_front' => false,
        'hierarchical' => true,), // 自定义分类的 URL 别名
    );
    register_taxonomy('luntan_cate', 'luntan', $args);
    // 在这里可以添加一些在插件激活时需要执行的初始化代码，比如创建自定义文章类型等
    register_post_type(
        'luntan',
        array(
            'labels' => array(
                'name' => __('论坛', 'luntan'),
                'singular_name' => $url
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => $url),
            'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments','post_name'),
            'show_in_menu' => false,
        )
    );
    add_rewrite_rule(
        $url.'/([0-9]+)?.html$',
        'index.php?post_type=luntan&p=$matches[1]',
        'top'
    );
    flush_rewrite_rules();
}

function luntan_single_template($template)
{
    if (is_singular('luntan')) {
        $new_template = plugin_dir_path(__FILE__) . 'luntan_single.php';
        if (file_exists($new_template)) {
            return $new_template;
        }
    } elseif (is_post_type_archive('luntan')) {
      
        $new_template = plugin_dir_path(__FILE__) . 'luntan_archive.php';
        if (file_exists($new_template)) {
            return $new_template;
        }
    }elseif(is_tax('luntan_cate')){
        $new_template = plugin_dir_path(__FILE__) . 'luntan_archive.php';
        if (file_exists($new_template)) {
            return $new_template;
        }
    }
    return $template;
}
add_filter('template_include', 'luntan_single_template');
add_action('wp_enqueue_scripts', function() {
    // 获取当前主题
    $theme = wp_get_theme();
    
    // 如果使用的是块主题
    if ($theme->is_block_theme()) {
        // 重新注册主题样式
        wp_enqueue_style('wp-block-library');
        wp_enqueue_style('global-styles', get_theme_file_uri('/assets/css/global.css'),array(), LUNTAN_VERSION);
        
        // 注册主题脚本
        wp_enqueue_script('wp-block-library');
    }
});
// add_action('template_redirect', 'custom_template_redirect');
function my_plugin_register_block_templates($directories) {
    $plugin_template_dir = plugin_dir_path(__FILE__) . 'block-templates/';
    // 检查插件模板目录是否存在
    if (file_exists($plugin_template_dir)) {
        array_unshift($directories, $plugin_template_dir);
    } else {
        error_log('插件模板目录不存在：'. $plugin_template_dir);
    }
    
    // 可以添加额外的模板目录，比如如果存在自定义模板目录
    $custom_template_dir = trailingslashit(get_stylesheet_directory()) . 'custom-plugin-templates/';
    if (file_exists($custom_template_dir)) {
        array_unshift($directories, $custom_template_dir);
    }
    
    return $directories;
}

add_filter('block_template_directories', 'my_plugin_register_block_templates', 99);

 
function custom_template_redirect() {

    if (is_singular('luntan')) {
        include plugin_dir_path(__FILE__) . 'luntan_single.php';
    } elseif (is_post_type_archive('luntan')) {
      include plugin_dir_path(__FILE__) . 'luntan_archive.php';
    }elseif(is_tax('luntan_cate')){
        include plugin_dir_path(__FILE__) . 'luntan_archive.php';

    }
}

function custom_login_styles()
{
    // 加载自定义CSS文件
    wp_enqueue_style('wztTheme-css', plugins_url('wztTheme.css', __FILE__),array(), LUNTAN_VERSION,);
    // 加载自定义JS文件
    wp_enqueue_script('wztTheme-js', plugins_url('wztTheme.js', __FILE__), array(), LUNTAN_VERSION, true);
    
     $php_vars = array(
        
        'blog'    => get_option('blogname'),
    );
    
    // 将变量注入到JS
    wp_localize_script('wztTheme-js', 'wp_vars', $php_vars);
}
add_action('login_enqueue_scripts', 'custom_login_styles');



  



// 添加到你的主题的 functions.php 或自定义插件中
add_filter('wp_new_user_notification_email', 'custom_password_set_email_template', 10, 3);

function custom_password_set_email_template($email, $user, $blogname) {
    // 生成密码设置链接
    $key = get_password_reset_key($user);
    $password_set_link = network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login');

    // 自定义邮件内容（纯文本格式）
    $email['subject'] = sprintf('[%s] 请完成设置您的账户密码', $blogname);
    
    $email['message'] = sprintf("您好 %s,\n\n", $user->user_login);
    $email['message'] .= sprintf("感谢您在 %s 注册！\n\n", $blogname);
    $email['message'] .= "请点击以下链接设置您的密码：\n\n";
    $email['message'] .=  $password_set_link."\n\n";
    $email['message'] .= "如果您没有请求注册，请忽略此邮件。\n\n";
    $email['message'] .= "祝您使用愉快！\n";
    $email['message'] .= sprintf("-- %s 团队", $blogname);

    return $email;
}

function luntan_is_block_theme() {
    // 1. 检查主题是否支持全站点编辑（块主题的核心特性）
    if (function_exists('wp_is_block_theme')) {
        // WordPress 6.0+ 内置函数，直接返回结果
        return wp_is_block_theme();
    }

    // 2. 兼容旧版本 WordPress（6.0 以下），通过主题文件判断
    $theme = wp_get_theme();
    $theme_root = $theme->get_stylesheet_directory();

    // 块主题必须包含 theme.json 文件
    if (!file_exists($theme_root . '/theme.json')) {
        return false;
    }

    return true;
}

