Я создал модуль с именем finder, в котором я хочу получить параметры из URL-адреса, обработать их, а затем отобразить результаты через файл tpl.вот соответствующие функции ...
function finder_menu()
{
$items = array();
$items['finder'] = array(
'page callback' => 'finder_view',
'access callback' => TRUE,
);
return $items;
}
function finder_theme($existing, $type, $theme, $path)
{
return array(
'finder_view' => array(
'variables' => array('providers' => null),
'template' => 'results',
),
);
}
function finder_preprocess_finder_view(&$variables)
{
// put my data into $variables
}
function finder_view($zipcode = null)
{
// Get Providers from Zipcode
return theme('finder_view', $providers);
}
Теперь я знаю, что вызывается finder_view.Я также знаю, что вызывается finder_preprocess_finder_view.Наконец, я знаю, что result.tpl.php используется для вывода.Но я не могу обернуть голову, как сделать значимую работу в обратном вызове, каким-то образом сделать эти данные доступными в препроцессоре, чтобы добавить их к «переменным», чтобы я мог получить доступ в файле tpl.
в ситуации, когдавы используете файл tpl, является ли обратный вызов даже полезным для чего-либо?Я делал это в прошлом, когда обратный вызов выполняет всю работу и передает функцию тематики, но на этот раз я хочу использовать файл для вывода.
Спасибо ...
ОБНОВЛЕНИЕ: Это была проблема именования параметров.Drupal 6 использует ключ «arguments» в hook_theme, а не «variable».После того как поменял все заработало как положено.Я удалил препроцессор также во время выполнения моей логики в обратном вызове.