等了一年多的時間, 終於有機會和時間可以正式使用 Drupal 7.x 作開發
所以都會集中一些 Drupal 7.x 和之前的不同之處
希望幫到大家, 也幫到自己
專用 tags: transition-7.x
hook_theme() 是一個很常用的 hook 之一
theme('image') 會調用 hook_theme()
以下的例子是自定義一個 theme 函數
輸出的是一整頁的 google map, 所以便使用一個新的函數
D7 的 函數參數只有兩個, hook 和 variables:
<?php
theme(
'links',
array( 'link' => $links, 'attributes' => array('class' => 'links'))
); ?>
D6:
<?php
theme(
'links',
$links,
array('class' => 'links')
); ?>
這樣便以後都不需要記住參數的順序了,
「究竟是 $tags 還是 $elements 是第一個參數」的問題不會再出現
又可以參考 theme_pager(): http://api.drupal.org/api/drupal/includes%21pager.inc/function/theme_pag...
完整的 code 例子:
<?php
/**
* Drupal 6.x theme('HOOK', $var1, $var2, $var3)
**/
function MY_MODULE_example_function() {
return theme('map_search', $results->response);
}
//hook_theme()
function MY_MODULE_theme($existing, $type, $theme, $path) {
return array(
'map_search' => array(
'arguments' => array('response' => NULL),
),
);
}
//define the theme function
function theme_map_search($variables = '') {
return kprint_r($variables['response'], true);
}
?>
<?php
/**
* Drupal 7.x theme('HOOK', array('key'=>$var1, 'key2'=>$var2, 'key3'=>$var3)
**/
function MY_MODULE_example_function() {
return theme('map_search', array('response' => $results->response));
}
//hook_theme()
function MY_MODULE_theme($existing, $type, $theme, $path) {
return array(
'map_search' => array(
//D7 use variables as key instead of arguments
'variables' => array('response' => NULL),
),
);
}
//define the theme function
function theme_map_search($variables = '') {
return kprint_r($variables['response'], true);
}
?>