1

我正在对运行 OpenCart 2.2 的在线商店进行一些更改。在左侧的类别下方浏览时,有 2 个轮播显示不同的促销活动。我想修改它,在第二个轮播之前有一个描述文本。为此,我应该编辑模板文件。这就是我迷路的地方。这是模板文件中的代码:

<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>

从我在浏览器检查器中看到的情况来看,这段代码生成了 2 个带有 id 的横幅 - “banner0”和“banner1”。描述文本应该放在代码的顶部(就在 之前)。如果我使用一个简单的段落,它会显示两次 - 在每个横幅上方。我应该如何更改它以使其仅在第二个横幅(id - banner1)上方显示段落?我正在考虑一个 if-else 语句,但我不确定这是否会起作用......有人可以帮忙吗?我对 PHP 的了解并不多... :S

提前致谢!

最好的问候, Tsvetko Krastev

4

3 回答 3

1

如果我得到正确的代码,$module是 0/1(如果 id 的获取值banner0banner1),那么这应该工作:

<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>
于 2016-05-12T09:35:38.857 回答
1

然后你需要知道这是第二次 foreach 循环。所以更改 foreach 以包含这样的索引,并在循环中添加一个测试 for$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>
于 2016-05-12T09:35:51.470 回答
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

于 2016-05-12T10:03:12.043 回答