[D6][Eigen module] Hoe geef ik variabelen door naar mijn templatebestanden?
Hallo allemaal,
Ik heb na een aantal dagen nog zo weinig vooruitgang geboekt met mijn (test)module dat ik hier om hulp vraag.
Met behulp van Creating modules - a tutorial: Drupal 6.x heb ik dus een module gemaakt. Maar waar ik nu tegenaan loop is het volgende:
Ik wil dat de variabelen die ik maak in een functie, beschikbaar worden in mijn .tpl bestanden.
function fenix_theme() {
return array(
'fenix' => array(
'template' => 'fenix_page',
),
);
}
function fenix_menu() {
$items = array();
$items['fenix'] = array(
'title' => 'Fenix Testmodule',
'page callback' => 'fenix_all', // de functie die wordt aangeroepen bij q=fenix deze werkt goed
'page arguments' => array(2),
'access arguments' => array('access fenix content'),
'type' => MENU_CALLBACK,
);
return $items;
}
De functie die de vars moet genereren:
function fenix_all() {
$vars['test'] = 'variable1 ' ;
$vars['test2'] = 'variable1 ' ;
return theme('fenix', $vars); // op deze manier werken andere modules (volgens mij)
}
in page_fenix.tpl.php staat het volgende:
print_r($vars);
Maar ik krijg dus niet de variabelen; deze zijn leeg
Wat doe ik hier fout?
Auteur:
FenixDatum van inzending:
zaterdag 8 augustus 2009 - 15:47
Dit kan op 2 manieren:
Manier 1: vast aantal variables meegeven aan je template file
function fenix_theme() {
return array(
'fenix' => array(
'template' => 'fenix_page',
'arguments' => array(
'test' => NULL,
'test2' => NULL,
),
),
);
}
function fenix_all() {
$test = 'variable1';
$test2 = 'variable1';
return theme('fenix', $test, $test2);
}
Manier 2: variabel aantal variables meegeven aan je template file
function fenix_theme() {
return array(
'fenix' => array(
'template' => 'fenix_page',
),
);
}
function fenix_all() {
return theme('fenix');
}
// hook_preprocess_
function fenix_preprocess_fenix(&$vars) {
$vars['test'] = 'variable1';
$vars['test2'] = 'variable1';
}
(Deze laatste manier met preprocess werkt enkel als je met een template file werkt)
Beide manieren zouden de variabelen moeten doorgeven aan je tpl file.