<?php
/**
 * 留言板页面
 */
require_once __DIR__ . '/../includes/init.php';

$db = getDB();

$page = isset($_GET['page']) ? max(1, (int)$_GET['page']) : 1;
$perPage = 20;
$offset = ($page - 1) * $perPage;

// 获取留言
$countStmt = $db->query("SELECT COUNT(*) FROM messages WHERE status = 'approved'");
$totalMessages = (int)$countStmt->fetchColumn();
$totalPages = ceil($totalMessages / $perPage);

$stmt = $db->prepare("
    SELECT * FROM messages WHERE status = 'approved'
    ORDER BY created_at DESC
    LIMIT ? OFFSET ?
");
$stmt->execute([$perPage, $offset]);
$messages = $stmt->fetchAll();

// 处理留言提交
$messageSuccess = false;
$messageError = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['message_content'])) {
    if (!verifyCsrfToken($_POST[CSRF_TOKEN_NAME] ?? '')) {
        $messageError = '安全验证失败，请刷新页面重试';
    } else {
        $authorName = sanitizeInput($_POST['author_name'] ?? '');
        $authorEmail = sanitizeInput($_POST['author_email'] ?? '');
        $content = sanitizeInput($_POST['message_content'] ?? '');

        if (empty($authorName) || empty($content)) {
            $messageError = '请填写昵称和留言内容';
        } elseif (mb_strlen($content) < 2) {
            $messageError = '留言内容太短';
        } elseif (mb_strlen($content) > 1000) {
            $messageError = '留言内容过长（最多1000字）';
        } else {
            $autoApprove = getSetting('comment_auto_approve', '0') === '1';
            $ins = $db->prepare("
                INSERT INTO messages (author_name, author_email, content, status, ip, created_at)
                VALUES (?, ?, ?, ?, ?, NOW())
            ");
            $ins->execute([
                $authorName, $authorEmail, $content,
                $autoApprove ? 'approved' : 'pending',
                $_SERVER['REMOTE_ADDR'] ?? ''
            ]);

            if ($autoApprove) {
                $messageSuccess = true;
                $stmt->execute([$perPage, $offset]);
                $messages = $stmt->fetchAll();
            } else {
                $messageSuccess = '审核中';
            }
        }
    }
}

$pageTitle = '留言板';
$pageDesc = '在这里留下你想说的话';
include ROOT_PATH . '/includes/header.php';
?>

<div class="guestbook-intro">
    <i class="mdui-icon material-icons">chat_bubble_outline</i>
    <h2>留言板</h2>
    <p>这里是一个安静的角落，想说些什么都可以</p>
</div>

<!-- 留言表单 -->
<div class="mdui-card diary-card" style="padding:16px;margin-bottom:24px;">
    <?php if ($messageSuccess === true): ?>
    <div class="mdui-chip" style="background:rgba(76,175,80,0.15);color:#81c784;margin-bottom:12px;">
        <span class="mdui-chip-title">留言成功！</span>
    </div>
    <?php elseif ($messageSuccess === '审核中'): ?>
    <div class="mdui-chip" style="background:rgba(255,193,7,0.1);color:#ffd54f;margin-bottom:12px;">
        <span class="mdui-chip-title">留言已提交，等待审核后显示</span>
    </div>
    <?php endif; ?>

    <?php if ($messageError): ?>
    <div class="mdui-chip" style="background:rgba(244,67,54,0.1);color:#ef9a9a;margin-bottom:12px;">
        <span class="mdui-chip-title"><?php echo h($messageError); ?></span>
    </div>
    <?php endif; ?>

    <form method="post">
        <?php echo csrfField(); ?>
        <div class="mdui-row-xs-1 mdui-row-sm-2">
            <div class="mdui-col">
                <div class="mdui-textfield mdui-textfield-floating-label">
                    <i class="mdui-textfield-icon mdui-icon material-icons">person</i>
                    <input type="text" class="mdui-textfield-input" name="author_name" required maxlength="50" value="<?php echo h($_POST['author_name'] ?? ''); ?>">
                    <label class="mdui-textfield-label">昵称 *</label>
                </div>
            </div>
            <div class="mdui-col">
                <div class="mdui-textfield mdui-textfield-floating-label">
                    <i class="mdui-textfield-icon mdui-icon material-icons">email</i>
                    <input type="email" class="mdui-textfield-input" name="author_email" maxlength="100" value="<?php echo h($_POST['author_email'] ?? ''); ?>">
                    <label class="mdui-textfield-label">邮箱（不公开）</label>
                </div>
            </div>
        </div>
        <div class="mdui-textfield mdui-textfield-floating-label">
            <textarea class="mdui-textfield-input" name="message_content" rows="3" required maxlength="1000"><?php echo h($_POST['message_content'] ?? ''); ?></textarea>
            <label class="mdui-textfield-label">写下你想说的话... *</label>
        </div>
        <button type="submit" class="mdui-btn mdui-btn-raised mdui-ripple" style="background:var(--accent-color);color:#fff;">
            <i class="mdui-icon material-icons">send</i> 发送留言
        </button>
    </form>
</div>

<!-- 留言列表 -->
<?php if (empty($messages)): ?>
<div class="empty-state">
    <i class="mdui-icon material-icons">forum</i>
    <p>还没有留言，来做第一个留言的人吧</p>
</div>
<?php else: ?>
<?php foreach ($messages as $msg): ?>
<div class="comment-item" style="padding:16px;margin-bottom:8px;background:rgba(30,33,40,0.7);border-radius:8px;border:1px solid rgba(255,255,255,0.03);">
    <div>
        <span class="comment-author"><?php echo h($msg['author_name']); ?></span>
        <span class="comment-time"><?php echo timeAgo($msg['created_at']); ?></span>
    </div>
    <div class="comment-content"><?php echo nl2br(h($msg['content'])); ?></div>
</div>
<?php endforeach; ?>

<?php
$baseUrl = SITE_URL . '/pages/guestbook.php?';
echo pagination($page, $totalPages, $baseUrl);
endif;

include ROOT_PATH . '/includes/footer.php';
