Theme developer theme開發的輔助模組(說明)
自訂 theme 相關檔案
主要程序
在 hook_theme() 內定義各組 theme的資料後, 在程式內透過 theme() 函式來調用
示意圖
資源
https://drupal.org/node/171194
https://drupal.org/node/190815
自訂 theme 相關檔案
.info | 基本定義檔及相關資料定義, 詳述 , 預設值 , d7預設 |
template.php | 1. 用來實作相關的 hook 2. 當 template.php 內有與 模組內註冊的theme名稱相同, 則會覆載原模組註冊func 改以 template.php 內func為主 |
theme-setting.php | 實作 theme UI介面內的參數設定內容 |
習慣性目錄規則 css, js, templates, color, images | templates 放置自訂的 *.tpl.php, 若無自訂 tpl 則自動採用系統核心的 tpl , 覆載 tpl命名規則 |
系統核心模板 | $variables[] 為各 tpl.php 均有的系統變數, 除 $variables['p1'] 用法外, 亦可直接以 $p1取值,($variables[] 內 key值 均可以變數型態直接取值$key) |
html.tpl.php | This is the default template that displays the basic HTML structure of a page on a Drupal site. The focus of this theme file is on the elements between the opening <HTML> tag and the start of the <body> tag. 可用變數如下 Variables for Use With in the html.tpl.php File |
page.tpl.php | The next template file we’ll examine is the page.tpl.php file. This template file focuses on the elements that are displayed between the <body> and </body> tags and includes the HTML structure of the page, including DIV tags and snippets of PHP code. Standard Variables Available to page.tpl.php |
region.tpl.php | Standard Variables Available to region.tpl.php |
node.tpl.php | This template file defines how individual nodes are displayed on your site. Standard Variables Available to node.tpl.php |
block.tpl.php | Standard Variables Available to block.tpl.php |
field.tpl.php | This template file is used for theming fields and, unlike the previous templates, isn’t automatically called by Drupal when rendering fields. If you wish to use this template, you’ll need to copy it from /modules/fields/templates into your theme’s directory. Standard Variables Available to field.tpl.php |
主要程序
在 hook_theme() 內定義各組 theme的資料後, 在程式內透過 theme() 函式來調用
hook_theme($existing, $type, $theme, $path) | 定義各組佈景參數, 如 themeKey, 傳數參數,template等等 | system.api.php |
hook_process_HOOK(&$variables) | 不再使用, 改以 hook_preprocess_HOOK() 替代 | theme.api.php |
hook_preprocess_HOOK(&$variables) | 可對資料源的前置處理, 第二個HOOK, 可以是html, link..一些html tag, 也可是其他模組名稱, 如node, blog, fullcalander 等等, 詳細用法需再研究 | |
如 breadcrumb, 系統呼叫的順序 template_preprocess() ►template_preprocess_breadcrumb() ►anyMODULE_preprocess() ►anyMODULE_preprocess_breadcrumb() ►phptemplate_preprocess() ►phptemplate_preprocess_breadcrumb() ►anyTHEME_preprocess() ►anyTHEME_preprocess_breadcrumb() ►template_process() |
||
theme($hook, $variables = array()) | 調用定義好的 theme來呈現資料 系統已提供的 Theme Functions |
theme.inc |
替換原有 theme function 行為模式, 1. 可採 程式內實作該theme function (如 MODULENAME_breadcrumb)替代原有 theme_breadcrumb(), 2. 使用 template 程式內放入自訂的 breadcrumb.tpl.php 這樣程式中呼叫 theme('breadcrumb', $variables); 就不會呼叫原系統提供的 theme function. |
||
示意圖
模板區域 | 程序示意 |
資源
https://drupal.org/node/171194
https://drupal.org/node/190815
body content
site