私はモジュールを開発しており、ページごとにテーマ ディレクトリから異なる .tpl.php レイアウトを呼び出す必要があります。現在持っているものは次のとおりです。
return theme('adverts_index', array('adverts' => $advertsThemeArray));
それが、ページ コールバック関数の 1 つで返されるものです。これで問題なく完全に動作しますが、モジュール内の別のページ コールバック関数で別のテーマ フックを使用して同じことを試みましたが、テーマ フックで指定されたレイアウトを呼び出しません。
$r = theme('adverts_view_advert', array(
'advert' => array(
'id' => $advert->aid,
'seller' => $advertiser,
'more_from_user' => array(),
'year' => $advert->year,
'condition' => $advert->condition,
'region' => $advert->region,
'city' => $advert->city,
'content' => $advert->description,
'bids' => $allBidsArray,
),
)
);
return $r;
ページは完全に空白ではなく、ヘッダーを含むすべてのページで使用されるメインの page.tpl.php と、まだ表示されていないものがあります。内容を呼び出そうとしたテンプレートだけが表示されません。
これは私の hook_theme です:
function adverts_theme() {
$theme = array();
$theme['adverts_index'] = array(
'template' => 'adverts-index',
'variables' => array(
'advert' => array(
'title' => null,
'formatted_price' => null,
'image' => null,
'permalink' => null,
'formatted_date' => null,
'description' => null,
),
),
);
$theme['adverts_view_advert'] = array(
'template' => 'adverts-single',
'variables' => array(
'advert' => array(
'id' => null,
'seller' => null,
'more_from_user' => null,
'year' => null,
'condition' => null,
'region' => null,
'city' => null,
'content' => null,
'bids' => null,
),
),
);
return $theme;
}
どんな助けでも大歓迎です!