大家好
因為很多人對於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" />
互相配合


 
基本上是這樣
還有其他問題可以在下方留言提出喔
感恩!