提供"可使用的 tpl 檔" Working with template suggestion

Preprocess function 的另一個少用但重要的功能就是提供 "可使用的 tpl 檔"

簡單點說明, Drupal 本身已經提供的 page-story.tpl.php 就是 temple_preprocess_page() 提供的
同樣, page-front.tpl.php 都是由 drupal 自帶的 temple_preprocess_page 提供

或者用 node.tpl.php 做例子,
Drupal 自帶的 template_preprocess_node() 提供 node-[nid].tpl.php 作為 "可使用的 tpl 檔"

當然, 我們的目的是提供一種 Drupal 沒有自帶的 tpl 命名方式,
例如另一種 content-type 的 tpl 命名: node-type-[type].tpl.php:

<?php
//mytheme 的 template.php 之內:
//1. 留意, 使用你自定的theme 的名稱
//2. 留意使用了 pass by reference 參數
function mytheme_preprocess_node(&$variables) {
 
$variables['template_files'][] =  'node-type-'.$variables['node']->type;
}
?>

$variables之內的變數可以參考 的提示

ref: Working with template suggestions http://drupal.org/node/223440

Google