ecshop模板機制

ecshop模板機制(一)


經常可以看到ecshop的dwt文件裏面有“<!-- TemplateBeginEditable name="doctitle" -->和<!-- #BeginLibraryItem "/library/page_header.lbi" --><!-- #EndLibraryItem -->”這麼一段代碼,有很多朋友誤認爲只是註釋代碼,這裏首先來介紹一下#BeginLibraryItem這段代碼。可以看到後面有“page_header.lbi“這個.lbi文件是一個庫文件,打開後發現裏面就是一些html代碼,index.dwt爲模板,那麼這個.lbi可以理解爲模板index.dwt的子模板,.lbi專門供別的的dwt模板導入的子模板. 那麼 TemplateBeginEditable這個又是幹什麼用的呢? 很多人知道這個是可編輯區域的意思,意思就是在TemplateBeginEditable 和 TemplateEndEditable之間的位置是可編輯區域,具體的我們來舉個例字。首先我們到ecshop 管理員後臺的模板管理->設置模板裏面可以看到以下這個ecshop模板機制 - crazyhut - RUNNING的博客

可以看到上面的默認選擇了首頁模板,假如當你將 商品分類樹 選擇爲右邊主區域 點擊確定之後 清楚緩存,在刷新首頁這是你會發現,原來的 商品分類樹 從左邊跑到右邊了。在上面的下拉框中我們看到只有三個選擇,右邊主區域,左邊主區域,廣告位,如果你想多加幾個選項,那麼很簡單,只要你在你要改的模板內多加上幾個就行了,假如你要在index.dwt模板添加   “左上角主區域”,和“右下角主區域”,那麼你可以在index.dwt 裏面加入

<!-- TemplateBeginEditable name="左上角主區域" -->
<!-- TemplateEndEditable -->

<!-- TemplateBeginEditable name="右上角主區域" -->
<!-- TemplateEndEditable -->

這是你再到後臺,模板設置裏面看首頁的選項中就有這個選項

ecshop模板機制 - crazyhut - RUNNING的博客

下面我來講解一下怎麼製作自己的模板, 我拿index.dwt爲例, 首先在\themes\default\下將index.dwt文件拷貝一份改名爲home.dwt在<body>裏面加一句話 "這是自己定義的home.dwt模板" 以方便調試, 同樣在根目錄下的index.php文件拷貝一份改名爲home.php裏面加一行 echo '這是自己定義的home.php'; 代碼以便調試 同時把$smarty->display('index.dwt', $cache_id);改爲$smarty->display('home.dwt', $cache_id);然後 清楚緩存 在瀏覽器通過http://localhost/ecshop/home.php執行你會發現這個頁面跟首頁一樣,只是多了一段 "這是自己定義的home.php 這是自己定義的home.dwt模板" 文字。 當然home.php 和home.dwt 文件裏面的內容可以自己定義.
當你再到後臺模板管理->設置模板 裏面的 選擇模板下拉框選項中沒有你加的home模板,這時你就要在\admin\includes\lib_template.php裏配置一下。在代碼”$template_files = array('index.dwt', “ 加上你的模板”$template_files = array('home.dwt','index.dwt',“ ,告訴系統有home.dwt這麼一個模板,其次在$page_libs = array( 這個二位數組裏面的 'index' => array( 這個數組拷貝一份,改名爲home ,意思就是告訴系統你這個home模板裏面可以導入哪些.lbi文件.這點配置還不夠,你還要在\languages\zh_cn\admin/template.php語言包裏面加一行$_LANG['template_files']['home'] = 'Myhome模板';代碼.然後你再到後臺模板管理->設置模板可以看到如下結果ecshop模板機制 - crazyhut - RUNNING的博客
  
你會發現下拉框中多了一個Myhome模板選項,當你點擊旁邊的確定按鈕時會報錯,這是因爲你還有一個xml文件沒修改,打開themes\default\libs.xml文件,將 <file name="index.dwt"> 節點內的代碼拷貝一份把節點名改爲<file name="home.dwt">這時你再來重複上次的操作點擊旁邊的確定,就不會報錯了。

接下來我們製作.lbi庫文件
首先我們在\themes\default\library\目錄下新建一個home.lbi文件 裏面輸入"這是我自的lbi文件"然後在\admin\includes\lib_template.php文件裏面,你剛纔新加的'home' => array(home數組裏面 添加你的home.lbi 既在這個數組末尾加'/library/home.lbi' => 0 同樣像修改模板一樣在\languages\zh_cn\admin\template.php 裏面加入一行 $_LANG['template_libs']['home'] = 'Myhome庫文件'; 代碼 這時你到後臺 模板管理->庫項目管理 你就會發現剛剛你加的庫文件出來了。ecshop模板機制 - crazyhut - RUNNING的博客


裏面代碼可以自己修改

這時候你再到 模板管理->設置模板->選擇Myhome模板 確定後,下面可以發現你要編輯的lbi出來了,ecshop模板機制 - crazyhut - RUNNING的博客

默認是非可編輯區庫文件如果你要變爲可選擇項那麼你可以到\themes\default\libs.xml文件裏找到剛纔你加的   <file name="home.dwt"><region name="左邊區域">裏面加上<lib>home</lib>你再回來看就可以了。記得要把後面對應的顯示覆選框勾選上,否則你保存不了你的選擇。

這時你再來訪問http://localhost/ecshop/home.php 你會發現 "這是我自的lbi文件" 文字出來了。

ecshop模板機制 - crazyhut - RUNNING的博客

另外需要補充一下的

遵循如下3步驟
     1 在library 裏面新建 lbi 文件,比如 phpsir.lbi , 請設置 777,到後臺庫項目裏面就能看到和可以編輯 phpsir.lbi
     2 修改 admin/includes/lib_template.php 裏面的 $page_libs 變量
     3 在 libs.xml 裏面找對應模板dwt文件,裏面寫入 <lib>phpsir</lib>

到後臺模板設置,就可以調整此塊內容居於左右位置了

發佈了21 篇原創文章 · 獲贊 4 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章