繼續 Drupal templates 的深度遊
Preprocess 是一個在你的theme 之內的 template.php 內的一組函數
用"一組" 的原因是因為一個theme 是可以有很多 preprocess function
正確來講, 一個 hook 便已經可以有10個 preprocess function (當然, 和 hook 一樣, 不用也是可以的)
而preprocess 的真正功用是,
- 為 templates 提供更多的變數以供使用
- 為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