2016-05-12 165 views
1

我正在运行OpenCart 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> 

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

在此先感谢!

最好的问候, Tsvetko Krastev

回答

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

然后你需要知道这是foreach循环的第二次。因此,改变的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