web-dev-qa-db-ja.com

Acquia Marinaのテーマで理解できないこと

昨日、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を直接使用しないのはなぜですか?

2
enjoylife

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);
  }
  // ...
}
1
kiamlaluno