為了省錢買糖吃,或只看過一些糟蹋的 Drupal 書籍,甚至沒看就上手玩的高手,多多少少也在 theme_* function 上碰過釘?
假如你查看一下 API,直接就使用該 FUNCTION 的話,大致會遇上錯誤、錯誤...還是錯誤.... 是的,或許你靠經驗自己補上一些預設值參數就過關,但也太煩人了。正急到官方發一個建議 ISSUE.... 等等、停一停,事實上,所有 Drupal 的 theme_* function 都要透過 theme() 呼叫的,比如:
theme_item_list($variables)
http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_item_list/7
在 Drupal 中應是這樣應用:
theme('item_list');
theme('item_list', $variables);
很簡單吧,只要記住就沒問題 :)
深入點看看原因? 好的,Drupal 在 drupal_common_theme() 中有為所有預設的 theme_* function 補上預設參數,其他模組的 Theme Function 也同樣道理,透過 hook_theme() 來進行初始化。
老人常說:做人一不要貪(吃),二要多看有用的東西,三不要自作聰明。
對的對的,你說呢?

寫下您的回覆