drupal7模板命名機制/規則

drupal7模板命名機制/規則

今天講的是困擾我w3123.com幾天的問題了,就是drupal7模板命名機制/規則

從WordPress轉戰drupal快兩個星期了,就drupal的默認主題來說實在是簡陋,連WordPress這個博客的默認主題都不如,所以學習drupal就從drupal模板製作開始了。學習drupal看了兩本書,大家可以從文章的後面找到《drupal高級開發指南》pdf版本的下載鏈接。
drupal7的模板命名機制相對於d6還是有寫改變的,這讓從d7下手看d6教程的我琢磨了好一陣子,比如定製首頁模板,d6是創建page-front.tpl.php文件,而d7是drupal--front.tpl.php文件,多了一橫槓。
html.tpl.php 這個模板是輸出網頁的外部框架模板,主要是定義html的head部分的內容,包括doctype、網頁使用的語言、RDF信息、網頁標題、css、js。
page.tpl.php 這個模板是所有頁面的內容模板,也就是html.tpl.php中body中<?php print $page; ?>的部分,這個模板決定了drupal輸出的內容結構,在這個模板裏把在info裏定義的區域變量嵌入到這個模板裏。
maintenance-page.tpl.php 網站維護模式的模板頁,如果你想修改你的網站維護狀態下的頁面,就把這個頁面複製到你的主題下進行修改吧。其餘的模板文件分散存在於各個模塊中,通常情況下,只要這個模板文件存在的話,你只需要把這個模板複製到你的主題目錄下進行修改就可以重寫默認的模板。

模板建議(template suggestions)是基於已有.tpl.php文件的可選模板文件。當滿足特定的條件,並且相應的文件存在時,就使用這些建議。每一層次,包括內核、模塊、主題引擎、主題,都可以提供相應的建議。你可以把它們當作“命名提示”(naming hints),來告訴系統根據合適的環境選擇合適的模板。這種想法很簡單,但是這一特性卻非常強大,它使得在模板層上也能進行定製。提示:可以安裝Theme developer來查看網頁某個部分的模板建議規則順序。http://drupal.org/project/devel_themer

區塊模板建議規則:block--[region|[module|--delta]].tpl.php
主題系統會依如下次序進行搜索,且以先搜到的模板文件爲模板進行輸出。
block--module--delta.tpl.php
block--module.tpl.php
block--region.tpl.php
例如:你在後臺新建一個區塊,因爲後臺建立的區塊是由block模塊輸出的所以module名字爲block,假如此區塊的id爲1,假如此區塊被放置到區域sidebar中,那麼模板搜索順序是
block--block--1.tpl.php
block--block.tpl.php
block--siddbar.tpl.php

節點模板建議規則:node--[type|nodeid].tpl.php
例如:假如一個節點類型爲article的節點id爲1的節點,模板搜索順序爲
node--1.tpl.php
node--article.tpl.php
node.tpl.php
drupal7模板命名機制
頁面模板建議規則:page--[front|internal/path].tpl.php
首頁模板 page--front.tpl.php
基於內部路徑的搜索優先順序以http://www.example.com/node/1/edit爲例:
page--node--edit.tpl.php
page--node--1.tpl.php
page--node.tpl.php
page.tpl.php

PHP嵌入變量到模板:
如果info裏定義區域 regions[header] = 頁眉
對應的,模板裏嵌入頁眉的語法就是 <? print render($page['區域變量']); ?>
對於簡單變量 直接print出變量即可 對於數組類型的變量則先要用render渲染一下在print輸出。

如果在一個模板中,你不知道這個模板都有什麼變量的話,使用以下調試腳本輸出
<?php
$vars = get_defined_vars();
print_r($vars);
?>
drupal的模板製作我還不是很熟悉,還有很多東西困擾着我,在後面也會分享解決這些困擾的方法,分享自己的學習歷程。drupal模板命名規則

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章