Drupal

Drupal 模組開發 - 應用快取cache

在進行Drupal的模組開發時,當要產出的頁面所需的運算較為繁複時,若對於資料的即時性要求沒有那麼精準時,可以透過快取的方式,一方面可提升訪客開啟頁面的速度體驗,再則可以有效的降低伺服器的負載。

在Drupal要建立快取其實還滿簡單的,有點類似建立cookie一般,只要設定要被快取的資料到期時間(expired time)即可。

範例程式可以參考這一篇:Example: Cache API

主要應用的函數如下:

Drupal 模組開發 - 應用hook_theme()建立自定樣板檔(.tpl.php)

本文參考自這幾篇
Using the theme layer (Drupal 7.x)
Using template (.tpl.php) files in your own module

依照參考資料,雖然實務上我們也可以在template樣版檔中進行如資料庫讀寫的動作,但theme 以及 module 的角色上應該是分工明確的,theme處理的是外觀表現上的架構,而module則主要是提供theme所需要的資料。這樣當網站規模越來越龐大的時候,較能有效率的管理。

那麼兩者透過什麼連結起來呢? 就是hook_theme()這個函數。透過實例來說明怎麼應用。

在模組中建立角色

建立一個角色editor

 
$role = new stdClass();
//指定角色名稱
$role->name = 'editor';

// 如設定角色順序,則設定weight屬性
// $role->weight = 10;

//儲存角色
user_role_save($role);

設定角色權限

 
// 取出角色
$editor_role = user_role_load_by_name('editor'); 
$editor_rid = $editor_role->rid;
// 設定權限資料

Drupal版型開發 < 三 > 樣版檔介紹之page.tpl.php

前一篇介紹的 node.tpl.php 主要是用來顯示node本身的資料內容,但如果要控制例如logo, header, footer等區域,則是本篇的 page.tpl.php 所負責的領域。

相關變數如下:

page.tpl.php

一般變數:

  • $base_path: Drupal安裝位置的基底URL,預設是 /
  • $directory: template檔的所在目錄位置, 例如  themes/bartik.
  • $is_front: TRUE 表目前頁面為首頁
  • $logged_in: TRUE 表目前使用者已登入
  • $is_admin: TRUE 表目前使用者為管理者

網站變數 Site 

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

在drupal 要進行版型開發或者改造時,有一個很重要的東西,那就是樣板檔,通常可以在 版型目錄底下的 templates這個目錄中找到這些樣版檔,

常見的檔名通常有 node.tpl.php, page.tpl.php, block.tpl.php,可以到官網去看詳細說明。本篇主要說明的是樣版中可用的變數

以下針對比較常用到的 node.tpl.php 以及 page.tpl.php 做介紹,