为 Drupal 7 构建一个新主题
主題解釋了 Drupal 網(wǎng)站的用戶界面 (UI)。雖然主題結(jié)構(gòu)并沒(méi)有明顯的變化,但 Drupal 版本 7 配備了一個(gè)新的主題實(shí)現(xiàn)方法。本文演示了如何創(chuàng)建一個(gè)新的 Drupal 7 主題。
http://www.ibm.com/developerworks/cn/opensource/os-new-drupal-theme/index.html
Drupal 主題的目標(biāo)是將框架的處理邏輯和設(shè)計(jì)元素分開(kāi)。為了做到這一點(diǎn),Drupal 采用了一個(gè)復(fù)雜的主題系統(tǒng),其中包括主題、主題引擎和掛鉤。主題組件與 Drupal 核心系統(tǒng)和模塊設(shè)計(jì)元素配合,創(chuàng)建具有獨(dú)特外觀的用戶界面(單獨(dú) Drupal 頁(yè)面和表單)。由于將 Drupal 的業(yè)務(wù)邏輯從它的表示邏輯中分離出來(lái),使代碼更易于維護(hù),并且您無(wú)需重寫代碼層就可以交換出主題層的實(shí)現(xiàn),反之亦然。圖 1?說(shuō)明了 Drupal 框架結(jié)構(gòu)。
圖 1. Drupal 框架結(jié)構(gòu)
主題顯示 Drupal 核心通過(guò)底層主題引擎從數(shù)據(jù)庫(kù)中提取的數(shù)據(jù),主題引擎被用作 Drupal 核心和主題模板之間的接口。
主題引擎
主題引擎?是一種手段,主題通過(guò)此引擎與 Drupal 核心進(jìn)行交互。有幾個(gè)主題引擎可以與 Drupal 配合使用。最流行的是:
- PHPTemplate
- XTemplate
- Plain PHP
- Smarty Engine
其他 Drupal 主題引擎
與 Drupal 配合的還有其他幾個(gè)常用主題引擎。它們包括PHPTAL、wgSmarty、Zengine、Awesomengine、ETS、Haml、XSLengine?和 Peroxide。不過(guò),本文使用?PHPTemplate?引擎,因?yàn)樗悄J(rèn)的主題引擎,并且是與 Drupal 7 一起打包的惟一主題引擎。
如果您愿意,您也可以使用自己的自定義引擎。
PHPTemplate?主題引擎是默認(rèn)的 Drupal 引擎,也是本文中所使用的主題引擎,它使用名稱類似于?filename.tpl.php?的單獨(dú)主題文件作為 Drupal 的?theme_filename()?函數(shù)的主題。這些文件每個(gè)均包含面向動(dòng)態(tài)數(shù)據(jù)的 HTML 框架以及 PHP 語(yǔ)句。因此,憑借 PHP 的基本知識(shí),利用?PHPTemplate?就能輕松創(chuàng)建高級(jí)主題,因?yàn)檫@只涉及極少量的代碼。
回頁(yè)首
規(guī)劃主題
主題是由若干個(gè)文件組件。文件的數(shù)量取決于主題的復(fù)雜性。一個(gè)主題可能只有三個(gè)文件,也可能會(huì)有幾十個(gè)文件,包括放置在主題目錄內(nèi)若干個(gè)文件夾中的圖形元素和各種腳本。圖 2?顯示了在主題主文件夾中預(yù)期可以找到的典型文件描述(顏色、圖像、徽標(biāo)、模板、樣式和 PHP 文件)。
圖 2. 主題文件夾的典型內(nèi)容
并非所有這些文件都是一個(gè)主題所需要的,許多人認(rèn)為級(jí)聯(lián)樣式表 (CSS) 文件是絕對(duì)必需的,但某些主題甚至連 CSS 也沒(méi)有。通過(guò)了解這些主題文件的用法,主題結(jié)構(gòu)以及它的工作方式會(huì)變得更加清晰。讓我們?cè)倏纯粗黝}目錄中的一些文件,并探討它們?cè)谡w主題中的功能。
.info 文件
.info 文件是一個(gè)必需的文件:Drupal 必須包括它,才能看到主題。.info 文件告訴 Drupal 主題的內(nèi)部名稱。例如,如果這個(gè)文件的名稱是ibmtheme.info,那么 Drupal 給這個(gè)主題的名稱將是?ibmtheme。如果您的主題使用 JavaScript、元數(shù)據(jù)、樣式表或塊區(qū)域等元素,您也必須在 .info 文件中定義它們。一切都是可選的。在?清單 1?中,Bartik 主題的 .info 文件內(nèi)容解釋了這種行為。
清單 1. Bartik 主題的 .info 文件內(nèi)容
; $Id: bartik.info,v 1.5 2010/11/07 00:27:20 dries Exp $name = Bartik description = A flexible, recolorable theme with many regions. package = Core version = VERSION core = 7.xstylesheets[all][] = css/layout.css stylesheets[all][] = css/style.css stylesheets[all][] = css/colors.css stylesheets[print][] = css/print.cssregions[header] = Header regions[help] = Help regions[page_top] = Page top regions[page_bottom] = Page bottom regions[highlighted] = Highlightedregions[featured] = Featured regions[content] = Content regions[sidebar_first] = Sidebar first regions[sidebar_second] = Sidebar secondregions[triptych_first] = Triptych first regions[triptych_middle] = Triptych middle regions[triptych_last] = Triptych lastregions[footer_firstcolumn] = Footer first column regions[footer_secondcolumn] = Footer second column regions[footer_thirdcolumn] = Footer third column regions[footer_fourthcolumn] = Footer fourth column regions[footer] = Footersettings[shortcut_module_link] = 0; Information added by drupal.org packaging script on 2011-01-05 version = "7.0" project = "drupal" datestamp = "1294208756".tpl.php 模板文件
主題目錄包含若干個(gè)模板文件,其文件名如?xxx.tpl.php。這些模板文件包含主題的 Extensible HTML (XHTML) 標(biāo)記和 PHP 變量。在某些情況下,您可以編寫它們,以提供其他類型的數(shù)據(jù)輸出,如 RSS。一般來(lái)說(shuō),每個(gè) Drupal 主題的 tpl.php 文件都進(jìn)行編碼,以處理特定的數(shù)據(jù)輸出:在模板文件中嵌入復(fù)雜的邏輯有可能帶來(lái)混亂,并事與愿違,因?yàn)檫@樣做有可能使它們難以維護(hù)。理想的場(chǎng)景是讓它們只包含簡(jiǎn)單的 XHTML 標(biāo)記和 PHP 變量。
清單 2?顯示 node.tpl.php 文件的內(nèi)容,該文件描述核心 Garland 主題的基本節(jié)點(diǎn)的輸出。
清單 2. Garland 主題 node.tpl.php 文件的內(nèi)容
<?php // $Id: node.tpl.php,v 1.24 2010/12/01 00:18:15 webchick Exp $ ?> <div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?>"<?php print $attributes; ?>><?php print $user_picture; ?><?php print render($title_prefix); ?><?php if (!$page): ?><h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2><?php endif; ?><?php print render($title_suffix); ?><?php if ($display_submitted): ?><span class="submitted"><?php print $submitted ?></span><?php endif; ?><div class="content clearfix"<?php print $content_attributes; ?>><?php// Hide the comments and links now so you can render them later.hide($content['comments']);hide($content['links']);print render($content);?></div><div class="clearfix"><?php if (!empty($content['links'])): ?><div class="links"><?php print render($content['links']); ?></div><?php endif; ?><?php print render($content['comments']); ?></div></div>template.php 文件
template.php 文件中通常包含主題輸出的所有條件邏輯和數(shù)據(jù)處理。您也可以使用 template.php 文件使主題的 .tpl.php 文件保持整潔。因?yàn)檫@是一個(gè) PHP 文件,強(qiáng)制以 PHP 打開(kāi)?<?php?標(biāo)記作為內(nèi)容的開(kāi)始,但您可以省略結(jié)束標(biāo)記。
其他文件
有幾個(gè)其他元素對(duì)于主題正常運(yùn)作不是必需的,但它們可能會(huì)在許多主題中出現(xiàn)。這些元素包括徽標(biāo)和屏幕截圖、theme-settings.php 文件和 color.inc 文件:
- 徽標(biāo)和屏幕截圖。這些元素是建議使用的元素,但對(duì)于主題的正常運(yùn)作并不是絕對(duì)必要的。然而,如果您想將主題貢獻(xiàn)到 Drupal 存儲(chǔ)庫(kù),那么屏幕截圖就是一個(gè)強(qiáng)制要求的元素。圖 3?是 Garland 主題的屏幕截圖。
圖 3. Garland 主題的屏幕截圖
- theme-settings.php。除了搜索或任務(wù)徽標(biāo)等一般設(shè)置外,該文件還顯示 UI 管理設(shè)置或高級(jí)特性。請(qǐng)查看針對(duì) Garland 主題的該文件內(nèi)容,如?清單 3?所示,說(shuō)明了最終顯示。
清單 3. Garland theme-settings.php 文件的內(nèi)容
<?php // $Id: theme-settings.php,v 1.3 2010/09/04 15:21:09 dries Exp $/*** @file* Theme setting callbacks for the garland theme.*//*** Implements hook_form_FORM_ID_alter().** @param $form* The form.* @param $form_state* The form state.*/ function garland_form_system_theme_settings_alter(&$form, &$form_state) {$form['garland_width'] = array('#type' => 'radios','#title' => t('Content width'),'#options' => array('fluid' => t('Fluid width'),'fixed' => t('Fixed width'),),'#default_value' => theme_get_setting('garland_width'),'#description' => t('Specify whether the content will wrap to a fixed width or will fluidly expand to the width of the browser window.'),// Place this above the color scheme options.'#weight' => -2,); }最終顯示的將是一個(gè)類似于?圖 4?的表單。
圖 4. 主題設(shè)置頁(yè)面
- color.inc。color. module 的功能是允許管理員徹底改變主題的配色方案,而無(wú)需手動(dòng)修改樣式表。如果您的主題需要配色模塊支持,那么您必須包括一個(gè)?color?目錄,其中包含 color.inc 文件和各種支持文件。
回頁(yè)首
構(gòu)建主題
構(gòu)建主題有兩個(gè)基本方法:您可以從頭開(kāi)始構(gòu)建它,您也可以修改一個(gè)現(xiàn)有主題。在本文中,您將從頭開(kāi)始構(gòu)建一個(gè)新主題。話雖如此,您還是應(yīng)該準(zhǔn)備好現(xiàn)有主題的內(nèi)容,以便了解結(jié)構(gòu)。
創(chuàng)建目錄結(jié)構(gòu)
首先,創(chuàng)建一個(gè)包含主題文件的目錄。放置該目錄的最佳位置是 sites/all/themes 目錄。將該目錄命名為一個(gè)惟一的名稱以描述您的主題:該名稱不應(yīng)該包含空格。
雖然不是強(qiáng)制性的,但是這對(duì)于為樣式表(CSS 文件)、圖像和腳本(如果您的主題使用它們)創(chuàng)建子目錄是有幫助的。這樣做有助于保持結(jié)構(gòu)整潔。
回頁(yè)首
構(gòu)建 .info 文件
.info 文件只是一個(gè)包含數(shù)據(jù)的文本文件,通常是描述主題的結(jié)構(gòu)、內(nèi)容和配置所需要的參數(shù)。在該文本文件中,每一行都有一個(gè)鍵值對(duì),值放在等號(hào) (=) 的右邊,鍵放在等號(hào)的左邊。清單 4?提供了一個(gè)示例。
清單 4. 來(lái)自 Garland 主題的 .info 文件的示例內(nèi)容
; $Id: garland.info,v 1.10 2010/11/07 00:27:20 dries Exp $ name = Garland description = A multi-column theme that can be configured to modify colors andswitch between fixed- and fluid-width layouts package = Core version = VERSION core = 7.x stylesheets[all][] = style.css stylesheets[print][] = print.css settings[garland_width] = fluid; Information added by drupal.org packaging script on 2011-01-05 version = "7.0" project = "drupal"您可以在一行的開(kāi)頭使用分號(hào) (;),以添加注釋。使用方括號(hào) ([]) 時(shí),是為了創(chuàng)建關(guān)聯(lián)值的數(shù)組。讓我們?cè)敿?xì)介紹在 .info 文件中必須或有可能包含的元素。
名稱
name?值是必需的。它應(yīng)該是一個(gè)人類可讀的名稱,必須以字母字符開(kāi)始。名稱的限制與 PHP 中構(gòu)成函數(shù)的限制相同,因?yàn)?Drupal 將它用作同樣的用途。因此,該名稱可以包含數(shù)字和下劃線 (_),但沒(méi)有連字符 (-)、空格或標(biāo)點(diǎn)符號(hào)。下面是語(yǔ)法:
name = Garland描述
description?鍵是建議使用的,它應(yīng)該只是主題的簡(jiǎn)要說(shuō)明。您在此處輸入的描述出現(xiàn)在主題的選擇或?Appearance?頁(yè)面。下面是其語(yǔ)法:
description = A multi-column theme that can be configured to modify colorsand switch between fixed- and fluid-width layouts屏幕截圖
screenshot?鍵是可選的。它的功能是告訴 Drupal 在哪里能找到新主題的縮略圖。Appearance?頁(yè)面上也將顯示縮略圖。如果 .info 文件中沒(méi)有包含這個(gè)鍵,Drupal 將調(diào)用默認(rèn)主題目錄中的 screenshot.png 文件。如果您決定調(diào)用的縮略圖文件名稱不是?screenshot.png,或者,如果您將該文件放置主題主目錄以外的目錄,您將需要包括這個(gè)鍵。下面是其語(yǔ)法:
screenshot = /images/screenshot.png要?jiǎng)?chuàng)建一個(gè)屏幕截圖,只需在瀏覽器中捕獲完整的主題圖像。然后,裁剪圖像并將其尺寸調(diào)整為 294 x219 像素,將它保存為 screenshot.png。把這個(gè)文件和 .info 文件放在同一文件夾中。
版本
盡管許多流行的主題都包括?version?關(guān)鍵,但我們并不鼓勵(lì)使用它。如果你打算將主題托管在 Drupal 主題存儲(chǔ)庫(kù),就沒(méi)有必要包括?version,因?yàn)楫?dāng)一個(gè)發(fā)布被打包用于下載時(shí),drupal.org 會(huì)自動(dòng)添加版本字符串。否則,您可以包括自己喜歡的任何版本字符串。下面是其語(yǔ)法:
version = 1.0核
core?鍵是必需的值。在所有目前受支持的 Drupal 版本中,您必須說(shuō)明您的模塊和主題所兼容的 Drupal 版本。在這里設(shè)置的值將與 Drupal Core Compatibility 常數(shù)(可以在 include/bootstrap.inc 文件中找到)兼容;如果沒(méi)有找到匹配,則 Drupal 將禁用主題。下面是該常數(shù)的語(yǔ)法:
<?php define('DRUPAL_CORE_COMPATIBILITY', '7.x') ?>drupal.org 打包腳本會(huì)根據(jù)每一個(gè)發(fā)布節(jié)點(diǎn)上的 Drupal 核心兼容性設(shè)置來(lái)自動(dòng)設(shè)置這個(gè)值(如果您貢獻(xiàn)您的主題)。
引擎
engine?鍵表示您的主題所使用的主題引擎種類。在大多數(shù)情況下它是必需的。如果您在 .info 文件中沒(méi)有提供?engine,Drupal 假定主題是一個(gè)通過(guò) .theme 文件實(shí)現(xiàn)的獨(dú)立主題。在 Drupal.org 庫(kù)中找到的大多數(shù)主題使用默認(rèn)的?PHPTemplate?引擎,該引擎與 Drupal 核心一起打包。下面是其語(yǔ)法:
engine = phptemplate基礎(chǔ)主題
如果您的主題是另一個(gè)主題的子主題,那么就一定要聲明其?base theme,以啟用主題繼承。換句話說(shuō),子主題中將可以使用基礎(chǔ)主題 (base theme) 的文件資源。您需要輸入基礎(chǔ)主題的內(nèi)部機(jī)器可讀名稱。下面是其語(yǔ)法:
base theme = garland區(qū)域
創(chuàng)建新的主題區(qū)域
您希望能夠在?Blocks?管理頁(yè)面上編輯的頁(yè)面的任何部分,都需要成為一個(gè)區(qū)域。通常情況下,這個(gè)區(qū)域包括標(biāo)題、右側(cè)欄、內(nèi)容區(qū)和頁(yè)腳。您必須在 .info 文件中引入您的所有區(qū)域。否則它們對(duì)于 Drupal 而言并不存在。
regions?鍵定義主題可用的塊區(qū)域。您必須明確定義?regions?鍵,然后定義在方括號(hào)中的內(nèi)部機(jī)器可讀名稱。之后,您必須將人類可讀名稱定義為適當(dāng)?shù)闹怠O旅媸瞧湔Z(yǔ)法:
regions[highlighted] =Mission Statement如果您選擇不定義區(qū)域,在 Drupal 7 主題中假定使用以下值:
regions[header] = Header regions[highlighted] = Highlighted regions[help] = Help regions[content] = Content regions[sidebar_first] = Left sidebar regions[sidebar_second] = Right sidebar regions[footer] = Footer您可以根據(jù)自己的特定需求覆蓋這些值。如果要這樣做,您必須聲明該行。下面是語(yǔ)法:
regions[highlighted] =Mission StatementFeatures
您可以在主題的配置頁(yè)面上切換各種頁(yè)面元素。在主題配置頁(yè)面上所顯示的復(fù)選框由?features?鍵控制(見(jiàn)?圖 5)。因此,對(duì)于主題沒(méi)有定義或使用的元素,您可以禁止顯示其復(fù)選框。省略一個(gè)條目,就會(huì)禁止顯示該特性的復(fù)選框;如果您沒(méi)有定義任何特性,那么所有復(fù)選框都將顯示為假定的默認(rèn)值。
圖 5. 主題特性設(shè)置頁(yè)面
清單 5?顯示?features?鍵的所有可用元素。
清單 5. 在 .info 文件中的主題特性條目
features[ ] = logo features[ ] = name features[ ] = slogan features[ ] = node_user_picture features[ ] = comment_user_picture features[ ] = favicon features[ ] = main_menu features[ ] = secondary_menu樣式表
Drupal 主題曾經(jīng)默認(rèn)使用 style.css。然而,在當(dāng)前版本中,如果未在 .info 文件中指定 style.css,則主題不再默認(rèn)為 style.css。此外,您可以通過(guò) .info 文件添加新的樣式表。下面是其語(yǔ)法:
stylesheets[all][] = css/style.css stylesheets[print][] = css/print.css腳本
在主題的 template.php 文件中,通過(guò)調(diào)用?drupal_add_js()?等函數(shù)來(lái)包括 JavaScript 文件,這曾經(jīng)是常見(jiàn)的做法。然而,在 Drupal 7 中,只有當(dāng)您在 .info 文件指定 script.js 時(shí),才會(huì)包括該文件。下面是其語(yǔ)法:
scripts[] = scripts/myscript.jsPHP
您在這里定義的字符串將是主題所支持的最低 PHP 版本。默認(rèn)值來(lái)自?DRUPAL MINIMUM PHP?常數(shù)(位于 includes/bootstrap.inc 文件):
<?php define('DRUPAL_MINIMUM_PHP', '5.2.4') ?>您可以更改此值,但不需要添加字符串。下面是其語(yǔ)法:
php = 5.2.4默認(rèn)的 .info 值
.info 文件中包含 Drupal 為每個(gè)已安裝主題假設(shè)的默認(rèn)值。如果在 .info 文件中沒(méi)有定義這些值,Drupal 強(qiáng)制主題使用默認(rèn)值。但是請(qǐng)注意,這些值應(yīng)用為一個(gè)組。這意味著,如果重寫一行,如:
regions[sub_header] = Sub-header您將需要重新定義默認(rèn)區(qū)域的其余部分;否則,它們將被省略。這條規(guī)則也適用于樣式表。即使樣式表在技術(shù)上并不是在一個(gè)組中進(jìn)行定義的,但如果在 .info 文件中定義了另一個(gè)樣式表,您必須再次重新定義 style.css;否則,它將不會(huì)被包括在內(nèi)。
在?清單 6?中的鍵和值是 Drupal 7 主題的默認(rèn)值。
清單 6. 默認(rèn)的 .info 值
regions[sidebar_first] = Left sidebar regions[sidebar_second] = Right sidebar regions[content] = Content regions[header] = Header regions[footer] = Footer regions[highlighted] = Highlighted regions[help] = Help regions[page_top] = Page Top regions[page_bottom] = Page Bottomengine = phptemplatefeatures[ ] = logo features[ ] = name features[ ] = slogan features[ ] = node_user_picture features[ ] = comment_user_picture features[ ] = favicon features[ ] = main_menu features[ ] = secondary_menuscreenshot = screenshot.png回頁(yè)首
構(gòu)建 page.tpl.php 文件
現(xiàn)在,研究典型的 page.tpl.php 文件的內(nèi)容。圖 6?中的圖像來(lái)自 Garland 主題,顯示了源代碼在瀏覽器中的樣子。
圖 6. 在瀏覽器中的 page.tpl.php 源代碼
若您更仔細(xì)地查看,page.tpl.php 模板只是一個(gè)簡(jiǎn)單的 HTML 頁(yè)面,其中有大量 PHP 語(yǔ)句。很方便,已經(jīng)為 Drupal 定義了大部分 PHP 元素,您需要做的就是按需要放置它們。
注:鏈接?http://drupal.org/node/190815 [Core Templates]?將為您提供 page.tpl.php 模板可用的變量列表。
對(duì)基本頁(yè)面元素添加變量
有若干個(gè)變量可用于構(gòu)建 page.tpl.php。選擇包括哪些變量,取決于您想在主題中實(shí)現(xiàn)的功能。例如,如果您選擇在您的網(wǎng)頁(yè)上要有面包屑,請(qǐng)?zhí)砑?$breadcrumbs?變量。
在 page.tpl.php 中最常見(jiàn)的變量是:
- $site_name
- $logo(通過(guò)主題設(shè)置標(biāo)志上傳的徽標(biāo);僅在實(shí)現(xiàn)徽標(biāo)主題特性時(shí)才有用)
- $title(頁(yè)面標(biāo)題)
- $main_menu
- $secondary_menu
- $breadcrumbs(導(dǎo)航輔助,當(dāng)用戶更深入網(wǎng)站時(shí)留下一串參考鏈接)
Drupal 管理也有相關(guān)的變量:
- $tabs(用于編輯或查看管理菜單等的菜單;經(jīng)常由模塊使用)
- $messages
- $action_links
其他一些有用的變量是:
- $base_path(站點(diǎn) root 的路徑)
- $front_page(站點(diǎn)首頁(yè)的路徑)
- $directory(您的主題的路徑)
使用 Render 應(yīng)用程序編程接口 (API) 插入變量,如下:
<?php print render($tabs); ?>如果您的 PHP 和 HTML 技能都較高,您顯然可以通過(guò)觀察示例的構(gòu)建方式,然后使用允許的變量來(lái)明顯創(chuàng)建自己的卓越主題。
回頁(yè)首
構(gòu)建其他模板文件
打印或渲染
有些變量需要使用?render()?函數(shù)顯示,而其他變量可以簡(jiǎn)單地打印。如果數(shù)組中包含了在 page.tpl.php 參考頁(yè)(見(jiàn)?參考資料?中的鏈接)中列出的變量,那么您需要使用?render()?方法。否則,您可以打印該變量 (<?php print $variable; ?>)。
隨 Drupal 核心提供的還有其他可用的主題文件的默認(rèn)模板。您可以在 Drupal 站點(diǎn)(見(jiàn)?參考資料?中的鏈接)找到它們的列表。對(duì)于 page.tpl.php 文件,要輕松構(gòu)建屬于自己的文件,最佳方式是找到一個(gè)核心文件,觀察它是如何組成的,然后再構(gòu)建您自己的。訪問(wèn) Drupal 站點(diǎn)將為您指出允許在任何主題文件中使用的變量。
回頁(yè)首
style.css 文件
在一個(gè)普通的靜態(tài) HTML 頁(yè)面中,您必須在頁(yè)頭中包括一個(gè)指針,以說(shuō)明用于頁(yè)面顯示的樣式表的位置。指針看起來(lái)像這樣:
<link rel="stylesheet" type="text/css" href="/model.css" />如前所述,您可以將新的樣式表添加到一個(gè)主題,也可以覆蓋默認(rèn)樣式。在這兩種情況下,你必須在 .info 文件中輸入主題樣式表。樣式表中有什么呢?您對(duì) CSS 類所使用的模塊化方法,與 Drupal 核心對(duì)框架的標(biāo)準(zhǔn)頁(yè)面元素所使用的模塊化方法相同。即使主題開(kāi)發(fā)人員可以創(chuàng)建自己的類,但在整個(gè) Drupal 站點(diǎn)有許多類。如需要有關(guān) Drupal 7 核心中的類的完整列表,請(qǐng)參閱?參考資料。
回頁(yè)首
結(jié)束語(yǔ)
本文為您概述了主題系統(tǒng)在 Drupal 7 中的運(yùn)作方式,還介紹了 Drupal 主題的多個(gè)組件,以及如何使用默認(rèn)的?PHPTemplate?主題引擎從頭開(kāi)始構(gòu)建一個(gè)新的主題。您已經(jīng)觀看了每個(gè)組件主題文件的典型結(jié)構(gòu),現(xiàn)在應(yīng)該了解了創(chuàng)建自定義主題所需要的技巧。開(kāi)始做您喜歡的事情吧!
總結(jié)
以上是生活随笔為你收集整理的为 Drupal 7 构建一个新主题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: EDA 电子设计自动化VHDL系列课程1
- 下一篇: Drupal 7 自定义页面如何向自定义