我创建了一个名为 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 在 hook_theme 中使用“arguments”键而不是“variables”。一旦改变,一切都按预期工作。我也删除了预处理器,因为我的逻辑正在回调中执行。