模版的預處理 template preprocess in Drupal 6.x

繼續 Drupal templates 的深度遊

Preprocess 是一個在你的theme 之內的 template.php 內的一組函數
用"一組" 的原因是因為一個theme 是可以有很多 preprocess function
正確來講, 一個 hook 便已經可以有10個 preprocess function (當然, 和 hook 一樣, 不用也是可以的)

而preprocess 的真正功用是,

  1. 為 templates 提供更多的變數以供使用
  2. 為hook 提供更多的template suggestion

第一點的功能很明顯, 因為 drupal 內建的 preprocess function (無錯, Drupal core 都是使用 preprocess 的)沒法為你的theme 的特殊性供你需要的變數
你便可以使用preprocess function:

<?php
//template.php 中提供一個 $foo_list 陣列
function yourtheme_preprocess_foo(&$vars) {
 
$vars['foo_list'] = array(
   
'list item 1',
   
'list item 2',
   
'list item 3',
  );
}

//sites/all/themes/yourtheme/foo.tpl.php 中便可以使用:
print $foo_list;
?>

待續 template suggestions......

ref:
preprocess functions http://drupal.org/node/223430

Google