http://blog.emlog.net/post-595.html
本文分析emlog4下的模板結構。
emlog的模板位于content\templates\文件夾下,安裝只需解壓上傳到該目錄,然后在管理后臺選擇該模板即可更換模板。
emlog的模板一般包括如下文件:
下面我們一個(gè)個(gè)分析文件內容:
開(kāi)頭注釋內容是模板信息,該信息顯示在模板選擇界面
Template Name:模板名稱(chēng)
Description:模板介紹描述
Author:模板作者
Author Url:作者或模板發(fā)布的URL
Sidebar Amount:標記該模板有幾個(gè)側邊欄,一般為1,有些模板有兩個(gè)側邊欄則標記2。這樣可以在后臺widgets里識別管理(具體可下載體驗官方收錄的模板G7)。
之后是具體代碼部分:
if(!defined('EMLOG_ROOT')) {exit('error!');}
該行代碼同樣存在于其它模板文件中,為防止該文件被直接執行。
require_once View::getView('module');
加載模板公共代碼,需要注意的是加粗部分與3.x有變化,模板升級的同學(xué)需要注意一下。
$blogtitle:標題
$site_key:關(guān)鍵字(4.0的關(guān)鍵字可以輸出日志的標簽了)
$description:輸出博客設置的摘要
BLOG_URL:博客首頁(yè)的URL,輸出形如http://simue.com/blog/
TEMPLATE_URL:模板文件夾的URL,用于加載模板內的css、js及其他內容,輸出形如http://simue.com/blog/content/templates/simue-tuso/
BLOG_URL.Option::get('topimg'):這句可以無(wú)視,因為只默認模板可以自定義banner,其它模板沒(méi)這功能(卡片語(yǔ):很沒(méi)營(yíng)養的設定,嗯。)
判斷當前是否首頁(yè),是則給導航加current類(lèi),用于表現當前位置。
....... 如后臺設置在前臺顯示碎語(yǔ),則輸出.......中的內容。
判斷當前URL是否為碎語(yǔ)并選擇加類(lèi)名。
$val):?>....... 輸出自定義頁(yè)面的鏈接
', ''); ?> 導航掛載點(diǎn)加入,第2、3參數分別為包裹導航鏈接的開(kāi)始和結束部分,可根據模板自定義。
...... 如管理員或作者登錄則顯示.......中的內容。
Option::EMLOG_VERSION:獲得版本號。
$icp:獲得后臺設置的ICP備案號。
頁(yè)腳底部掛載點(diǎn)加入。
頁(yè)腳底部掛載點(diǎn)加入。
$value['logid'] 該變量為當前日志的id
顯示置頂標記,該函數位于模板module.php內。
輸出日志URL
輸出日志標題
輸出日志的作者,該函數位于模板module.php內。
輸出日志發(fā)布時(shí)間,參數'Y-n-j G:i l'用于定義日期格式。
輸出日志所屬的分類(lèi),該函數位于模板module.php內。
當管理員或作者登陸時(shí)顯示“編輯”鏈接,該函數位于模板module.php內。
輸出日志摘要(沒(méi)有摘要則輸出全文)。
如日志有附件則輸出附件,該函數位于模板module.php內。
輸出日志的標簽,該函數位于模板module.php內。
輸出當前日志的評論數
輸出當前日志的引用量
輸出當前日志的瀏覽量
顯示當前列表頁(yè)的翻頁(yè)功能。
include View::getView('side');
include View::getView('footer');
?> 加入側邊欄及加入頁(yè)腳。
該文件功能函數與列表頁(yè)一致,但參數有區別,注意區分。
$logid 該變量為當前日志的id
顯示置頂標記,該函數位于模板module.php內。
輸出日志標題。
輸出日志的作者,該函數位于模板module.php內。
輸出日志發(fā)布時(shí)間,參數'Y-n-j G:i l'用于定義日期格式。
輸出日志所屬的分類(lèi),該函數位于模板module.php內。
當管理員或作者登陸時(shí)顯示“編輯”鏈接,該函數位于模板module.php內。
輸出日志全文內容。
如日志有附件則輸出附件,該函數位于模板module.php內。
輸出日志的標簽,該函數位于模板module.php內。
日志頁(yè)顯示評論數
日志頁(yè)顯示引用數
日志頁(yè)顯示瀏覽量
相關(guān)日志的掛載點(diǎn),與3.x版本不同,4.0帶第二參數。
輸出鄰近,就是上一篇及下一篇,該函數位于模板module.php內。
輸出該日志被引用的信息列表,與3.x不同注意區分。
輸出該日志評論列表,與3.x不同注意區分。
輸出發(fā)表評論框,與3.x不同注意區分。
該文件寫(xiě)法與echo_log.php類(lèi)似,不再重復。
與之前相同的內容不再重復。
輸出頭像。
輸出作者名。
輸出碎語(yǔ)內容。
根據當前url輸出博客地址,主要用于js,解決跨域問(wèn)題。
輸出碎語(yǔ)所在數據庫中的id號。
發(fā)布碎語(yǔ)的時(shí)間。
$reply_code :其值為‘n’或‘y’,后臺設置是否啟用碎語(yǔ)回復驗證碼。
輸出驗證碼。
側邊欄,主要負責根據后臺widgets設置信息輸出側邊欄內容。建議該文件內代碼保持不變。
doAction('diff_side'); //側邊欄掛載點(diǎn)。
模板公共代碼,包含側邊widgets、評論、引用、編輯等。
該文件由若干函數組成,被博客前臺文件調用,可在內自定義函數實(shí)現更多功能。
如在自定義函數內調用emlog緩存時(shí),假設讀取user緩存信息,則形如:
global $CACHE;
$user_cache = $CACHE->readCache('user');
如需要操作數據庫,則形如:
$DB = MySql::getInstance();
$res = $DB->query($sql);
以上兩點(diǎn)與3.x不同,請注意區分。
doAction('navbar', '
doAction('index_footer'); //頁(yè)腳底部掛載點(diǎn)
doAction('index_loglist_top'); //首頁(yè)日志列表頂部掛載點(diǎn)
doAction('log_related', $logData); //相關(guān)日志掛載點(diǎn)
doAction('diff_side'); //側邊欄掛載點(diǎn)
聯(lián)系客服