增加产品模块

This commit is contained in:
2026-03-20 19:48:32 +08:00
parent 14c305f518
commit b3a25ceb82
17 changed files with 916 additions and 469 deletions
+99 -241
View File
@@ -3,6 +3,28 @@ $pageTitle = '新闻中心 - Nova';
$pageDescription = 'Nova Bootstrap Template 的新闻中心页面';
$pageKeywords = 'blog, news, nova';
require_once __DIR__ . '/header.php';
?>
<?php
// 本页使用本地分页:根据 query 参数 ?page=n 只展示 newsList 的切片
$allNewsList = is_array($newsList ?? null) ? $newsList : [];
$currentPage = (int)($_GET['page'] ?? 1);
if ($currentPage < 1) {
$currentPage = 1;
}
$pageSize = 4; // 每页展示 4 条(grid 中每条占 col-lg-6,所以刚好两行)
$totalCount = count($allNewsList);
$totalPages = (int)ceil($totalCount / $pageSize);
if ($totalPages < 1) {
$totalPages = 1;
}
if ($currentPage > $totalPages) {
$currentPage = $totalPages;
}
$newsListForPage = array_slice($allNewsList, ($currentPage - 1) * $pageSize, $pageSize);
?>
<!-- Page Title -->
@@ -28,162 +50,68 @@ require_once __DIR__ . '/header.php';
<div class="container">
<div class="row gy-4">
<?php if (!empty($newsList)): ?>
<?php foreach ($newsListForPage as $i => $item): ?>
<?php
$title = $item['title'] ?? '无标题';
$author = $item['author'] ?? '';
$category = $item['category'] ?? ($item['category_name'] ?? '');
<div class="col-lg-6">
<article>
$publishDateRaw = $item['publish_date'] ?? '';
$postDate = !empty($publishDateRaw) ? date('Y年m月d日', strtotime($publishDateRaw)) : '';
<div class="post-img">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-1.jpg" alt="" class="img-fluid">
</div>
$thumbUrl = $item['thumb'] ?? ($item['image'] ?? '');
if (!empty($thumbUrl)) {
if (strpos($thumbUrl, 'http') === 0) {
$imgSrc = $thumbUrl;
} elseif (strpos($thumbUrl, '/') === 0) {
$imgSrc = $apiUrl . $thumbUrl;
} else {
$imgSrc = $apiUrl . '/' . $thumbUrl;
}
} else {
$imgIndex = ($i % 6) + 1; // blog-1.jpg ~ blog-6.jpg
$imgSrc = $baseUrl . "/themes/template3/assets/img/blog/blog-{$imgIndex}.jpg";
}
<p class="post-category">Politics</p>
$articleUrl = $apiUrl . '/article_detail/' . ($item['id'] ?? 0);
?>
<h2 class="title">
<a href="blog-details.php">Dolorum optio tempore voluptas dignissimos</a>
</h2>
<div class="col-lg-6">
<article>
<div class="d-flex align-items-center">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-author.jpg" alt="" class="img-fluid post-author-img flex-shrink-0">
<div class="post-meta">
<p class="post-author">Maria Doe</p>
<p class="post-date">
<time datetime="2022-01-01">Jan 1, 2022</time>
</p>
</div>
</div>
<div class="post-img">
<img src="<?php echo htmlspecialchars($imgSrc); ?>" alt="" class="img-fluid">
</div>
</article>
</div><!-- End post list item -->
<p class="post-category"><?php echo htmlspecialchars($category); ?></p>
<div class="col-lg-6">
<article>
<h2 class="title">
<a href="<?php echo htmlspecialchars($articleUrl); ?>">
<?php echo htmlspecialchars($title); ?>
</a>
</h2>
<div class="post-img">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-2.jpg" alt="" class="img-fluid">
</div>
<div class="d-flex align-items-center">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-author.jpg" alt="" class="img-fluid post-author-img flex-shrink-0">
<div class="post-meta">
<p class="post-author"><?php echo htmlspecialchars($author); ?></p>
<p class="post-date">
<time datetime="<?php echo htmlspecialchars($publishDateRaw); ?>">
<?php echo htmlspecialchars($postDate); ?>
</time>
</p>
</div>
</div>
<p class="post-category">Sports</p>
<h2 class="title">
<a href="blog-details.php">Nisi magni odit consequatur autem nulla dolorem</a>
</h2>
<div class="d-flex align-items-center">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-author-2.jpg" alt="" class="img-fluid post-author-img flex-shrink-0">
<div class="post-meta">
<p class="post-author">Allisa Mayer</p>
<p class="post-date">
<time datetime="2022-01-01">Jun 5, 2022</time>
</p>
</div>
</div>
</article>
</div><!-- End post list item -->
<div class="col-lg-6">
<article>
<div class="post-img">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-3.jpg" alt="" class="img-fluid">
</div>
<p class="post-category">Entertainment</p>
<h2 class="title">
<a href="blog-details.php">Possimus soluta ut id suscipit ea ut in quo quia et soluta</a>
</h2>
<div class="d-flex align-items-center">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-author-3.jpg" alt="" class="img-fluid post-author-img flex-shrink-0">
<div class="post-meta">
<p class="post-author">Mark Dower</p>
<p class="post-date">
<time datetime="2022-01-01">Jun 22, 2022</time>
</p>
</div>
</div>
</article>
</div><!-- End post list item -->
<div class="col-lg-6">
<article>
<div class="post-img">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-4.jpg" alt="" class="img-fluid">
</div>
<p class="post-category">Sports</p>
<h2 class="title">
<a href="blog-details.php">Non rem rerum nam cum quo minus olor distincti</a>
</h2>
<div class="d-flex align-items-center">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-author-4.jpg" alt="" class="img-fluid post-author-img flex-shrink-0">
<div class="post-meta">
<p class="post-author">Lisa Neymar</p>
<p class="post-date">
<time datetime="2022-01-01">Jun 30, 2022</time>
</p>
</div>
</div>
</article>
</div><!-- End post list item -->
<div class="col-lg-6">
<article>
<div class="post-img">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-5.jpg" alt="" class="img-fluid">
</div>
<p class="post-category">Politics</p>
<h2 class="title">
<a href="blog-details.php">Accusamus quaerat aliquam qui debitis facilis consequatur</a>
</h2>
<div class="d-flex align-items-center">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-author-5.jpg" alt="" class="img-fluid post-author-img flex-shrink-0">
<div class="post-meta">
<p class="post-author">Denis Peterson</p>
<p class="post-date">
<time datetime="2022-01-01">Jan 30, 2022</time>
</p>
</div>
</div>
</article>
</div><!-- End post list item -->
<div class="col-lg-6">
<article>
<div class="post-img">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-6.jpg" alt="" class="img-fluid">
</div>
<p class="post-category">Entertainment</p>
<h2 class="title">
<a href="blog-details.php">Distinctio provident quibusdam numquam aperiam aut</a>
</h2>
<div class="d-flex align-items-center">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-author-6.jpg" alt="" class="img-fluid post-author-img flex-shrink-0">
<div class="post-meta">
<p class="post-author">Mika Lendon</p>
<p class="post-date">
<time datetime="2022-01-01">Feb 14, 2022</time>
</p>
</div>
</div>
</article>
</div><!-- End post list item -->
</article>
</div><!-- End post list item -->
<?php endforeach; ?>
<?php else: ?>
<div class="col-12 text-center">
<p>暂无新闻数据</p>
</div>
<?php endif; ?>
</div>
</div>
@@ -196,14 +124,24 @@ require_once __DIR__ . '/header.php';
<div class="container">
<div class="d-flex justify-content-center">
<ul>
<li><a href="#"><i class="bi bi-chevron-left"></i></a></li>
<li><a href="#">1</a></li>
<li><a href="#" class="active">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li>...</li>
<li><a href="#">10</a></li>
<li><a href="#"><i class="bi bi-chevron-right"></i></a></li>
<?php
$prevPage = max(1, $currentPage - 1);
$nextPage = min($totalPages, $currentPage + 1);
$showMax = 10;
$showTotal = min($totalPages, $showMax);
?>
<li><a href="<?php echo $baseUrl; ?>/blog?page=<?php echo $prevPage; ?>"><i class="bi bi-chevron-left"></i></a></li>
<?php for ($p = 1; $p <= $showTotal; $p++): ?>
<li>
<a
href="<?php echo $baseUrl; ?>/blog?page=<?php echo $p; ?>"
<?php echo ($p === $currentPage) ? 'class="active"' : ''; ?>
>
<?php echo $p; ?>
</a>
</li>
<?php endfor; ?>
<li><a href="<?php echo $baseUrl; ?>/blog?page=<?php echo $nextPage; ?>"><i class="bi bi-chevron-right"></i></a></li>
</ul>
</div>
</div>
@@ -250,7 +188,7 @@ require_once __DIR__ . '/header.php';
<div class="post-item">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-recent-1.jpg" alt="" class="flex-shrink-0">
<div>
<h4><a href="blog-details.php">Nihil blanditiis at in nihil autem</a></h4>
<h4><a href="<?php echo $baseUrl; ?>/blog-details">Nihil blanditiis at in nihil autem</a></h4>
<time datetime="2020-01-01">Jan 1, 2020</time>
</div>
</div><!-- End recent post item-->
@@ -258,7 +196,7 @@ require_once __DIR__ . '/header.php';
<div class="post-item">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-recent-2.jpg" alt="" class="flex-shrink-0">
<div>
<h4><a href="blog-details.php">Quidem autem et impedit</a></h4>
<h4><a href="<?php echo $baseUrl; ?>/blog-details">Quidem autem et impedit</a></h4>
<time datetime="2020-01-01">Jan 1, 2020</time>
</div>
</div><!-- End recent post item-->
@@ -266,7 +204,7 @@ require_once __DIR__ . '/header.php';
<div class="post-item">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-recent-3.jpg" alt="" class="flex-shrink-0">
<div>
<h4><a href="blog-details.php">Id quia et et ut maxime similique occaecati ut</a></h4>
<h4><a href="<?php echo $baseUrl; ?>/blog-details">Id quia et et ut maxime similique occaecati ut</a></h4>
<time datetime="2020-01-01">Jan 1, 2020</time>
</div>
</div><!-- End recent post item-->
@@ -274,7 +212,7 @@ require_once __DIR__ . '/header.php';
<div class="post-item">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-recent-4.jpg" alt="" class="flex-shrink-0">
<div>
<h4><a href="blog-details.php">Laborum corporis quo dara net para</a></h4>
<h4><a href="<?php echo $baseUrl; ?>/blog-details">Laborum corporis quo dara net para</a></h4>
<time datetime="2020-01-01">Jan 1, 2020</time>
</div>
</div><!-- End recent post item-->
@@ -282,33 +220,13 @@ require_once __DIR__ . '/header.php';
<div class="post-item">
<img src="<?php echo $baseUrl; ?>/themes/template3/assets/img/blog/blog-recent-5.jpg" alt="" class="flex-shrink-0">
<div>
<h4><a href="blog-details.php">Et dolores corrupti quae illo quod dolor</a></h4>
<h4><a href="<?php echo $baseUrl; ?>/blog-details">Et dolores corrupti quae illo quod dolor</a></h4>
<time datetime="2020-01-01">Jan 1, 2020</time>
</div>
</div><!-- End recent post item-->
</div><!--/Recent Posts Widget -->
<!-- Tags Widget -->
<div class="tags-widget widget-item">
<h3 class="widget-title">标签</h3>
<ul>
<li><a href="#">App</a></li>
<li><a href="#">IT</a></li>
<li><a href="#">Business</a></li>
<li><a href="#">Mac</a></li>
<li><a href="#">Design</a></li>
<li><a href="#">Office</a></li>
<li><a href="#">Creative</a></li>
<li><a href="#">Studio</a></li>
<li><a href="#">Smart</a></li>
<li><a href="#">Tips</a></li>
<li><a href="#">Marketing</a></li>
</ul>
</div><!--/Tags Widget -->
</div>
</div>
@@ -318,66 +236,6 @@ require_once __DIR__ . '/header.php';
</main>
<footer id="footer" class="footer light-background">
<div class="footer-top">
<div class="container">
<div class="row gy-4">
<div class="col-lg-5 col-md-12 footer-about">
<a href="<?php echo $baseUrl; ?>/" class="logo d-flex align-items-center">
<span class="sitename">Nova</span>
</a>
<p>Cras fermentum odio eu feugiat lide par naso tierra. Justo eget nada terra videa magna derita valies darta donna mare fermentum iaculis eu non diam phasellus.</p>
<div class="social-links d-flex mt-4">
<a href=""><i class="bi bi-twitter-x"></i></a>
<a href=""><i class="bi bi-facebook"></i></a>
<a href=""><i class="bi bi-instagram"></i></a>
<a href=""><i class="bi bi-linkedin"></i></a>
</div>
</div>
<div class="col-lg-2 col-6 footer-links">
<h4>有用链接</h4>
<ul>
<li><a href="<?php echo $baseUrl; ?>/">Home</a></li>
<li><a href="<?php echo $baseUrl; ?>/about.php">About us</a></li>
<li><a href="<?php echo $baseUrl; ?>/services.php">Services</a></li>
<li><a href="#">Terms of service</a></li>
<li><a href="#">Privacy policy</a></li>
</ul>
</div>
<div class="col-lg-2 col-6 footer-links">
<h4>特色业务</h4>
<ul>
<li><a href="<?php echo $baseUrl; ?>/portfolio.php">Web Design</a></li>
<li><a href="<?php echo $baseUrl; ?>/portfolio.php">Web Development</a></li>
<li><a href="<?php echo $baseUrl; ?>/services.php">Product Management</a></li>
<li><a href="#">Marketing</a></li>
<li><a href="#">Graphic Design</a></li>
</ul>
</div>
<div class="col-lg-3 col-md-12 footer-contact text-center text-md-start">
<h4>联系我们</h4>
<p>A108 Adam Street</p>
<p>New York, NY 535022</p>
<p>United States</p>
<p class="mt-4"><strong>Phone:</strong> <span>+1 5589 55488 55</span></p>
<p><strong>Email:</strong> <span>info@example.com</span></p>
</div>
</div>
</div>
</div>
<div class="container copyright text-center">
<p>© <span>Copyright</span> <strong class="px-1 sitename">Nova</strong> <span>All Rights Reserved</span></p>
<div class="credits">
Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a> Distributed by <a href="https://themewagon.com">ThemeWagon</a>
</div>
</div>
</footer>
<?php require_once __DIR__ . '/footer.php'; ?>