tpl-str 樣板屬性
樣板編譯邏輯
樣板由頂層的html, 擷取{{參數:值}}設定, 巢狀式地由外往內建立HTML. 反之, 儲存頁面時, 由最內層向外擷取 tpl-str="參數:值" 的元素設定, 將該元素或元素的的html依設定儲存成資料, 並將原本的html轉化成{{參數:值}}標籤, 以此轉換<-->還原的方式來存取樣板.

tpl-str 屬性設定
tpl-str="tpl:(/tpl/資料夾)/檔案名稱(不包含.php)"
tpl: 該元素的 innerHTML 為source, 放置於 /tpl 資料夾的.php檔案, 通常用於崁入需以php編寫或抓取資料庫來排版的版面, 例如將存放在mysql資料庫中所有最新消息的內容頁面資料, 編排成最新消息列表, 用來崁入最新消息的主頁
範例:
<div class="row" tpl-str="tpl:sub/news-list">
<div class="col"></div>
<div class="col"></div>
</div>
存成樣板:
<div tpl-str="tpl:sub/news-list">{{tpl:sub/news-list}}</div>
檔案內容( /tpl/sub/news-list.php ):
<div class="col"></div><div class="col"></div>
tpl-str="part:(/tpl/資料夾)/檔案名稱(不包含.php)"
part: 作用與tpl類似, 該元素的 outerHTML 為source, 放置於 /tpl 資料夾的.php檔案, 通常用於崁入需以php編寫或抓取資料庫來排版的版面, 例如將存放在mysql資料庫中所有最新消息的內容頁面資料, 編排成最新消息列表, 用來崁入最新消息的主頁
範例:
<div class="row" tpl-str="part:sub/news-list">
<div class="col"></div>
<div class="col"></div>
</div>
存成樣板: {{part:sub/news-list}}
檔案內容( /tpl/sub/news-list.php ):
<div class="row" tpl-str="part:sub/news-list">
<div class="col"></div>
<div class="col"></div>
</div>
tpl-str="wdg:資料名稱"
wdg: 作用與part類似, 取該元素的 outerHTML 為source, 放置於資料庫中widget資料表中, 通常用於崁入可供編輯的"共用"區塊, 屬靜態HTML, 例如footer為每個頁面的共用區塊
範例:
<footer class="footer" tpl-str="wdg:footer">
<div class="container"> ... </div>
</footer>
存成樣板:
{{wdg:footer}}
資料內容:
<footer class="footer" tpl-str="wdg:footer">
<div class="container"> ... </div>
</footer>
tpl-str="rgx:資料名稱"
rgx: 取該元素的 innerHTML 為source, 放置於資料庫中Pages該頁面所屬資料列欄位, 通常用於崁入該頁面專屬內容區塊, 屬靜態HTML, 例如頁面中文章內容
目前常用的html欄位為 ContentHtml, SubContent, AdditContent
範例:
<article>
<section tpl-str="rgx:ContentHTML"> ... </section>
<section tpl-str="rgx:SubContent"> ... </section>
</article>
存成樣板:
<article>
<section tpl-str="rgx:ContentHTML">{{rgx:ContentHTML}}</section>
<section tpl-str="rgx:SubContent">{{rgx:SubContent}}</section>
</article>
tpl-str="inh:樣板名稱/資料名稱"
inh: 取該元素的 innerHTML 為source, 放置於資料庫中Pages該頁面所屬資料列欄位, 或者該頁面上層頁面欄位中, 尋樹狀結構而上, 依參數找尋該頁或上層頁面的欄位;
例如樣板的樹狀結構為 news-main -> news-cate -> news-pg
在樣板為new-pg的頁面中的元素使用設定 tpl-str="inh:news-cate/AdditContent" , 則該元素的innerHTML既連結至該頁的上層頁面樣板屬於news-cate的資料欄位 AdditContent
目前常用的html欄位為 ContentHtml, SubContent, AdditContent
範例:
<article>
<section tpl-str="inh:news-cate/ContentHTML"> ... </section>
</article>
存成樣板:
<article>
<section tpl-str="inh:news-cate/ContentHTML">{{inh:news-cate/ContentHTML}}</section>
</article>
tpl-str="emb:樣板名稱/變數名稱"
emb: 取該元素的 innerHTML 為source, 以json格式放置於資料庫中Pages的 EmbedValue 欄位, 或者該頁面上層頁面的 EmbedValue 欄位中, 與inh 的道理相同, 只是資料名稱改為變數名稱;
例如樣板的樹狀結構為 news-main -> news-cate -> news-pg
在樣板為new-pg的頁面中的元素使用設定 tpl-str="emb:news-cate/newsTitle" , 則該元素的innerHTML既連結至該頁的上層頁面樣板屬於news-cate的資料欄位 EmbedValue -> newsTitle 的值;
範例:
<h3 class="cn-title" tpl-str="emb:news-cate/newsCnTitle">最新消息</h3>
<h5 class="en-title" tpl-str="emb:news-cate/newsEnTitle">Latest News</h5>
存成樣板:
<h3 class="cn-title" tpl-str="emb:news-cate/newsCnTitle">{{emb:news-cate/newsCnTitle}}</h3>
<h5 class="en-title" tpl-str="emb:news-cate/newsEnTitle">{{emb:news-cate/newsEnTitle}}</h5>
tpl-str="var:變數名稱"
var: 取該元素的 innerHTML 為source, 主要的作用為崁入原本就設定好的值.
範例:
<h3 class="cn-title" tpl-str="var:PageTitle">最新消息</h3>
存成樣板:
<h3 class="cn-title" tpl-str="var:PageTitle">tpl-str 樣板屬性</h3>