<?php
declare(strict_types=1);

/**
 * 修复安装后 HTTP 500（合并 header + 删除误生成的 .htaccess）
 * 访问一次后删除本文件。
 */

header('Content-Type: text/html; charset=utf-8');

$themeDir = __DIR__ . '/themes/clientarea/default';
$bootstrap = $themeDir . '/yuser/bootstrap.php';

if (!is_file($bootstrap)) {
    http_response_code(404);
    echo '<p>未找到主题目录</p>';
    exit;
}

require_once $bootstrap;

$steps = [];

if (function_exists('yuser_cleanup_theme_htaccess')) {
    $steps[] = yuser_cleanup_theme_htaccess($themeDir)
        ? '已删除损坏的主题 .htaccess'
        : '主题 .htaccess 无需处理';
}

$bridge = __DIR__ . '/yuser_license_boot.php';
if (!is_file($bridge)) {
    file_put_contents($bridge, <<<'PHP'
<?php
declare(strict_types=1);
$boot = __DIR__ . '/themes/clientarea/default/yuser/license_boot.php';
if (!is_file($boot)) {
    http_response_code(500);
    header('Content-Type: text/html; charset=utf-8');
    echo 'Yuser: 未找到 themes/clientarea/default/yuser/license_boot.php';
    exit;
}
require_once $boot;
yuser_load_license_bootstrap();

PHP
    );
    $steps[] = '已创建 public/yuser_license_boot.php';
} else {
    $steps[] = 'public/yuser_license_boot.php 已存在';
}

if (function_exists('yuser_ensure_license_plain_files')) {
    yuser_ensure_license_plain_files($themeDir);
    $steps[] = '已检查/补全 license/bootstrap.php（从 .vault 解密）';
}
if (function_exists('yuser_patch_header_thinkphp_compat')) {
    $steps[] = yuser_patch_header_thinkphp_compat($themeDir)
        ? '已修复 header.tpl 中 request()->url()（ThinkPHP 兼容）'
        : 'header.tpl 无需 ThinkPHP 补丁';
}
if (function_exists('yuser_fix_merged_header_license_line')) {
    $steps[] = yuser_fix_merged_header_license_line($themeDir)
        ? '已修正 header.tpl 为 license_boot 加载方式'
        : 'header.tpl 已是新格式';
}

if (function_exists('yuser_merge_entry_templates') && is_file($themeDir . '/header_render.tpl')) {
    $merged = yuser_merge_entry_templates($themeDir);
    if ($merged !== []) {
        $steps[] = '已重新合并：' . implode('、', $merged);
    }
    yuser_fix_merged_header_license_line($themeDir);
    yuser_cleanup_theme_htaccess($themeDir);
}

$header = $themeDir . '/header.tpl';
$preview = is_file($header) ? substr((string) file_get_contents($header), 0, 200) : '';

echo '<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><title>主题 500 修复</title></head><body style="font-family:system-ui;padding:24px">';
echo '<h1>主题修复完成</h1><ul>';
foreach ($steps as $s) {
    echo '<li>' . htmlspecialchars($s, ENT_QUOTES, 'UTF-8') . '</li>';
}
echo '</ul>';
echo '<p>header.tpl 开头预览：</p><pre style="background:#f2f3f5;padding:12px;overflow:auto">'
    . htmlspecialchars($preview, ENT_QUOTES, 'UTF-8') . '</pre>';
echo '<p>请刷新客户区。完成后删除 <code>yuser_theme_fix_500.php</code>。</p></body></html>';
