Drupal版型開發 < 二 > 樣版檔介紹之node.tpl.php

在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)