大家好

因為很多人對於joomla3 模板的結構沒有很了解
所以特別寫這篇文章
來大概說明一些joomla3模板的重點
先舉個例子
protostar 預設模板
1.設定模板類型
<extension version="3.1" type="template" client="site" >
type="template" 是說此安裝功能為模板
client="site" 是說他是 前台模板(如果是後台請用administrator)
2.設定基本資料
模板名稱請用元件名稱
例如 我常用的命名方式
tpl_zoearthtmp_01
那tpl 就是他是什麼類型的安裝檔,tpl就是模板,com就是元件
那這邊系統中的模板名稱應該要去除屬性
所以會是[zoearthtmp_01]
<name>zoearthtmp_01(模板名稱)</name> <version>1.0.0(版本,隨便打也可,用於標記與判斷)</version> <creationDate>2015-10-18(新增時間)</creationDate> <author>zoearth(作者)</author> <authorEmail>zoearthmoon@gmail.com(作者email)</authorEmail> <copyright>(版權宣告,可以不打)</copyright> <description>描述,可配合使用翻譯檔</description>
描述部分也可以學我這樣做
<description> <![CDATA[ <div style="text-align:left"> <blockquote> <p>您好!這是XXX <h1>客戶版型 10 TEST</h1></p> <small>只能在joomla3.0以上使用</small> </blockquote> </div> ]]> </description>
用xml 文字跳出方式
3.有哪些檔案
<filename>template_thumbnail.png</filename> <folder>css</folder>
這樣應該是很容易懂
filename 就是在資料夾根目錄底下的檔案
folder 就是資料夾,且包含底下所有子資料夾
我大致說明底下檔案的屬性與是否必須
<filename>index.php</filename> 入口檔案,模板的起始檔案(必須)(必須修改) <filename>component.php</filename> 元件用模板,例如當使用列印模式時,不需要其他表單時使用(必須)(非必要修改) <filename>error.php</filename> 錯誤用的模板,無法呼叫模組,只能顯示基礎訊息(必須)(非必要修改) <filename>favicon.ico</filename> 網頁圖示 <filename>templateDetails.xml</filename> 主要設定XML <filename>template_preview.png</filename> 提供後臺列表檢視用圖片(大) <filename>template_thumbnail.png</filename> 提供後臺列表檢視用圖片(小) <folder>css</folder> 依照模板需求資料夾(非必須) <folder>html</folder> 元件與模組的模板(必須) <folder>images</folder> 依照模板需求資料夾(非必須) <folder>img</folder> 依照模板需求資料夾(非必須) <folder>js</folder> 依照模板需求資料夾(非必須) <folder>language</folder> 翻譯檔案(必須) <folder>less</folder> 依照模板需求資料夾(非必須)
4.模板的基本原理
其實這邊可以用joomla3 自己的預設模板來看
protostar
joomla的模板入口也一樣是index.php
所以由此可知
我們可以從index.php依照一些自訂條件
來讀取特定模板
那模板是如何運作呢?
基本上是經過PHP運算後
再由tag去判斷要放那些內容在那些位置
例如:
<jdoc:include type="head" /> //就是head資料,包含JS或CSS或meta資料 <jdoc:include type="modules" name="position-1" /> //後台模組區塊位置 <jdoc:include type="message" /> //系統訊息提示區塊 <jdoc:include type="component" /> //元件內容,例如文章
所以由此可知
index.php主要內容就是網頁的框架
然後裡面的 jdoc:include 放不同內容這樣
5.模組位置
模組位置必須要與 templateDetails.xml 的 positions 互相配合
例如:
templateDetails.xml的 <position>position-1</position> 與 index.php的 <jdoc:include type="modules" name="position-1" /> 互相配合
基本上是這樣
還有其他問題可以在下方留言提出喔
感恩!
留言板
歡迎留下建議與分享!希望一起交流!感恩!