SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Joomla!佈景製作教學

          講 者 : A S I K A 	
  
                      	
  
  所 有 權 : I 	
   L O V E 	
   J O O M L A 	
   社 群 	
  




         http://www.facebook.com/groups/lovejoomla/
工欲善其事、必先利其器
好用順手的程式編輯器

—  PsPad	
  


—  NotePad++	
  


—  UltraPad	
  


—  DreamWeaver
瀏覽器除錯工具

—  Chrome 內建開發者工具


—  FireFox 的 FireBUG 外掛


—  IE8,9 內建開發者工具
新增文件檔案

—  Mac上推薦安裝 Document	
  Palette可以像Windows
 一樣新增各類型檔案文件。
Joomla!的模版結構
簡易說明

—  Joomla!的模版皆放在:templates	
  資料夾下面。每個模版有一個
  自己的資料夾。	
  

—  一定會有一個	
  
  templateDteails.xml	
  
  用來辨別模版資訊。	
  

—  還有一個 index.php	
  檔案	
  
    	
  
—  有以上兩者模版即可使用。	
  



—  html是核心輸出覆蓋功能專用。	
  
  其他資料夾可以自行組織。
templateDetails.xml

—  以下xml內容為一個模版要正常運作的最低限度需求內容。	
  
?xml	
  version=1.0	
  encoding=utf-­‐8?	
  
extension	
  type=template	
  version=2.5	
  client=site	
  
           	
  nameSakura	
  Template/name	
  
/extension



—  例如模版名稱叫sakura,將這個xml放在 templates/
     sakura 下,Joomla!中的擴充套件探索即可判讀	
  




—  	
  	
  
設為預設佈景

—  探索並安裝完成後,我們就可以先設為預設了	
  
index.php

—  最簡單的模版初始頁面:	
  
?php	
  defined('_JEXEC')	
  or	
  die;?	
  
!DOCTYPE	
  html	
  PUBLIC	
  -­‐/W3C//DTD	
  XHTML	
  1.0	
  Strict//ENhttp://www.w3.org/TR/xhtml1/
DTD/xhtml1-­‐strict.dtd	
  
html	
  
           	
  head	
  
           	
              	
  jdoc:include	
  type=head	
  /	
  
           	
  /head	
  	
  
           	
  body	
  
           	
              	
  pThis	
  is	
  Sakura	
  Template	
  by	
  Asika/p	
  
           	
  /body	
  
/html



—  define('_JEXEC')	
  or	
  die	
  避免直接執行本php檔	
  
—  同樣放在 template	
  下即可執行。
執行成果

— 
Joomla!模版引擎簡介
基本模版引擎標籤


—  jdoc:include	
  type=head	
  /	
  


—  jdoc:include	
  type=component	
  /	
  


—  jdoc:include	
  type=message	
  /	
  


—  jdoc:include	
  type=module	
  name=footer	
  /	
  


—  jdoc:include	
  type=modules	
  name=position-­‐5	
  /	
  
基本模版引擎標籤

           標頭文件(head)標籤	
  

 jdoc:include	
  type=head	
  /	
  

—  載入Joomla!的head與全站meta資訊,只限一個。	
  
—  含有title,	
  generator,	
  meta	
  keyword等標籤。	
  
—  載入mootools.js等等liberaries。	
  
—  其他任何套件用程式插入的css或js檔案
基本模版引擎標籤

標頭文件(head)標籤	
  
基本模版引擎標籤

           MainBody元件標籤	
  

jdoc:include	
  type=component	
  /	
  

—  展示主要頁面內容,元件生成的畫面等。	
  
—  (只限一個)
基本模版引擎標籤

MainBody元件標籤	
  
基本模版引擎標籤

         Message系統訊息標籤	
  

 jdoc:include	
  type=message	
  /	
  

—  顯示登入需求、操作錯誤	
  
 等等Joomla!系統訊息
基本模版引擎標籤

                   Module模組標籤	
  

jdoc:include	
  type=module	
  name=footer	
  /	
  
jdoc:include	
  type=modules	
  name=position-­‐5	
  /	
  


—  載入模組區塊位置。	
  
—  module	
  只能顯示與name同名的模組。	
  
—  modules	
  可以顯示任何模組。
基本模版引擎標籤

Module模組標籤	
  
模組的Chrome	
  Style與attributes

—  type=modules,module	
  時可以有額外的參數。	
  	
  
—  jdoc:include	
  type=modules	
  name=position-­‐5	
  
  style=rounded	
  attr=A	
  attr=B	
  /	
  


—  Style類型:	
  
    ¡  none	
  : 	
        	
  直接顯示模組內容。	
  
    ¡  rounded	
  :        	
  用四個div包起來方便製作圓角。	
  
    ¡  xhtml	
  : 	
       	
  用div包起來方便製作一般樣式。	
  
    ¡  table,	
  horz	
  : 	
  用table表格包起來。	
  

    ¡  outline	
  :        	
  顯示區塊位置名稱,?tp=1時用的就是這個。	
  
自製chrome	
  style

—  在 templates/YOUR_TEMPLATE/html	
  下,建立一個
 新檔案 modules.php	
  

—  假設我想新增一個 style=custom,就在該文件下
 新增一個 function:	
  
 ¡    function	
  modChrome_custom($modules,$params,$attr){}	
  
 ¡  $modules	
  : 模組物件,包含所有模組資訊。	
  
 ¡  $params	
  :	
  模組參數,用 $params-­‐get('key')取得參數。	
  

 ¡  $attr	
  :	
   自定屬性,會生成陣列, $attr['attr1']==A。	
  
自製chrome	
  style


—  以下為xhtml模式的範例Chrome	
  Style



function	
  modChrome_xhtml($module,	
  $params,	
  $attribs)	
  
{	
  
         	
  if	
  (!empty	
  ($module-­‐content))	
  :	
  ?	
  
         	
             	
  div	
  class=moduletable?php	
  echo	
  htmlspecialchars($params-­‐
get('moduleclass_sfx'));	
  ?	
  
         	
             	
  ?php	
  if	
  ($module-­‐showtitle	
  !=	
  0)	
  :	
  ?	
  
         	
             	
              	
  h3?php	
  echo	
  $module-­‐title;	
  ?/h3	
  
         	
             	
  ?php	
  endif;	
  ?	
  
         	
             	
              	
  ?php	
  echo	
  $module-­‐content;	
  ?	
  
         	
             	
  /div	
  
         	
  ?php	
  endif;	
  
}
特殊功能
沒有模組時隱藏模組位置


?php	
  if	
  ($this-­‐countModules(	
  'position-­‐1'	
  ))	
  :	
  ?	
  
 	
  jdoc:include	
  type=modules	
  name=position-­‐1	
  /	
  
?php	
  endif;	
  ?	
  


—  用php標籤包住jdoc標籤	
  


—  以$this-­‐countModules()計算此位置的模組數量,
  大於1才會顯示。	
  

—  避免該位置沒有模組時出現空白或奇怪的線條	
  
可用的php功能說明

                             使用方式
                                      說明

                                                                 [變數]
                                                                 若網站放在子目錄,將返回子目
?php	
  echo	
  $this-­‐baseurl	
  ;	
  ?
                                                                 錄名稱。(subdir/)
                                                                 若放在根目錄,將返回斜線(/)

                                                                 [變數]
?php	
  echo	
  $this-­‐template	
  ;	
  ?
                                                                 返回現在的模版資料夾名稱。

?php	
  echo	
  $this-­‐params-­‐get('key')	
  ;	
  ?
       [函式] 取得模版參數。

                                                                 [函式]
?php	
  echo	
  $this-­‐countMenuChildren()	
  ;	
  ?
        若本頁面是某個選單,計算下方
                                                                 還有幾個子選單。

?php	
  echo	
  $this-­‐countModules('position')	
  ;	
  ?
   [函式] 計算模組數量。
Config	
  佈景參數
製作佈景參數

—  在templateDetails.xml中新增config標籤
參數標籤結構

—  第一層:config 	
                               	
  參數的根元素,在extension下	
  
—  第二層:fields 	
                               	
  name必須為params	
  
—  第三層:fieldset                                	
  可以有多個	
  
—  第四層:field 	
                                	
  一筆一筆的參數設定

config	
  
         	
  fields	
  name=params	
  
         	
             	
  fieldset	
  name=basic	
  
         	
             	
          	
  field	
  name=title	
  type=text	
  label=TITLE	
  /	
  
         	
             	
          	
  field	
  name=width	
  type=text	
  label=WIDTH	
  /	
  
         	
             	
  /fieldset	
  
         	
             	
  fieldset	
  name=advanced	
  
         	
             	
          	
  field	
  ...	
  /	
  
         	
             	
          	
  field	
  ...	
  /	
  
         	
             	
  /fieldset	
  
         	
  /fields	
  
/config
參數種類

—  可參考官方wiki	
  formfield 欄位說明:	
  
    ¡  http://docs.joomla.org/Form_field	
  
 參數種類

—  每個項目點進去後都有參數詳細說明	
  
範例

—  Text	
  欄位:	
  
    ¡  http://docs.joomla.org/Text_form_field_type	
  	
  



field	
  name=sitetitle	
  	
  	
  
    	
  type=text	
  	
  	
  
    	
  label=網站標題	
  	
  
    	
  description=網站標題說明	
  	
  
/
範例

—  select	
  list	
  下拉式選單欄位:	
  
    ¡  http://docs.joomla.org/List_form_field_type	
  	
  	
  



field	
  name=color	
  type=list	
  label=佈景主題顏色	
  	
  
      	
  option	
  value=nature自然/option	
  
      	
  option	
  value=personal專業/option	
  
/field	
  
	
  
	
  
語系檔製作
設定key

—  Joomla!	
  language	
  key	
  格式:大寫並用底線相連	
  
    ¡  TPL_SAKURA_SITE_TITLE	
  



—  使用時機:	
  
    ¡  當佈景參數中的label,	
  description,	
  option等任何會顯示
        出來的字串。	
  

 ¡    當php檔案中使用 echo	
  Jtext::_('LAGUAGE_KEY')	
  時	
  
範例

—  當templateDetails.xml中的參數這樣寫時:	
  


field	
  name=sitetitle	
  	
  	
  
    	
  type=text	
  	
  	
  
    	
  label=TPL_SAKURA_SITE_TITLE	
   	
  
/

—  未翻譯時長這樣:
範例

—  在 templates/sakura/language/zh-­‐TW	
  下新增檔
  案: zh-­‐TW.tpl_sakura.ini	
  
  ¡    英文則改成 laguage/en-­‐GB/en-­‐GB.tpl_sakura.ini	
  


—  在ini檔中加入一段字串:	
  
    ¡  TPL_SAKURA_SITE_TITLE=網站標題	
  



—  成果: 	
  
Thank You

Weitere ähnliche Inhalte

Was ist angesagt? (11)

Spring入门纲要
Spring入门纲要Spring入门纲要
Spring入门纲要
 
PHP通用程序的模板运行机制
PHP通用程序的模板运行机制PHP通用程序的模板运行机制
PHP通用程序的模板运行机制
 
jsp基础速成精华讲解
jsp基础速成精华讲解jsp基础速成精华讲解
jsp基础速成精华讲解
 
Patterns in Zend Framework
Patterns in Zend FrameworkPatterns in Zend Framework
Patterns in Zend Framework
 
了解Oracle在线重定义online redefinition
了解Oracle在线重定义online redefinition了解Oracle在线重定义online redefinition
了解Oracle在线重定义online redefinition
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现
 
4, workflow tables & api
4, workflow tables & api4, workflow tables & api
4, workflow tables & api
 
Django development
Django developmentDjango development
Django development
 
advanced introduction to codeigniter
advanced introduction to codeigniteradvanced introduction to codeigniter
advanced introduction to codeigniter
 
Hibernate 映射配置文件详解
Hibernate 映射配置文件详解Hibernate 映射配置文件详解
Hibernate 映射配置文件详解
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
 

Ähnlich wie 【 I Love Joomla 】- Joomla!佈景製作教學

I Love Joomla! 佈景製作教學 0212
I Love Joomla! 佈景製作教學 0212I Love Joomla! 佈景製作教學 0212
I Love Joomla! 佈景製作教學 0212
Asika Simon
 
JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)
RANK LIU
 
Zen cart全集
Zen cart全集Zen cart全集
Zen cart全集
fxiong99
 
0220 Windows server 2008 PowerShell
0220 Windows server 2008 PowerShell0220 Windows server 2008 PowerShell
0220 Windows server 2008 PowerShell
Timothy Chen
 
Lotus domino开发教程
Lotus domino开发教程Lotus domino开发教程
Lotus domino开发教程
dyzm_2000
 

Ähnlich wie 【 I Love Joomla 】- Joomla!佈景製作教學 (20)

I Love Joomla! 佈景製作教學 0212
I Love Joomla! 佈景製作教學 0212I Love Joomla! 佈景製作教學 0212
I Love Joomla! 佈景製作教學 0212
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
 
Php
Php Php
Php
 
JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)
 
Model 設定與 Seeding
Model 設定與 SeedingModel 設定與 Seeding
Model 設定與 Seeding
 
Migrations 與 Schema操作
Migrations 與 Schema操作Migrations 與 Schema操作
Migrations 與 Schema操作
 
Zen cart全集
Zen cart全集Zen cart全集
Zen cart全集
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
 
Backbone js and requirejs
Backbone js and requirejsBackbone js and requirejs
Backbone js and requirejs
 
NextGen
NextGenNextGen
NextGen
 
0220 Windows server 2008 PowerShell
0220 Windows server 2008 PowerShell0220 Windows server 2008 PowerShell
0220 Windows server 2008 PowerShell
 
CRUD 綜合運用
CRUD 綜合運用CRUD 綜合運用
CRUD 綜合運用
 
Eloquent ORM
Eloquent ORMEloquent ORM
Eloquent ORM
 
Eloquent ORM
Eloquent ORMEloquent ORM
Eloquent ORM
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
 
Chapter 4 models
Chapter 4 modelsChapter 4 models
Chapter 4 models
 
Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解
 
Lotus domino开发教程
Lotus domino开发教程Lotus domino开发教程
Lotus domino开发教程
 
Kissy design
Kissy designKissy design
Kissy design
 

Mehr von ilovejoomla

新平台 - 佈署Joomla在windows azure
新平台 - 佈署Joomla在windows azure新平台 - 佈署Joomla在windows azure
新平台 - 佈署Joomla在windows azure
ilovejoomla
 
【 I Love Joomla 】 [soho族 x 接案經驗] philsu
【 I Love Joomla 】 [soho族 x 接案經驗] philsu【 I Love Joomla 】 [soho族 x 接案經驗] philsu
【 I Love Joomla 】 [soho族 x 接案經驗] philsu
ilovejoomla
 
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
ilovejoomla
 

Mehr von ilovejoomla (9)

新世代-Joomla 3.0導覽
新世代-Joomla 3.0導覽新世代-Joomla 3.0導覽
新世代-Joomla 3.0導覽
 
新工具 - 提升你的生產力 twitter boottrap
新工具 - 提升你的生產力 twitter boottrap新工具 - 提升你的生產力 twitter boottrap
新工具 - 提升你的生產力 twitter boottrap
 
新平台 - 佈署Joomla在windows azure
新平台 - 佈署Joomla在windows azure新平台 - 佈署Joomla在windows azure
新平台 - 佈署Joomla在windows azure
 
分享就是學習 - AnimApp.Tw 如何聚集眾多協作者成為知識社群
分享就是學習 - AnimApp.Tw 如何聚集眾多協作者成為知識社群分享就是學習 - AnimApp.Tw 如何聚集眾多協作者成為知識社群
分享就是學習 - AnimApp.Tw 如何聚集眾多協作者成為知識社群
 
網路金流機制服務簡介2012
網路金流機制服務簡介2012網路金流機制服務簡介2012
網路金流機制服務簡介2012
 
【 I Love Joomla 】 [soho族 x 接案經驗] philsu
【 I Love Joomla 】 [soho族 x 接案經驗] philsu【 I Love Joomla 】 [soho族 x 接案經驗] philsu
【 I Love Joomla 】 [soho族 x 接案經驗] philsu
 
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
 
【 I Love Joomla 】HtmlxCSS切版教學[基礎篇]
【 I Love Joomla 】HtmlxCSS切版教學[基礎篇]【 I Love Joomla 】HtmlxCSS切版教學[基礎篇]
【 I Love Joomla 】HtmlxCSS切版教學[基礎篇]
 
【 I Love Joomla 】- Artisteer網站佈景製作軟體介紹
【 I Love Joomla 】- Artisteer網站佈景製作軟體介紹【 I Love Joomla 】- Artisteer網站佈景製作軟體介紹
【 I Love Joomla 】- Artisteer網站佈景製作軟體介紹
 

【 I Love Joomla 】- Joomla!佈景製作教學