2011-10-10 11 views
5

Diciamo che ho questa implementazione di hook_menu():Creazione di un modello per la pagina

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

Come posso fare un modello per la pagina richiamata invece di restituire una stringa?

risposta

5

È necessario implementare una funzione hook_theme e specificare un file modello.

Quindi nella richiamata della pagina, è necessario chiamare la funzione tema. Qualcosa come ...

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

A che cosa servono 'elements',' recent_completions' e 'recent_completion' in questo contesto? Quale dovrebbe essere il valore di '$ render_array'? – Randell

0

Ho avuto la stessa domanda, ma non ero sicuro di come implementare una funzione hook_theme. This è come è fatto (in Drupal 6 almeno).

Problemi correlati