モジュールを Drupal 6 から Drupal 7 に移植しており、カスタム モジュールからテンプレートに変数を渡そうとしています。私はこのようなものを持っています:
function my_callback_function(){
... //some unrelated code
$page_params = array();
$page_params['items_per_page'] = 25;
$page_params['page'] = $_GET['page'] ? $_GET['page'] : 0;
$page_params['total_items'] = $data_provider->getNumItems();
$page_params['total_pages'] = $data_provider->getNumPages($page_params['items_per_page']);
return theme('my_theme', $page_params);
}
function my_module_theme($existing, $type, $theme, $path) {
return array(
'my_theme' => array(
'variables' => array('page_params' => NULL),
'template' => 'theme/my_template_file',
),
);
}
*my_template_file.tpl.php* 内で $page_params を使用しようとしています:
<?php print $page_params['total_items']; ?>
私のサイトが次のエラーをスローするようにするすべて:
致命的なエラー: 1075 行目の C:...\includes\theme.inc でサポートされていないオペランド タイプです
これは、 theme.incの次のコード行に対応します。
// Merge in argument defaults.
if (!empty($info['variables'])) {
$variables += $info['variables']; // THIS IS THE VERY EXACT LINE
}
elseif (!empty($info['render element'])) {
$variables += array($info['render element'] => array());
}
Drupal 6 のようにtheme()呼び出しをそのままにしておくと、エラーは表示されませんが、テンプレートは $page_params 変数を認識しません。
return theme('my_theme', array('page_params' => $page_params));
私が間違っていることを理解しようとしてAPIの半分を読みましたが、私が読んだ限りでは、これがカスタムモジュールからテンプレートに変数を渡す適切な方法のようです. したがって、どんな種類の助けも大歓迎です。
前もって感謝します。