




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE74Joomla模板教程(認真看,入門和理解joomla很重要)目錄頁碼怎樣在templateDetails.xml文件中為模板添加語言文件聲明5怎樣在模板中自定義模塊結構(modulechrome)6原生模塊結構(modulechrome)類型及對應的HTML輸出8什么是模塊結構(modulechrome)?9什么是jdoc聲明12什么是模塊位(modulepositions)13怎樣計算判斷指定模塊位中的模塊數量15怎樣同時判斷多個模塊位中的模塊數量15怎樣替換默認模板(rhuk_milkyway)的logo17templateDetails.xml文件詳解18模板參數詳解-什么是模板參數22模板參數詳解-怎樣定義模板參數23模板參數詳解-Joomla標準參數類型25模板參數詳解-Calendar參數類型26模板參數詳解-Category參數類型27模板參數詳解-Editors參數類型29模板參數詳解-Filelist參數類型29模板參數詳解-Folderlist參數類型31模板參數詳解-Helpsites參數類型32模板參數詳解-Hidden參數類型33模板參數詳解-Imagelist參數類型34模板參數詳解-Languages參數類型35模板參數詳解-List參數類型36模板參數詳解-Menu參數類型37模板參數詳解-Menuitem參數類型37模板參數詳解-Password參數類型38模板參數詳解-Radio參數類型39模板參數詳解-Section參數類型40模板參數詳解-Spacer參數類型41模板參數詳解-Text參數類型42模板參數詳解-Textarea參數類型42模板參數詳解-Timezones參數類型43模板參數詳解-Usergroup參數類型44模板參數詳解-模板參數的保存方式45模板參數詳解-怎樣獲取并使用模板參數值46模板參數詳解-怎樣創建自定義模板參數類型I47模板參數詳解-怎樣創建自定義模板參數類型II48模板參數詳解-怎樣創建自定義模板參數類型III49模板參數詳解-正則表達式的使用I51模板參數詳解-正則表達式的使用II52模板參數詳解-正則表達式的使用III53模板輸出覆蓋54模板輸出覆蓋-什么是MVC55模板輸出覆蓋-模板與布局55模板輸出覆蓋-自定義模板56模板輸出覆蓋-組件輸出類型57模板輸出覆蓋-布局(Layout)59模板輸出覆蓋-復制與創建布局文件60模板輸出覆蓋-怎樣覆蓋嵌套的布局61模板輸出覆蓋-模塊布局的輸出覆蓋62模板輸出覆蓋-模塊結構(modulechrome)63模板輸出覆蓋-頁碼導航(Pagination)65模板輸出覆蓋-小結歸納66怎樣創建基本的Joomla模板I67怎樣創建基本的Joomla模板II68怎樣創建基本的Joomla模板III70怎樣創建基本的Joomla模板IV72怎樣在templateDetails.xml文件中為模板添加語言文件聲明要使我們的Joomla模板更加國際化,更利于傳播與分享,我們必須確保templateDetails.xml文件中的一些關鍵要素被正確的翻譯(至英文),并列出相關語言定義文件。翻譯templateDetails.xml文件templateDetails.xml文件中的一些要素會在站點管理后臺的模板管理(TemplateManager)中被使用到,它們必須被正確的翻譯成英文,例如:name:模板的名稱,如“Beez”。description:模板的描述。這些信息同樣會在模板安裝的過程中向用戶顯示。向templateDetails.xml中添加語言定義文件所有的語言文件必須在templateDetails.xml文件中被聲明,方法是通過添加<language>標簽將語言定義文件包括進來。有些語言文件用于站點前臺,有些用于管理后臺,對于這兩種語言文件我們需要分別添加。在下面的示例中,我們將兩個英語文件和兩個德語文件(分別用于前后臺)一起添加到Beez模板中:<?xmlversion=”1.0”encoding=”utf-8”?>
<installversion=”1.5”type=”template”>
<languages>
<languagetag=”en-GB”>en-GB.tpl_beez.ini</language>
<languagetag=”de-DE”>de-DE.tpl_beez.ini</language>
</languages>
<administration>
<languagesfolder=”admin”>
<languagetag=”en-GB”>en-GB.tpl_beez.ini</language>
<languagetag=”de-DE”>de-DE.tpl_beez.ini</language>
</languages>
</administration>
</install>為管理后臺添加的語言文件聲明需要放在<administration>標簽中,因為用于前后臺的語言文件的文件名是相同的,所以不可以在相同的路徑中進行聲明。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"AmendingthetemplateDetails.xmlfile"AmendingthetemplateDetails.xmlfile怎樣在模板中自定義模塊結構(modulechrome)要在Joomla模板中增加自定義化的模塊結構(modulechrome),我們需要在模板路徑里的html文件夾中創建一個modules.php文件。例如:Joomla根路徑/templates/模板名/html/modules.php在這個文件中,我們需要創建一個名為modChrome_STYLE的函數,其中STYLE部分為自定義的模塊結構名稱。如下所示,這個函數需要三個參數,$module,&$params和&$attribs<?php
functionmodChrome_STYLE($module,&$params,&$attribs)
{
/*chromedModuleoutputgoeshere*/
}
?>通過這個函數,我們可以為我們的自定義模塊添加任何可用的模塊屬性。下面幾個模塊屬性是我們需要重點了解的:$module->showtitle,$module->content和$module->title。$module->showtitle是一個布爾變量,值可以為“true”(當模塊標題被設置為顯示時)和“false”(當模塊標題被設置為隱藏時)。$module->content和$module->title分別負責返回模塊內容與模塊標題文字。下面是一段實例,我們通過判斷$module->showtitle的值來確定是否輸出模塊標題。<?php
if($module->showtitle)
{
echo'<h2>'.$module->title.'</h2>';
}
?>modChrome_STYLE函數的參數$params負責讀取模塊參數(Moduleparameters)。例如,我們可以在管理后臺的模塊管理中為某個模塊添加后綴class名,這個class名就會存儲在該模塊的moduleclass_sfx參數中;如果我們需要在模塊結構中創建包含這個class的<div>,那么可以使用類似下面這樣的代碼:<divclass="<?phpecho$params->get('moduleclass_sfx');?>">
<!--divcontents-->
</div>自定義模塊屬性我們可以通過<jdoc:include/>聲明來為模塊結構添加更多額外的自定義屬性。這些自定義屬性可以是我們所需的任何形式,它們會被存儲在modChrome_STYLE函數的第三個參數$attibs中。下面的代碼展示了一個比較完整的modChrome_custom函數:<?php
functionmodChrome_custom($module,&$params,&$attribs){
if(isset($attribs['headerLevel']))
{
$headerLevel=$attribs['headerLevel'];
}else{
$headerLevel=3;
}
if(isset($attribs['background']))
{
$background=$attribs['background'];
}else{
$background='blue';
}
echo'<divclass="'.$params->get('moduleclass_sfx').'">';
if($module->showtitle)
{
echo'<h'.$headerLevel.'>'.$module->title.'</h'.$headerLevel.'>';
}
echo'<divclass="'.$background.'">';
echo$module->content;
echo'</div>';
echo'</div>';
}
?>接下來我們可以通過向<jdoc:include/>傳遞所需的參數來為模塊設置背景色和標題級別(h1,h2,h3...);如果不做設置,那么根據modChrome_custom函數中的定義,背景色默認為藍色,標題級別為h3。設置方法參照下圖:另外,\o"passparameterstomodulechrome?"這個帖子中講到了很多關于向模塊結構傳遞參數的問題,可以作為參考。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"Applyingcustommodulechrome"Applyingcustommodulechrome原生模塊結構(modulechrome)類型及對應的HTML輸出前面一篇Joomla文檔譯文中描述了\o"怎樣在模板中自定義模塊結構(modulechrome)"怎樣在模板中自定義模塊結構(modulechrome),今天繼續有關模塊結構的話題,來看看Joomla原生的幾種模塊類型以及它們各自對應的HTML輸出。我們可以在<jdoc:include/>聲明中添加樣式屬性style="stylename"來控制Joomla模塊的HTML輸出模式,其中stylename對應著不同的模式名稱:None模塊樣式的默認值,即不做任何樣式定義,沒有任何額外的樣式被添加。Table整個模塊會被一個不定寬度的,class名稱為.moduletable的<table>包裹起來,模塊標題通過<th>輸出。Horz沒有任何額外的樣式被添加,輸出與Table模式相同,但<table>的寬度被設定為100%XHTML整個模塊會被一個class名稱為.moduletable的<div>包裹起來,模塊標題通過<h3>輸出。Rounded整個模塊會被4個<div>嵌套包裹,用以生成圓角樣式;最外層<div>的class為.module。模塊標題通過<h3>輸出。Outline模塊由一個class名稱為.mod-preview-wrapper的<div>包裹,外面再包裹一層class為.mod-preview的<div>;一個與.mod-preview-wrapper同級的class為mod-preview-info的<div>用來顯示當前模塊的位置名稱。(這種模式通常用于在開發調試過程中將各模塊位置及名稱直接在頁面上以輪廓的形式顯示出來。)以上。在明天的Joomla文檔譯文中我們一起進一步詳細了解下每種模塊結構的輸出范例。(這里:\o"Joomla文檔中文翻譯-什么是模塊結構(modulechrome)"Joomla文檔中文翻譯-什么是模塊結構)如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"CoremodulechromeCSS"CoremodulechromeCSS什么是模塊結構(modulechrome)?前面兩篇Joomla文檔譯文分別描述了“\o"Joomla文檔中文翻譯-怎樣在模板中自定義模塊結構(modulechrome)"怎樣在模板中自定義模塊結構”和“\o"Joomla文檔中文翻譯-原生模塊結構(modulechrome)類型及對應的HTML輸出"原生模塊結構類型及對應的HTML輸出”;今天我們回頭來看看什么是模塊結構(modulechrome);邏輯上有些混亂,我也確實沒有預先為待翻譯的文檔做排序;作為知識補完與強化吧。什么是模塊結構(modulechrome)?模塊結構可以讓模板設計者們根據需求來控制模塊以不同的方式進行輸出顯示。本質上說,模塊結構由多個預先定義好的HTML輸出模式組成,例如不同的容器標簽、輸出順序或嵌套關系等,基于這些不同的結構模式,我們可以通過CSS來控制模塊的具體樣式。最常見一種模塊結構就是圓角模式(rounded),其輸出結構可以使我們很方便的為模塊設置圓角背景。除了“圓角”以外,還有一些其他的的結構模式,它們由<jdoc:include/>聲明中的style屬性來決定。例如,下面的聲明可以在模板的index.php文件中向user1模塊位置插入模塊,并且將模塊的結構模式定義為“custom”:<jdoc:includetype="modules"name="user1"style="custom"/>現在,所有user1位置中的模塊都會以同一種模塊結構來輸出,換句話說,如果你希望在同一列中的兩個模塊擁有不同的模塊結構,那么必須將它們置于不同的模塊位置中,例如user1和user2。標準的Joomla1.5中預設了6個原生模塊結構,但是Joomla模板系統的靈活性決定了我們可以不必局限于這6個結構模式中,我們可以依照需求自由創建各種風格的模塊結構。下圖展示了6個預設模塊結構的style名稱、HTML輸出以及在頁面中的實際樣式:通過上面的示例我們可以看出,不同的模塊結構所輸出的前臺樣式未必有很大區別——這取決于模板使用的CSS樣式表。例如“none”和“horz”兩種模式的前臺默認輸出幾乎一致,但它們的HTML代碼卻有很大不同。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"Whatismodulechrome?"Whatismodulechrome?什么是jdoc聲明今次又是一篇知識補完,就著前面幾篇關于ModuleChrome的文檔,現將jodc的單篇也排到這里。jdoc聲明是Joomla模板的一個方法(method),用來在頁面中輸出指定的內容。典型的jdoc聲明看上去是這樣的:<jdoc:includetype="component"/>。不同類型(type)的jdoc聲明負責不同的內容輸出。Component<jdoc:includetype="component"/>這個聲明要放在模板的<body></body>中,并且只能出現一次;它負責輸出當前頁面的主要內容(maincontent)。Head<jdoc:includetype="head"/>這個聲明要放在模板的<head></head>中,并且只能出現一次;它負責輸出當前頁面的樣式表鏈接、腳本鏈接、meta信息等內容。Installation<jdoc:includetype="installation"/>這個類型的jdoc聲明只用于Joomla的安裝器模板(Installertemplate)中,與Component類型相似,它只負責輸出安裝過程中頁面上的主要內容。Message<jdoc:includetype="message"/>message聲明要放在模板的<body></body>中,并且只能出現一次,用于輸出操作過程中的系統提示信息或出錯信息。Module<jdoc:includetype="module"name="breadcrumbs"/>
<jdoc:includetype="module"name="menu"/>
<jdoc:includetype="module"name="submenu"style="rounded"id="submenu-box"/>module類型的jdoc聲明會根據其name屬性輸出對應的模塊,但該模塊內容是否會呈現在頁面上則取決于用戶是否發布激活了該模塊;我們可以為其設定style屬性來控制模塊輸出模式;可參見“\o"Joomla文檔中文翻譯-原生模塊結構(modulechrome)類型及對應的HTML輸出"Joomla文檔中文翻譯-原生模塊結構(modulechrome)類型及對應的HTML輸出”。Modulesmodules類型的jdoc聲明用來在當前位置調用某個模板位置(templateposition)的所有模塊;所有的模板位置都需要預先在templatedetails.xml文件中定義。我們同樣可以為其設定style屬性來控制模塊的輸出模式。下面是是一些Joomla模板中常見的modules類型的jdoc聲明:<jdoc:includetype="modules"name="debug"/>
<jdoc:includetype="modules"name="icon"/>
<jdoc:includetype="modules"name="left"style="rounded"/>
<jdoc:includetype="modules"name="left"style="xhtml"/>
<jdoc:includetype="modules"name="right"style="xhtml"/>
<jdoc:includetype="modules"name="status"/>
<jdoc:includetype="modules"name="syndicate"/>
<jdoc:includetype="modules"name="title"/>
<jdoc:includetype="modules"name="toolbar"/>
<jdoc:includetype="modules"name="top"/>
<jdoc:includetype="modules"name="top"style="xhtml"/>
<jdoc:includetype="modules"name="user1"style="xhtml"/>
<jdoc:includetype="modules"name="user2"style="xhtml"/>
<jdoc:includetype="modules"name="user3"/>
<jdoc:includetype="modules"name="user4"/>另外,關于模塊輸出,可以參見“\o"Joomla文檔中文翻譯-怎樣在模板中自定義模塊結構(modulechrome)"Joomla文檔中文翻譯-怎樣在模板中自定義模塊結構(modulechrome)”以了解更多模塊輸出自定義方面的信息。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"jdocstatements"jdocstatements什么是模塊位(modulepositions)模塊位是模板中用來容納模塊的容器,它們定義了模塊在模板中的位置,用以告訴Joomla將模塊的輸出內容放置在哪些指定的地方。模板設計者們對模塊位有充分的控制權,他們可以基于Joomla默認的模塊位在不同的模板中創造出各種變化。例如,名為“left”的模板位可以被放置在模板的左側邊欄容器中,但根據設計者的需求,它同樣可以被設計放置到頁面的其他位置;所以當一個模塊被分配到“left”模板位后,它只會顯示在“left”模塊位所處的任何可能的位置,而并非一定在左側邊欄。templateDetails.xmltemplateDetails.xml文件包含了模板所有的安裝及核心信息,包括該模板所要用到的模塊位信息;模塊位信息需要通過列表來聲明,下面是一個范例:<positions>
<position>top</position>
<position>left</position>
<position>right</position>
<position>bottom</position>
<position>banner</position>
<position>syndicate</position>
<position>footer</position>
<position>user1</position>
<position>user2</position>
<position>user3</position>
<position>user4</position>
</positions>上面的聲明中都是一些常用模板位,但無論是模板位的名稱還是位置樣式都由設計者來決定;設計者可以根據需求在這個列表中任意添加在模板中需要用到的模塊位。在模板中使用模塊位Joomla模板通過使用<jdoc:include/>聲明來調用和顯示模塊,一個典型的jdoc聲明的形式如下:<jdoc:includetype="modules"name="nameofmoduleposition"style="xhtml"/>關于jdoc聲明的使用,可以參見“\o"Joomla文檔中文翻譯-什么是jdoc聲明"Joomla文檔中文翻譯-什么是jdoc聲明”了解更多的信息。模板位可視化我們可以很方便的在站點的前臺頁面中查看當前模板用到的模塊位,只需要在當前頁面的URL后面輸入查詢參數“tp=1”,例如:/index.php?tp=1如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"Joomla-ModulePositions"Modulepositions怎樣計算判斷指定模塊位中的模塊數量我們可以在Joomla模板中使用countModules方法來判斷一個指定模塊位(modulepositions)中的模塊數量\o""。關于“模塊位”,可以參見“\o"Joomla文檔中文翻譯-什么是模塊位"Joomla文檔中文翻譯-什么是模塊位”。我們通常使用這種方法來判斷某個模塊位中是否存在至少一個已啟用的模塊,如果存在,則在頁面中輸出HTML容器并通過jdoc聲明(關于“jdoc聲明”,可以參見“\o"Joomla文檔中文翻譯-什么是jdoc聲明"Joomla文檔中文翻譯-什么是jdoc聲明”)將模塊包含在其中。這種做法可以有效的避免當沒有模塊內容的時候在頁面中輸出空的HTML標簽,同時這也是實現“合并列”的技術之一。下面的示例代碼用來判斷“user1”模塊位中是否存在已啟用的模塊,如果存在,則輸出<div></div>容器并將“user1”模塊位中的模塊內容輸出到這個容器中。<?phpif($this->countModules('user1')):?>
<divclass="user1">
<jdoc:includetype="modules"name="user1"style="rounded"/>
</div>
<?phpendif;?>我們將在下一篇文檔中來看看\o"Joomla文檔中文翻譯-怎樣同時判斷多個模塊位中的模塊數量"怎樣同時判斷多個模塊位中的模塊數量。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"JoomlaDoc-Countingmodulesinagivenmoduleposition"Countingmodulesinagivenmoduleposition怎樣同時判斷多個模塊位中的模塊數量上一篇文檔介紹了\o"Joomla文檔中文翻譯-怎樣計算判斷指定模塊位中的模塊數量"怎樣計算判斷指定模塊位中的模塊數量,今天我們來看看怎樣同時判斷多個模塊位中的模塊數量。我們依然使用countModules函數來做判斷,與對單一模塊中的模塊數量進行判斷的情況有所區別,現在我們需要為countModules函數提供多于一個的模塊位名稱作為參數\o""。例如,我們可以通過下面這行代碼來計算“user1”和“user2”兩個模塊位中的模塊總數:$this->countModules('user1+user2');這里我們需要注意運算符的使用,上面的代碼中我們通過“+”來計算這兩個模塊位中的模塊總數,如果將“+”替換為“and”,那么函數將判斷這兩個模塊位是否各自至少包含一個模塊(“+”對模塊數量做加法運算,而“and”是“與”、“&&”的概念);代碼如下:$this->countModules('user1anduser2');注意上面代碼中的“and”需要包含在引號里面,一個常見的錯誤就是將代碼誤寫成下面的樣子:$this->countModules('user1'and'user2');另外一點需要注意的是,無論使用'user1+user2'還是'user1anduser2',在“+”和“and”的兩側都要保留一個空格。實例一根據設計需求,我們要把user1和user2兩個模塊位都放置在<divclass="rightcolumn">這個列中;當這兩個模塊位都沒有被分配模塊時,我們希望HTML代碼中不要輸出<divclass="rightcolumn">這個空容器。實現這個需求的代碼如下:<?phpif($this->countModules('user1oruser2')):?>
<divclass="rightcolumn">
<jdoc:includetype="modules"name="user1"style="xhtml"/>
<jdoc:includetype="modules"name="user2"style="xhtml"/>
</div>
<?phpendif;?>實例二設計需求是user1和user2兩個模塊位需要并排放在<divclass="user1user2">這個容器中,并且被一個分隔符分開;如果只有一個模塊位被分配了模塊,分隔符就不需要顯示出來;如果兩個模塊位都沒有被分配模塊,那么整個<div>容器不需要被輸出。實現這個需求的代碼如下:<?phpif($this->countModules('user1oruser2')):?>
<divclass="user1user2">
<?phpif($this->countModules('user1')):?>
<jdoc:includetype="modules"name="user1"style="xhtml"/>
<?phpendif;?>
<?phpif($this->countModules('user1anduser2')):?>
<divclass="greyline"></div>
<?phpendif;?>
<?phpif($this->countModules('user2')):?>
<jdoc:includetype="modules"name="user2"style="xhtml"/>
<?phpendif;?>
</div>
<?phpendif;?>第一行代碼的原理與實例一相同,用來判斷整個容器是否需要被輸出;接下來的三個判斷中,第一個和第三個分別判斷user1和user2是否被分配模塊,中間一段代碼用來判斷如果user1和user2中同時有模塊輸出,則顯示分隔符容器。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"Countingmodulesinmultiplemodulepositions"Countingmodulesinmultiplemodulepositions\o"JoomlaDoc-Countingmodulesinagivenmoduleposition"怎樣替換默認模板(rhuk_milkyway)的logo創建我們自己的logo圖片;原logo為8位png格式的圖片,因為需要保留透明的部分以適應模板頭部的漸變,我們也可以將自己的logo圖片制作為透明背景并保存成同樣的格式\o""。將新logo上傳至Joomla根路徑/templates/rhuk_milkyway/images文件夾。進入站點管理后臺->擴展->模板管理。點擊rhuk_milkyway模板名稱,進入該模板的編輯頁面。點擊“編輯CSS(EditCSS)”。選擇template.css文件并點擊“編輯(edit)”。找到div#logo的樣式代碼,看上去大致是這樣的:div#logo{
position:absolute;
left:0;
top:0;
float:left;
width:298px;
height:75px;
background:url(../images/mw_joomla_logo.png)00no-repeat;
margin-left:30px;
margin-top:25px;
}我們需要將background屬性中的圖片替換為我們之前上傳的新logo,也就是將url(../images/mw_joomla_logo.png)中最后的圖片文件名替換為我們新logo的文件名。保存,搞定。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"HowtoreplacetheJoomlalogo"HowtoreplacetheJoomlalogotemplateDetails.xml文件詳解templateDetails.xml文件向模板管理器(TemplateManager)提供了很多關于模板的重要meta數據(meta-data,元數據),用于模板的安裝及維護。通常,這些數據通過文本縮進的方式來體現出不同的區塊,方便閱讀和識別?;拘畔⒃谡军c管理后臺的模板管理中,我們可以看到一個可用的模板列表,它包含了每個模板的基本信息;所有這些信息都是通過templateDetails.xml文件提供的。下面是一個模板管理頁面的截圖,其中<name>,<version>等紅字標明的信息名稱即對應著下面xml文件代碼中的相關標簽。<installversion="1.5"type="template">
<name>rhuk_milkyway</name>
<creationDate>11/20/06</creationDate>
<author>AndyMiller</author>
<authorEmail>Thise-mailaddressisbeingprotectedfromspambots.YouneedJavaScriptenabledtoviewit</authorEmail>
<authorUrl></authorUrl>
<copyright></copyright>
<license>GNU/GPL</license>
<version>1.0.2</version>
<description>TPL_RHUK_MILKYWAY</description>文件結構模板所用到的每個文件都要在templateDetails.xml中列出,每個文件名都要包括其相對于模板根路徑的完整路徑信息。Joomla的模板安裝器會在安裝儲存模板文件的時候用到這些信息。下面的文件結構聲明示例取自rhuk_milkyway模板的templateDetails.xml文件。<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>template_thumbnail.png</filename>
<filename>params.ini</filename>
<filename>images/arrow.png</filename>
<filename>images/indent1.png</filename>
</files>一種比較推薦的更加完整的文件結構聲明是這樣的(包括images和css文件夾的路徑):<files>
<filename>index.php</filename>
<filename>component.php</filename>
<filename>templateDetails.xml</filename>
<filename>template_thumbnail.png</filename>
<filename>params.ini</filename>
<folder>images/</folder>
<folder>css/</folder>
</files>語言有些模板會包含語言文件,用來自定義頁面中的一些靜態文本。下面的示例中包含兩個語言文件,其中第一個用于前臺頁面,第二個(包含在<administration>標簽中的)用于管理后臺頁面。<languages>
<languagetag="en-GB">en-GB.tpl_beez.ini</language>
</languages>
<administration>
<languagesfolder="admin">
<languagetag="en-GB">en-GB.tpl_beez.ini</language>
</languages>
</administration>模塊位關于模塊位,請參考“\o"Joomla文檔中文翻譯-什么是模塊位(modulepositions)"Joomla文檔中文翻譯-什么是模塊位(modulepositions)”;下面是一個典型的模塊位聲明:<positions>
<position>breadcrumb</position>
<position>left</position>
<position>right</position>
<position>top</position>
<position>user1</position>
<position>user2</position>
<position>user3</position>
<position>user4</position>
<position>footer</position>
<position>debug</position>
<position>syndicate</position>
</positions>模板參數很多模板會向管理后臺的模板管理器提供一些可供設置的參數,例如rhuk_milkyway模板允許我們設置邊框顏色、背景色及模板寬度等,如下圖:templateDetails.xml文件中下面這段代碼就是用來向模板管理器提供ColorVariation可選參數的(上圖紅框中的第一個下拉列表):<params>
<paramname="colorVariation"type="list"default="white"label="ColorVariation"description="Colorvariationtouse">
<optionvalue="blue">Blue</option>
<optionvalue="red">Red</option>
<optionvalue="green">Green</option>
<optionvalue="orange">Orange</option>
<optionvalue="black">Black</option>
<optionvalue="white">White</option>
</param>
</params>在接下來的幾天,我們將繼續深入了解各種類型的模板參數。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"WhatisthepurposeofthetemplateDetails.xmlfile?"WhatisthepurposeofthetemplateDetails.xmlfile模板參數詳解-什么是模板參數模板系統一直是Joomla的一個強大的特色功能,但在Joomla1.5之前,其靈活性并非很強。例如,一套模板若要包含幾種不同的色彩風格,必須針對不同的色彩提供若干套單獨的模板以供用戶選擇。一些模板提供者自己創造了用來針對一套模板進行色彩方案修改的方法,但是這些方法并沒有標準化,并且需要用戶方面大量的手動操作,甚至需要安裝相應的組件才可以控制。隨著Joomla1.5的模板參數功能的到來,這些糟糕的狀況得以改變。準確的說,模板參數實質上是一種擴展參數,因為它的機制原理和其他擴展(組件、模塊,插件)的參數是相同的。在接下來的一系列文檔中,我們將學習怎樣在設計開發模板的過程中創建和使用參數。對于每個類型的模板參數我們都會展開詳解,我們還可以學到如何創建自定義參數類型來適應我們獨特的開發需求;有關在模板中使用正則表達式的一些方法也會被涵蓋進來。模板參數簡介到站點管理后臺的“擴展->模板管理(Extensions->TemplateManager)”中,在模板列表里點擊“rhuk_milkyway”,在接下來的模板編輯頁面中右側的“參數(Parameters”設置組里,有一些下拉列表,例如“更換顏色”、“更換背景”等,如下圖。這些就是典型的模板參數,用來控制模板的色彩配置方案。模板參數允許管理員對模板的樣式和行為進行控制;但只有模板設計者才能決定模板中需要哪些參數以控制哪些樣式和行為。下面三個方面籠統的概括了設計者在添加參數時需要做的事情:在templateDetails.xml文件中通過<param>聲明參數(可參考“\o"Joomla文檔中文翻譯-templateDetails.xml文件詳解"Joomla文檔中文翻譯-templateDetails.xml文件詳解”)。向params.ini文件中增加相應修改;params.ini文件用來保存當前模板所用到的參數設置。向模板的php文件中增加相應的代碼來獲取參數值并做出相應的行為調整。在接下來的一篇文檔中,我們將詳細了解怎樣在templateDetails.xml文件中聲明模板參數。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"Tutorial:Templateparameters"Tutorial:Templateparameters模板參數詳解-怎樣定義模板參數templateDetails.xml文件位于Joomla模板的根路徑中,例如在Joomla自帶的Beez模板中,該文件路徑應該是這樣的:Joomla根路徑/templates/beez/templateDetails.xml需要注意templateDetails.xml的文件名對大小寫字母敏感;我們可以使用標準的代碼編輯器對該文件進行編輯。打開templateDetails.xml文件,找到<params>標簽;如果當前文件中沒有定義過任何參數,那么需要首先添加<params>標簽,注意要添加到<install></install>內。需要提到的是,在Joomla1.6中,<install>標簽將不再使用,取而代之的是<extension>標簽。如果你對templateDetails.xml文件還不大熟悉,可以先參考“\o"/joomla-documentation/templates/165-joomla-doc-what-is-the-purpose-of-the-templatedetails-xml-file"Joomla文檔中文翻譯-templateDetails.xml文件詳解”一文稍做了解。<params></params>中的每一個<param>元素對應著一個模板參數定義;取決于所要定義的參數類型,<param>元素會包含不同數量的必要或可選的參數設置。真正必要的參數是type和name,但是通常default,description和label都會被用到。下面來看看這些參數的具體作用:type(必要參數):用來定義當前參數在模板參數表單中以怎樣的表單元素來呈現,如下拉列表或單選按鈕。name(必要參數):參數名稱;模板文件的代碼會根據這些名稱來獲取參數值并做出相應的行為調整。default(可選參數):參數的默認值。description(可選參數):參數的功能說明;會作為提示氣泡在模板參數設置中向用戶顯示。label(可選參數):作為參數的標題,在模板參數設置頁面中現實在參數表單項的前面。下面的截圖中,“ColorVariation”是label,氣泡中的文字是description,下拉列表是type,“Blue”是default。下面的示例中,我們定義了兩個模板參數,第一個的類型是下拉列表,第二個是單選按鈕組,分別用來控制模板的顏色及作者信息的顯示。<params>
<paramname="templateColour"type="list"default="blue"
label="TemplateColour"description="Choosethetemplatecolour.">
<optionvalue="blue">Blue</option>
<optionvalue="red">Red</option>
<optionvalue="green">Green</option>
<optionvalue="black">Black</option>
</param>
<paramname="authorCopyright"type="radio"default="1"
label="AuthorCopyright"description="Show/Hideauthorcopyright.">
<optionvalue="0">hide</option>
<optionvalue="1">show</option>
</param>
</params>在后臺的模板管理中,模板參數的設置表單項會像下面截圖中那樣呈現:如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"Tutorial:Templateparameters"Tutorial:Templateparameters模板參數詳解-Joomla標準參數類型在上一篇文檔中,我們了解了\o"Joomla文檔中文翻譯-模板參數詳解-怎樣定義模板參數"怎樣定義模板參數,今天我們來看看Joomla模板中的標準模板參數類型有哪些。Joomla自帶了21種標準的參數類型,通過這些標準參數類型,我們可以定義用于Joomla各種擴展(模板、組件、模塊和插件)的參數。下面是所有標準參數類型的列表,包括參數類型名稱及作用。calendar:生成日歷,可以選擇或編輯日期。category:生成一個包含指定section中所有category名稱的下拉列表。editors:生成一個包含所有可用“所見即所得”編輯器名稱的下拉列表。filelist:生成一個包含指定路徑中所有文件名稱的下拉列表。folderlist:生成一個包含指定路徑中所有文件夾名稱的下拉列表。helpsites:生成一個包含所有用于Joomla安裝過程的幫助站點名稱的下拉列表。hidden:生成一個隱藏的表單項,用來保存那些無法被直接修改參數設置(其實可以在params.ini文件中手動修改此類參數設置)。imagelist:生成一個包含指定路徑中所有圖片文件的下拉列表。languages:生成一個包含所有語言安裝文件名稱的下拉列表。list:生成一個可以自定義列表項內容的下拉列表。menu:生成一個包含站點中所有菜單名稱的下拉列表。menuitem:生成一個包含站點中所有菜單項名稱的下拉列表。password:生成一個用于輸入密碼的文本框。radio:生成一組單選按鈕。section:生成一個包含站點中所有section名稱的下拉列表。spacer:生成一個分隔線,用于在視覺上為參數設置表單劃分區域,無實際功能。sql:生成一個下拉列表;通過查詢參數得到的數據庫表中的第一列構成了所有的列表項。text:生成一個文本框。textarea:生成一個文本域。timezones:生成一個包含所有時區名稱的下拉列表。usergroup:生成一個包含所有用戶組名稱的下拉列表。我們將在接下來的文檔中對每一個參數類型進行詳細的描述。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"Tutorial:Templateparameters"Tutorial:Templateparameters模板參數詳解-Calendar參數類型作為標準的Joomla模板參數,Calendar會在模板的參數設置表單中輸出一個文本框,該文本框右側有一個日歷圖標,點擊后會彈出一個日歷;文本框本身也可以用來輸入或編輯日期;如果已經輸入并保存過日期參數,那么這個文本框會顯示已保存的日期;否則會顯示定義該參數時賦予的默認值或空白。下面是對應著Calendar參數類型的參數定義詳解:type(必要參數):必須為“calendar”。name(必要參數):日歷的名稱;該名稱必須唯一。label(必要參數):顯示在表單中的標題。default(可選參數):默認日期值;在格式上必須與后面的“format”相同(詳細的日期格式見后文中的示例)。description(可選參數):參數的功能說明;會作為提示氣泡向用戶顯示。format(可選參數):日期格式;如果沒有設定,則默認格式為“%Y-%m-%d”(輸出格式為“2009-11-28”)class(可選參數):日期文本框的class名稱,默認為“inputbox”。下面是一個在templateDetails.xml文件中定義Calendar類型參數的代碼范例:<paramname="mycalendar"type="calendar"default="5-10-2008"label="Selectadate"description=""format="%d-%m-%Y"/>其中format參數與default中的日期格式必須一致;它們都是標準的PHP日期字符串格式(關于PHP日期字符串,可以參見\o"PHP:date-Manual"/manual/en/function.date.php了解詳情)。下圖中展示了一些常用的日期字符串格式,請參考其中Character列與對應的Example列中的格式范例來選擇使用。由于日期字符串中有些元素,例如“%F”,會根據不同的語言而顯示不同的字符,所以在前后臺模板語言不一至的情況下,需要慎用。另外Calendar參數只支持西歷(陽歷)格式。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"Tutorial:Templateparameters"Tutorial:Templateparameters模板參數詳解-Category參數類型作為標準的Joomla模板參數,Category參數會在模板的參數設置表單中輸出一個包含指定section中所有category名稱的下拉列表。如果已經選擇并保存過category名稱,那么這個下拉列表會顯示已保存的值;否則會顯示定義該參數時賦予的默認值或空白。該下拉列表的第一個列表項永遠是“SelectCategory”,其value值為0。需要注意的是,即使我們所指定的section還沒有被發布到前臺,所屬于它的category依然會在該列表中顯示出來\o""。我們可以利用這一點來在模板中創建一個草稿內容區,即使這些內容所屬的section還沒有被發布。下面是定義Category類型模板參數時會用到的參數:type(必要參數):必須為“category”。name(必要參數):category列表的名稱;該名稱必須唯一。label(必要參數):顯示在表單中的標題。section(可選參數):section的ID數字;可以在section管理(SectionManager)中找到該數字。如果不做指定,那么列表中將包含所有section中的所有的category。scope(可選參數):指定section的別名。default(可選參數):默認category的ID數字。description(可選參數):參數的功能說明;會作為提示氣泡向用戶顯示。class(可選參數):category下拉列表的class名稱,默認為“inputbox”。下面是一個在templateDetails.xml文件中定義Category類型參數的代碼范例:<paramname="mycategory"type="category"label="Selectacategory"description=""section="3"/>templateDetails.xml文件是什么?請參見“\o"templateDetails.xml文件是什么?"Joomla文檔中文翻譯-templateDetails.xml文件詳解”。如需轉載,請注明官方英文文檔及\o""本人譯文的出處,謝謝。查看官方英文文檔:\o"Tutorial:Templateparameters"Tutorial:Templateparameters模板參數詳解-Editors參數類型作為標準的Joomla模板參數,Editor參數會在模板的參數設置表單中生成一個包含所有可用“所見即所得”編輯器名稱的下拉列表。如果已經選擇并保存過某個編輯器,那么這個下拉列表會顯示已保存的值;否則會顯示定義該參數時賦予的默認值或空白。該下拉列表的第一個列表項永遠是“SelectEditor”,其value值為0。下面
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市管理專員考試的主要內容及答案
- 2025年藝術創作與文化傳播基礎知識考試卷及答案
- 2025年職業院校教師教學能力測評試卷及答案
- 2025年現代企業管理與創新能力測試考試卷及答案
- 2025年文化產業與創意經濟知識考試卷及答案
- 2025年心理咨詢師執業考試卷及答案
- 2025年社會保障政策與法規考核試卷及答案
- 2025年食品安全管理考試試題及答案
- 2025年人力資源管理師職業考試題及答案
- 2025年家庭教育指導師職業資格考試卷及答案
- 2021-2022學年浙江省杭州市臨平區小學二年級下冊語文期末試題及答案
- 書法入門基礎知識單選題100道及答案解析
- 機械制圖-形成性任務3-國開(ZJ)-參考資料
- 房子個人抵押合同范本
- 中醫基礎情志護理
- 2024閥控式鉛酸密封蓄電池
- 2022-2023學年山東省泰安市高一下學期期末數學試題(解析版)
- 倉庫搬運裝卸服務方案
- 示范區城區控制性詳細規劃說明書
- 馬鞍山二中理科創新人才實驗班招生考試物理試題
- GB/T 44198-2024空間站科學實驗系統集成與驗證要求
評論
0/150
提交評論