Files
coolcoth.com/app/Views/product/index.php
T
Lucanlee d5c1edefae perf: V0.9.4 商品列表分页 + sitemap 文件缓存 + banner/asset/gzip/类型修复
- P1: Product::listing() 分页(WHERE status=1+LIMIT/OFFSET+总数),ProductController 改用并加翻页器,消除列表全表
- P1: outputSitemap() 加 storage/cache/sitemap.xml 文件缓存(TTL 3600s),消除每次爬虫全表
- P2: 首页 banner 改 whereLimit('status',1,20)
- P2: asset() 追加 ?v=filemtime 版本串,theme.css 改后自动击穿 1y 浏览器缓存
- P2: nginx 启用 gzip(文本资源压缩)
- P2: Model::count() $val 隐式可空改 mixed(PHP 8.4+ 弃用)
2026-08-08 23:53:52 +08:00

62 lines
3.6 KiB
PHP

<?php
$title = $cat ? $cat['name'] : '产品中心';
$sub = $cat ? $cat['description'] : '水冷循环 / 相变蓄冷 / 涡扇风冷,覆盖全场景降温需求';
?>
<section class="page-hero">
<div class="container">
<h1><?php echo e($title); ?></h1>
<p><?php echo e($sub); ?></p>
</div>
</section>
<div class="container">
<nav class="breadcrumb"><a href="<?php echo site_url(); ?>">首页</a> / 产品中心</nav>
</div>
<section class="section" style="padding-top:20px">
<div class="container">
<div style="display:flex;gap:10px;flex-wrap:wrap;margin-bottom:34px">
<a class="tag" style="<?php echo !$activeCat ? 'background:var(--c-primary);color:#fff' : '' ?>" href="<?php echo site_url('products'); ?>">全部</a>
<?php foreach ($categories as $c): ?>
<a class="tag" style="<?php echo $activeCat == $c['id'] ? 'background:var(--c-primary);color:#fff' : '' ?>" href="<?php echo site_url('products?cat=' . $c['id']); ?>"><?php echo e($c['name']); ?></a>
<?php endforeach; ?>
</div>
<?php if (empty($products)): ?><p style="color:var(--c-muted)">该分类暂无产品。</p><?php endif; ?>
<div class="product-grid">
<?php foreach ($products as $p): ?>
<div class="product-card reveal">
<a class="product-link" href="<?php echo site_url('products/' . $p['slug']); ?>">
<?php if (!empty($p['cover'])): ?>
<div class="product-thumb"><img src="<?php echo e(site_url($p['cover'])); ?>" alt="<?php echo e($p['name']); ?>"></div>
<?php else: ?>
<div class="product-thumb" style="background:<?php echo gradient($p['id']); ?>">❄</div>
<?php endif; ?>
<div class="product-body">
<div class="product-name"><?php echo e($p['name']); ?></div>
<div class="product-sum"><?php echo e($p['summary']); ?></div>
<div class="product-meta">
<div class="product-price">¥<?php echo e($p['price']); ?> <small>起</small></div>
</div>
</div>
</a>
<div class="product-actions">
<a class="btn btn-primary magnetic" href="<?php echo site_url('order/checkout/' . $p['slug']); ?>">立即购买</a>
<a class="btn btn-ghost" href="<?php echo site_url('products/' . $p['slug']); ?>">查看</a>
</div>
</div>
<?php endforeach; ?>
</div>
<?php if (($totalPages ?? 1) > 1): ?>
<?php
$base = 'products' . ($activeCat ? '?cat=' . $activeCat : '');
$mk = fn($p) => site_url($base . ($activeCat ? '&' : '?') . 'page=' . $p);
?>
<nav class="pager" style="display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:34px 0">
<?php if ($page > 1): ?><a class="btn btn-ghost" href="<?php echo $mk($page - 1); ?>">上一页</a><?php endif; ?>
<?php for ($i = 1; $i <= $totalPages; $i++): ?>
<a class="btn btn-ghost" style="<?php echo $i == $page ? 'background:var(--c-primary);color:#fff' : '' ?>" href="<?php echo $mk($i); ?>"><?php echo $i; ?></a>
<?php endfor; ?>
<?php if ($page < $totalPages): ?><a class="btn btn-ghost" href="<?php echo $mk($page + 1); ?>">下一页</a><?php endif; ?>
</nav>
<?php endif; ?>
</div>
</section>