3-3-3
統一主內容樣式 main.tpl
- 我們希望所有的文章都用同一個格式,這樣日後比較好維護:
- 只有第一篇文章有滑動圖,但無左邊縮圖,文章完整顯示
- 其餘文章沒有滑動圖,但有左邊縮圖,文章僅顯示摘要(或固定字數)
一、修改主要文章部份
- 我們先將滑動圖也拆分出來成為
templates/slider.tpl,並順便將container-fluid改為alert-info以加上個藍色外框
<div class="alert alert-info">
<div class="row">
<div class="col-md-3 order-md-1 order-2 mb-3 mb-md-0">
<div class="thumbnail-container" id="thumbnailContainer">
<!-- 縮圖將通過 JavaScript 動態添加 -->
</div>
</div>
<div class="col-md-9 order-md-2 order-1">
<img id="mainImage" src="https://fakeimg.pl/800x600/cccccc/909090?text=Image+1" alt="主圖片">
</div>
</div>
</div>
- 將滑動圖移到標題上方,主要文章的部份看起來像這樣:
<article class="mb-4">
{include file="slider.tpl"}
<h2>犀牛上顎與白堊化石有看頭</h2>
<p>2024-06-29記者某某/台南報導 石膏化石展區「台灣古生物剪影區」特展二十九日收攤囉喔,由國立工業生產中心的「犀牛上顎頭骨標本」...[內容省略]</p>
</article>
二、次要文章部份
- 次要文章有縮圖,縮圖希望在左邊,文字摘要在右邊,因此,我們手動改一下:
<article class="mb-4">
<h2>跨越國界的音樂情緣-橋中管樂團與日本開智未來高校吹奏部攜手野球應援</h2>
<div class="row">
<div class="col-md-4 mb-3">
<img src="https://fakeimg.pl/800x400/cccccc/909090?text=Orchestra+Image" class="img-fluid mb-3" alt="管樂團圖片">
</div>
<div class="col-md-8 mb-3">
<p>光武國小體育館內發出悠揚音樂,只見指揮在台前揮灑,音樂優雅且意味深長...[內容省略]</p>
</div>
</div>
</article>
三、將主、次要文章併成同一個樣板
- 接著合併之,並將原來的內容都改成變數:
<article class="my-5">
{if $slider}
{include file="slider.tpl"}
{/if}
<h2>{$title}</h2>
<div class="row">
{if $thumb}
<div class="col-md-4 mb-3">
<img src="{$thumb}" class="img-fluid" alt="{$title}圖片">
</div>
<div class="col-md-8 mb-3">
{$content}
</div>
{else}
<div class="col-md-12 mb-3">
{$content}
</div>
{/if}
</div>
</article>
四、加上資訊列
- 資訊列其實挺好做,若不熟也可以請AI幫忙,AI提示詞:
請生成一段使用Bootstrap 5的HTML原始碼,包含一個分成左右兩欄的資訊列,比例約為10:2。左邊欄位顯示「2024-07-22 @ XX國中 已有 2828 次點閱」,底色為淺色背景並有內邊距(padding);右邊欄位顯示「XXX 報導」,底色為深色背景半透明,文字為白色並置中對齊,且有內邊距。兩欄之間無間隙,並且整個資訊列上下有些許間距。
- 標題下方加入資訊列,並將完成的文章樣板獨立存成
templates/article.tpl:
<article class="my-4">
{if $slider}
{include file="slider.tpl"}
{/if}
<h2>{$title}</h2>
<div class="row g-0 my-2">
<div class="col-10 bg-light p-2">
{$date} @ {$school} 已有 {$count} 次點閱
</div>
<div class="col-2 bg-dark bg-opacity-50 p-2 text-white text-center">
{$author} 報導
</div>
</div>
<div class="row">
{if $thumb}
<div class="col-md-4 mb-3">
<img src="{$thumb}" class="img-fluid" alt="{$title}圖片">
</div>
<div class="col-md-8 mb-3">
{$content}
</div>
{else}
<div class="col-md-12 mb-3">
{$content}
</div>
{/if}
</div>
</article>
- 在
main.tpl 中,若要產生文章,則用 {include} 引入文章樣板檔,然後給予參數值即可:
{include file="article.tpl" slider=true title="最新消息" date="2024-08-06" school="龍崎國小" count=88168 author="吳弘凱" content="<p>文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。</p>
<p>文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。</p>" link="" thumb=""}
{include file="article.tpl" slider=false title="最新消息" date="2024-08-06" school="龍崎國小" count=88168 author="吳弘凱" content="<p>文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。</p>
<p>文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。</p>" link="" thumb="https://fakeimg.pl/400x300/cccccc/909090?text=Image+1"}
{include file="article.tpl" slider=false title="最新消息" date="2024-08-06" school="龍崎國小" count=88168 author="吳弘凱" content="<p>文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。</p>
<p>文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容,文章完整內容。</p>" link="" thumb="https://fakeimg.pl/400x300/cccccc/909090?text=Image+2"}
<nav aria-label="Page navigation" class="mt-4">
<ul class="pagination justify-content-center">
<li class="page-item"><a class="page-link" href="#">«</a></li>
<li class="page-item active"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item"><a class="page-link" href="#">4</a></li>
<li class="page-item"><a class="page-link" href="#">5</a></li>
<li class="page-item"><a class="page-link" href="#">»</a></li>
</ul>
</nav>