web-dev-qa-db-ja.com

Zenでスライドショーの領域を追加する

Zenテーマを使用して、スライドショーの領域を作成したいと思います。問題は、page.tpl.phpファイルのどこにコードを配置するかわからないことです。ナビゲーションを上にして、スライドショー、残りのWebサイトの順に表示します。次のコードをpage.tpl.phpファイルのすべての場所に配置しようとしましたが、目的の結果を得ることができませんでした。

これが私が使っているコードです:

  <?php if ($page['featured_slider']): ?>
    <div id="featured-slider">
      <?php print render($page['featured_slider']); ?>
    </div> <!-- End Featured Slider-->
  <?php endif; ?>

上記のコードなしのpage.tpl.phpファイルを次に示します。

?>

<div id="page-wrapper"><div id="page">

  <div id="header"><div class="section clearfix">

    <?php if ($logo): ?>
      <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo"><img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" /></a>
    <?php endif; ?>

    <?php if ($site_name || $site_slogan): ?>
      <div id="name-and-slogan">
        <?php if ($site_name): ?>
          <?php if ($title): ?>
            <div id="site-name"><strong>
              <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
            </strong></div>
          <?php else: /* Use h1 when the content title is empty */ ?>
            <h1 id="site-name">
              <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
            </h1>
          <?php endif; ?>
        <?php endif; ?>

        <?php if ($site_slogan): ?>
          <div id="site-slogan"><?php print $site_slogan; ?></div>
        <?php endif; ?>
      </div><!-- /#name-and-slogan -->
    <?php endif; ?>

    <?php print theme('links__system_secondary_menu', array(
      'links' => $secondary_menu,
      'attributes' => array(
        'id' => 'secondary-menu',
        'class' => array('links', 'inline', 'clearfix'),
      ),
      'heading' => array(
        'text' => $secondary_menu_heading,
        'level' => 'h2',
        'class' => array('element-invisible'),
      ),
    )); ?>

    <?php print render($page['header']); ?>

  </div></div><!-- /.section, /#header -->

  <div id="main-wrapper"><div id="main" class="clearfix<?php if ($main_menu || $page['navigation']) { print ' with-navigation'; } ?>">

    <div id="content" class="column"><div class="section">
      <?php print render($page['highlighted']); ?>
      <?php print $breadcrumb; ?>
      <a id="main-content"></a>
      <?php print render($title_prefix); ?>
      <?php if ($title): ?>
        <h1 class="title" id="page-title"><?php print $title; ?></h1>
      <?php endif; ?>
      <?php print render($title_suffix); ?>
      <?php print $messages; ?>
      <?php if ($tabs = render($tabs)): ?>
        <div class="tabs"><?php print $tabs; ?></div>
      <?php endif; ?>
      <?php print render($page['help']); ?>
      <?php if ($action_links): ?>
        <ul class="action-links"><?php print render($action_links); ?></ul>
      <?php endif; ?>
      <?php print render($page['content']); ?>
      <?php print $feed_icons; ?>
    </div></div><!-- /.section, /#content -->

    <?php if ($page['navigation'] || $main_menu): ?>
      <div id="navigation"><div class="section clearfix">

        <?php print theme('links__system_main_menu', array(
          'links' => $main_menu,
          'attributes' => array(
            'id' => 'main-menu',
            'class' => array('links', 'inline', 'clearfix'),
          ),
          'heading' => array(
            'text' => t('Main menu'),
            'level' => 'h2',
            'class' => array('element-invisible'),
          ),
        )); ?>

        <?php print render($page['navigation']); ?>

      </div></div><!-- /.section, /#navigation -->
    <?php endif; ?>

    <?php print render($page['sidebar_first']); ?>

    <?php print render($page['sidebar_second']); ?>

  </div></div><!-- /#main, /#main-wrapper -->

  <?php print render($page['footer']); ?>

</div></div><!-- /#page, /#page-wrapper -->

<?php print render($page['bottom']); ?>
3
Steve

if($page['featured_slider']):を削除してみてください

スライドショーブロックがfeatured_slider領域に配置されていることを確認してください。

1
CobaltBabyBear

スライドショーを含むブロックを正しい領域に割り当てていること、およびスライドショーにコンテンツが含まれていることを確認してください。

1
ipwa

カスタムリージョンをテーマに追加するには:

  1. subtheme.infoファイル(またはサブテーマがない場合はzen.info ...)で、リージョンリストに新しいリージョンを宣言regions[featured_slider] = Featured slider
  2. page.tpl.phpで、リージョンコンテンツをレンダリングします

    <?php if ($page['featured_slider']): ?>
      <div id="featured-slider">
        <?php print render($page['featured_slider']); ?>
      </div> <!-- End Featured Slider-->
    <?php endif; ?>
    

    キャッシュを空にするを忘れないでください。

  3. 最後のステップ:admin/structure/block管理メニューから、または

    $block = module_invoke('views', 'block_view', 'SLIDESHOW_VIEWBLOCK_NAME'); 
    print render($block);
    

(私は個人的にはスライドショーのためだけの領域を作成してヘッダー領域に配置することはしませんが、それはもちろんあなた次第です。)

1
Kojo

または、phpを変更せずに、スライドショーブロックをコンテンツ領域(上部)に割り当てるだけで、通常のページコンテンツの上、つまりナビゲーション(メニュー)の下に配置できます。

0
CardiffSteve