为页面创建模板

时间:2011-10-10 13:07:57

标签: drupal drupal-7 drupal-hooks

假设我有hook_menu()的实现:

function example_menu(){
    $items = array();

    $items['admin/recent-completions'] = array(
        'title' => 'Recent Completions (Last 100)',
        'page callback' => 'example_recent',
        'access callback' => user_access('Administer content'),
        'type' => MENU_NORMAL_ITEM,
        'weight' => -50
    );

    return $items;
}

如何为页面回调创建模板而不是返回字符串?

2 个答案:

答案 0 :(得分:5)

您需要实现hook_theme函数并指定模板文件。

然后在你的页面回调中,你必须调用你的主题函数。有点像...

function example_theme($existing, $type, $theme, $path) {
  return array(
    'recent_completion' => array(
      'render element' => 'elements', 
      'template' => 'recent-completions',
    ), 
  ...
}

function example_recent() {
  // Do some logic and processing here
  $render_array = array( /* array with parameters for the template */ );
  return theme('recent_completion', $render_array);
}

答案 1 :(得分:0)

我有同样的问题,但不确定如何实现hook_theme函数。 This就是如此(至少在Drupal 6中)。