2016-05-12 28 views
1

Я делаю некоторые изменения в интернет-магазине, на котором работает OpenCart 2.2. При просмотре под категориями с левой стороны есть две карусели, которые показывают разные рекламные акции. Я хочу изменить его, что перед второй карусели есть текст описания. Для этого я должен отредактировать файл шаблона. И вот здесь теряюсь .. Это код в файле шаблона:PHP: Foreach с оператором «if-else»

<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 баннера с идентификаторами - «banner0» и "banner1". Текст описания должен находиться в верхней части кода (справа). Если я использую простой абзац, он отображается дважды - над каждым баннером. Как его изменить, чтобы он отображал абзац только над вторым баннером (id-banner1)? Я думал об утверждении if-else, но я не уверен, что это сработает ... Может ли кто-нибудь помочь немного? Мои знания в PHP немного ...: S

Заранее благодарим!

С наилучшими пожеланиями, Tsvetko Крыстев

ответ

1

Если я получаю правильный код, $module является 0/1 (если идентификаторы получить значения banner0 и banner1), то это должно работать:

<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. Таким образом, изменение Еогеасп включить индекс, как это, и добавить тест внутри цикла для $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

С уважением, Цветко Крастев

Смежные вопросы