昨日、Acquia Marinaテーマをダウンロードしました。
次のコードはよくわかりません。 page.tpl.php には、次のようなコードがたくさんあります。
<?php print theme('grid_block', $search_box, 'search-box'); ?>
<?php print theme('grid_block', theme('links', $secondary_links), 'secondary-menu'); ?>
<?php print theme('grid_block', $primary_links_tree, 'primary-menu'); ?>
<?php print theme('grid_block', $tabs, 'content-tabs'); ?>
<?php print theme('grid_block', $footer_message, 'footer-message-text'); ?>
..............
Acquia Marinaのテーマバージョンは6.x-3.1です。ファイルの間にtemplate.phpファイルが見つかりませんでした。変数はどこで宣言されていますか?コードが$primary_links_tree
を直接使用しないのはなぜですか?
Acquia Marinaテーマは、Fusion Coreのサブテーマです。 $primary_links_tree
は、そのテーマのテンプレートファイルの fusion_core_preprocess_page() で定義されており、page.tpl.phpの前に呼び出される前処理関数がページの出力に使用されます。 行8 から始めて、次のコードを見つけます。
$vars['primary_links_tree'] = '';
if ($vars['primary_links']) {
if (theme_get_setting('primary_menu_dropdown') == 1) {
// Check for menu internationalization
if (module_exists('i18nmenu')) {
$vars['primary_links_tree'] = i18nmenu_translated_tree(variable_get('menu_primary_links_source', 'primary-links'));
}
else {
$vars['primary_links_tree'] = menu_tree(variable_get('menu_primary_links_source', 'primary-links'));
}
$vars['primary_links_tree'] = preg_replace('/<ul class="menu/i', '<ul class="menu sf-menu', $vars['primary_links_tree'], 1);
}
// ...
}