slider — оператор php if выполняется больше раз, чем ожидалось

Я сделал расширение слайдера для Magento 2, используя Slick.js. Я позволил пользователям добавлять слайды в бэкэнд, и для каждого слайда есть возможность добавить текстовое поле.

Я получаю текст для текстового поля, как это (в комментарии <-- Get text -->:

<?php $_sliders = $block->getSlidersCollection(); ?>
<?php if ($_sliders->count() > 0): ?>

<div class="sliderslick">
<?php foreach ($_sliders as $_slider): ?>
<div id="sliderslick-container">

<!-- Check if URL is linked to image -->
<?php if ($_slider->getUrl()): ?>
<a href="<?php echo $block->escapeUrl($_slider->getUrl()); ?>" <?php if ($block->getLinkTarget()): ?> target="_blank" <?php endif; ?>>
<?php endif; ?>

<!-- Get image -->
<?php if ($image = $block->getImageUrl($_slider->getImage())): ?>
<img src="<?php echo $image; ?>" alt="<?php echo $block->escapeHtml($_slider->getImageLabel()); ?>" />
<?php endif; ?>

<!-- Get text -->
<?php if ($_slider->getHtml()): ?>
<div class="slider-textbox">
<div class="textbox-content">
<?php echo $_slider->getHtml() ?>
</div>
</div>
<?php endif; ?>
<?php if ($_slider->getUrl()): ?>
</a>
<?php endif; ?>

</div>
<?php endforeach; ?>
</div>

Это отлично работает, за исключением первого слайда. Для первого слайда есть несколько одинаковых текстовых полей, и они «вставляются» друг в друга, вот так:

Textboxes

В то время как на втором слайде текстовое поле показывается нормально (только одно текстовое поле).

Есть ли недостаток в коде? Это как-то связано с тем, как php загружается на страницу?

Выход из <?php print_r( $_slider->getHtml() ); ?>

вывод print_r

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]