在drupal 要進行版型開發或者改造時,有一個很重要的東西,那就是樣板檔,通常可以在 版型目錄底下的 templates這個目錄中找到這些樣版檔,
常見的檔名通常有 node.tpl.php, page.tpl.php, block.tpl.php,可以到官網去看詳細說明。本篇主要說明的是樣版中可用的變數
以下針對比較常用到的 node.tpl.php 以及 page.tpl.php 做介紹,
node.tpl.php
- $title: node 的標題
- $content: node的內容陣列,需要利用render($content)來建立相關的HTML資料,當僅要生成部分欄位的內容時,則可以利用render($content[field_name]) 即可產生該欄位的HTML資料
- $user_picture: node作者的圖像,變數內容來自於 user-picture.tpl.php.
- $date: node的建立日期
- $name: 使用者名稱,變數內容來自於 theme_username()
- $node_url: 目前node的URL
- $display_submitted: 是否顯示node提交的資訊
- $submitted: Submission information created from $name and $date duringtemplate_preprocess_node().
- $classes: 要應用於node 的 css class字串陣列,通常有以下預設值:
- node
- node-[type]
- node-teaser
- node-preview
- node-promoted
- node-sticky
- node-unpublished
- $title_prefix (array): 其他module產生的額外標題前綴內容
- $title_suffix (array): 其他module產生的額外標題後綴內容
其他變數:
- $node: 完整的node 物件,包含可能不安全的資料
- $type: 內容類型,例如 story, page, blog...
- $comment_count: 回應的數量
- $uid: 作者的 User ID
- $created: node 發表的時間(Unix timestamp)
- $classes_array: Html class 屬性值,源自於$classes,差異在於本變數為純字串.
- $zebra: 輸出內容是否加入 even 或 odd. 通常應用於摘要模式
- $id: node的位置,會自動增加
Node 狀態變數:
- $view_mode: 顯示模式,通常是 "全文(full)" 或 "摘要(teaser)".
- $teaser:True / False,若為True表示node為teaser模式(等同於 $view_mode == 'teaser').
- $page: True / False,若為True表示node為全文(full)模式
- $promote: True / False,若為True表示node置頂
- $sticky: Flags for sticky post setting.
- $status: True / False,若為True表示node已發表
- $comment: node的回應設定
- $readmore: True / False,若為True表示teaser模式下,尚有未顯示內容
- $is_front: True / False,若為True表示目前頁面為首頁。
- $logged_in: True / False,若為True表示目前的訪客已登入。
- $is_admin: True / False,若為True表示目前使用者為管理者(administrator)