2016-05-12 10 views
1

OpenCart 2.2を実行しているオンラインストアでいくつかの変更を行っています。 左側のカテゴリをブラウズすると、異なるプロモーションを示す2つのカルーセルが表示されます。私は、2番目のカルーセルの前に説明テキストがあるように修正したい。これを行うには、テンプレートファイルを編集する必要があります。そして、ここで私が迷子にどこ..です これは、テンプレートファイル内のコードです:PHP: "if-else"ステートメントでのForeach

<div id="banner<?php echo $module; ?>" class="owl-carousel"> 
    <?php foreach ($banners as $banner) { ?> 
    <div class="item"> 
    <?php if ($banner['link']) { ?> 
    <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /></a> 
    <?php } else { ?> 
    <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /> 
    <?php } ?> 
    </div> 
    <?php } ?> 
</div> 

私は、ブラウザのインス​​ペクタで、私の場合に表示さから、このコードは、IDを持つ2つのバナーを作成する - 「banner0」と "banner1"。説明テキストは、コードの先頭(直前)に移動する必要があります。単純な段落を使用すると、各バナーの上に2回表示されます。段落を2番目のバナー(id-banner1)の上にのみ表示するにはどうすればよいですか? 私はif-elseステートメントについて考えていましたが、それがうまくいくかどうかはわかりません...少し助けてもらえますか?私のPHP知識はそれほどではありません。:S

ありがとうございます!

敬具、 Tsvetko Krastev

答えて

1

私はコード右、$moduleを取得する場合(IDは、値banner0banner1を取得する場合)、これは動作するはず0/1です:

<div id="banner<?php echo $module; ?>" class="owl-carousel"> 
    <?php foreach ($banners as $banner) { ?> 
     <?php if ($module == "1") { ?> 
      <p>Your description</p> 
     <?php } ?> 
    <div class="item"> 
     <?php if ($banner['link']) { ?> 
      <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /></a> 
     <?php } else { ?> 
      <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /> 
     <?php } ?> 
    </div> 
<?php } ?> 
</div> 
1

それからこれがforeachループの2回目であることを知る必要があります。したがって、このような指標を含めるようにするforeachを変更し、$i == 1

<div id="banner<?php echo $module; ?>" class="owl-carousel"> 

    <?php //foreach ($banners as $banner) { 
     foreach ($banners as $i => $banner) { 
    ?> 


    <div class="item"> 

    <?php if ($banner['link']) { 
     if ($i == 1) { 
      echo 'YOUR HTML CONTAINING SOME TEXT HERE'; 
     } 
    ?> 
    <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /></a> 
    <?php } else { ?> 
    <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /> 
    <?php } ?> 
    </div> 
    <?php } ?> 
</div> 
0

のためにループ内でテストを追加あなたはとても多くのみんなありがとう!両方のバージョンを試してみましたが、彼らはエラーをスローしますが、コードとの両方のあなたのソリューションにより慎重に見て、私はこの思い付いた:

<div id="desc<?php echo $module; ?>"> 
    <?php if ($module == 1) { ?> 
     <p>Description</p> 
    <?php } ?> 
<div id="banner<?php echo $module; ?>" class="owl-carousel"> 
    <?php foreach ($banners as $banner) { ?> 
    <div class="item"> 
    <?php if ($banner['link']) { ?> 
    <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /></a> 
    <?php } else { ?> 
    <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /> 
    <?php } ?> 
    </div> 
    <?php } ?> 
</div> 
</div> 

迅速な対応、助けを再びありがとうございました! :):3

お問い合わせ Tsvetko Krastev