2011-10-10 22 views
5

Hãy nói rằng tôi có thực hiện này của hook_menu():Tạo một khuôn mẫu để trang

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; 
} 

Làm thế nào tôi có thể làm cho một khuôn mẫu để gọi lại trang thay vì trả lại một chuỗi?

Trả lời

5

Bạn cần triển khai hàm hook_theme và chỉ định tệp mẫu.

Sau đó, trong cuộc gọi lại trang của bạn, bạn sẽ phải gọi chức năng chủ đề của mình. Một cái gì đó như ...

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

Việc sử dụng 'elements',' recent_completions' và 'recent_completion' trong ngữ cảnh này là gì? Giá trị của '$ render_array' là gì? – Randell

0

Tôi có cùng một câu hỏi, nhưng không chắc chắn cách triển khai hàm hook_theme. This là cách thực hiện (ít nhất là trong Drupal 6).