Я думаю, что вы используете неправильный подход.В Drupal 7 вам вообще не нужно вызывать метод theme ().Вместо этого вам следует сосредоточиться на визуализируемых массивах и вызывать drupal_render (), который, в свою очередь, вызывает для вас theme ().
После этого давайте сосредоточимся на вашей проблеме:
должен создать мою реализацию hook_theme ().Этот хук определяет, используете ли вы функцию или файл шаблона для рендеринга вашего HTML.Он также определяет, какие переменные передать в функцию / шаблон.Вот краткий пример реализации hook_theme ():
mymodule_theme($existing, $type, $theme, $path) {
return array(
'theme_name' => array(
'variables' => array(
'options' => NULL,
)
'template' => 'theme-name'
);
}
В этом примере при вызове 'theme_name' вы также сможете передавать переменную (опции).
Послечто, создайте свой файл tpl.php и заполните его HTML и данными, которые вы хотите.Вы либо создаете файл шаблона или функцию, но не оба одновременно.
Теперь, в обратном вызове для вашего меню, вы хотите вернуть рендеринг-массив следующим образом:
$output = array(
'#theme' => 'theme-name',
'#options' => $aVariable,
);
return $output;
Как упоминал Клайвв комментарии было бы более полезно, если бы вы опубликовали все свои методы, относящиеся к вашей проблеме, чтобы мы могли лучше оценить вашу проблему.