2014年3月28日金曜日

drupal omega ohm ナビゲーション部分の表示場所

omegaのohmナビゲーション表示部分について

sites\all\themes\omega\ohm\templates\system\page.tpl.php
中の
<?php print render($page['navigation']); ?>
で、ナビゲーションの部分を表示をしている。

sites\all\themes\omega\ohm\css\ohm.styles.css
ここの中でナビゲーション部分の表示を担当している。
場所は
344行からの
/**
 * $NAV-BAR
 */
.block--nav-bar a {
  display: block;
  padding: 1.2em 1em;
  font-size: 16px;
  font-size: 1.14286rem;
  text-transform: uppercase;
  text-decoration: none;
  color: #fff;
}
.block--nav-bar a:hover, .block--nav-bar a:focus {
  color: #064771;
}
@media (min-width: 600px) {
  .block--nav-bar a {
    font-size: 18px;
    font-size: 1.28571rem;
    border-left: 1px solid #fff;
  }
  .block--nav-bar li:last-child a {
    border-right: 1px solid #fff;
  }
}
だけど、page.tpl.phpの中に、cssのこの部分がみつからない。
なぜだ?

sassで
sites\all\themes\omega\ohm\sass\components\blocks\_nav-bar.scss
ここにこんなのがある。
でも、関係ないなぁ。まぁ、これはこれでいいとして・・・。

で、他を調べ進む内に下のファイルを見つけた。ようやく納得。
sites\all\themes\omega\ohm\preprocess\block.preprocess.inc
ここでcssのblock--nav-barを指定している。
何でこんな回りくどい事してるんだ?
普通にcssで指定すると何か問題が出るのか?
とりあえず、cssとphpがつながったので、この問題の続きはまた後で。

追加。
omega系はpreprocessフォルダが置いてある。
まだ確認していないからここからは推測だけど、このフォルダー内のものは
Home » Administration » Appearance » Settings
で設定できるLayouts extensionをオンにしたときとオフにしたとき、全てに適用される。のだと思う。

再度sites\all\themes\omega\ohm\preprocess\block.preprocess.incの話。
この中に
'navigation' && _ohm_is_menu_block($block)
が出てくる。
これがどこから出てくるのか探したら、
sites\all\themes\omega\ohm\template.php
の中に
function _ohm_is_menu_block($block)
が出てきた。
この中の
$modules = array('menu', 'menu_block');
  if (in_array($block->module, $modules)) {
    return TRUE;
  }
ここで定義。



0 件のコメント:

コメントを投稿