42 lines
2.2 KiB
PHP
42 lines
2.2 KiB
PHP
<?php
|
|
$pageName = "index";
|
|
$pageTitle = "";
|
|
require_once __DIR__ . "/includes/header.php";
|
|
$perPage = 5;
|
|
$total = (int)db()->query("SELECT COUNT(*) c FROM articles WHERE status='published'")->fetch()["c"];
|
|
$pg = paginate($total, isset($_GET["page"]) ? (int)$_GET["page"] : 1, $perPage);
|
|
$stmt = db()->prepare("SELECT a.*, c.name cat_name FROM articles a LEFT JOIN categories c ON a.category_id=c.id WHERE a.status=? ORDER BY a.created_at DESC LIMIT ? OFFSET ?");
|
|
$stmt->bindValue(1, "published", PDO::PARAM_STR);
|
|
$stmt->bindValue(2, $pg["perPage"], PDO::PARAM_INT);
|
|
$stmt->bindValue(3, $pg["offset"], PDO::PARAM_INT);
|
|
$stmt->execute();
|
|
$articles = $stmt->fetchAll();
|
|
?>
|
|
<div class="hero">
|
|
<h1>我的<span>博客</span></h1>
|
|
<p>欢迎访问</p>
|
|
<div class="search-row">
|
|
<form action="<?php echo e(SITE_URL); ?>search.php" method="get" style="display:flex;gap:10px;width:100%;">
|
|
<input class="glass-input" name="q" placeholder="搜索文章..." value="<?php echo e(isset($_GET["q"])?$_GET["q"]:""); ?>">
|
|
<button class="glass-btn primary">搜索</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<?php if (!$articles) { ?>
|
|
<div class="card glass" style="text-align:center;color:var(--text-muted);padding:60px 20px;">暂无已发布文章</div>
|
|
<?php } else { foreach ($articles as $a) { ?>
|
|
<article class="card glass clickable" onclick="location.href='<?php echo e(SITE_URL); ?>article.php?id=<?php echo (int)$a["id"]; ?>'">
|
|
<div class="card-meta"><span class="glass-chip"><?php echo e($a["cat_name"] ?: "未分类"); ?></span><span><?php echo e(substr($a["created_at"],0,10)); ?></span><span><?php echo (int)$a["views"]; ?> 次阅读</span></div>
|
|
<h2><?php echo e($a["title"]); ?></h2>
|
|
<p><?php echo e(mb_strimwidth(strip_tags($a["excerpt"] ?: $a["content"]), 0, 120, "...")); ?></p>
|
|
<div class="card-foot"><span>阅读全文</span></div>
|
|
</article>
|
|
<?php } } ?>
|
|
<?php if ($pg["pages"] > 1) { ?>
|
|
<div class="pagination">
|
|
<?php for ($i=1; $i<=$pg["pages"]; $i++) { ?>
|
|
<a class="page-btn<?php echo $i===$pg["page"]?" active":""; ?>" href="?page=<?php echo $i; ?>"><?php echo $i; ?></a>
|
|
<?php } ?>
|
|
</div>
|
|
<?php } ?>
|
|
<?php require_once __DIR__ . "/includes/footer.php"; ?>
|