Перейти к содержимому


Фотография
- - - - -

Вывод кода в шаблоне по условию наличия элементов в позиции.

bootstrap full настройка шаблона позиция php

Лучший Ответ alexmixaylov , 18 January 2016 - 12:14

checkPosition - проверяет есть ли что то в позиции 1

а renderPosition уже выводит то что есть в соответствующей позиции

вы можете хоть десять элементов вывести, проверив всего одну позицию

<?php if ($this->checkPosition('position_1')) : ?>
    <div class="<?php echo $bootstrap->gridClass(6); ?>">
        <?php echo $this->renderPosition('position_1'); ?>
        <?php echo $this->renderPosition('position_1_text'); ?>
    </div>
<?php endif; ?>
Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 2

#1 Lyasik

Lyasik

Отправлено 18 January 2016 - 11:08

Коллеги, добрый день.
Не имею большого опыта работы с php, поэтому возник такой вопрос.
Задача следующая:
Joomla: 3.4.8 JBZoo: 2.2.4 Pro rev3086 Zoo: 3.3.14, bootstrap 2.
Я создаю свой шаблон full, вывожу в нем позиции, по две штуки на строку.
Мне необходимо, чтобы шаблон выводил код строки только в том случае, если есть элемент хотя бы в первой строке.
Сам код:
 

<div class="<?php echo $rowClass; ?>">
<div class="<?php echo $bootstrap->gridClass(6); ?>">
<?php if ($this->checkPosition('position_1')) : ?> 
<?php echo $this->renderPosition('position_1'); ?>
<?php endif; ?>
</div>
<div class="<?php echo $bootstrap->gridClass(6); ?>">
<?php if ($this->checkPosition('position_1_text')) : ?>
<?php echo $this->renderPosition('position_1_text'); ?>
<?php endif; ?>
</div>
</div>
<div class="<?php echo $rowClass; ?>">
<div class="<?php echo $bootstrap->gridClass(6); ?>">
<?php if ($this->checkPosition('position_2')) : ?> 
<?php echo $this->renderPosition('position_2'); ?>
<?php endif; ?>
</div>
<div class="<?php echo $bootstrap->gridClass(6); ?>">
<?php if ($this->checkPosition('position_2_text')) : ?>
<?php echo $this->renderPosition('position_2_text'); ?>
<?php endif; ?>
</div>
</div>

Таких позиций у меня несколько подряд. Необходимо, чтобы он не выводил row, если в соответствующих позициях нет элементов.
Возможно не самый элегантный способ верстки, буду рад любому предложению.

Прикрепленные изображения

  • 2016-01-18 13-07-06 Скриншот экрана.png

  • 0

#2 alexmixaylov

alexmixaylov

Отправлено 18 January 2016 - 12:14   Лучший Ответ

checkPosition - проверяет есть ли что то в позиции 1

а renderPosition уже выводит то что есть в соответствующей позиции

вы можете хоть десять элементов вывести, проверив всего одну позицию

<?php if ($this->checkPosition('position_1')) : ?>
    <div class="<?php echo $bootstrap->gridClass(6); ?>">
        <?php echo $this->renderPosition('position_1'); ?>
        <?php echo $this->renderPosition('position_1_text'); ?>
    </div>
<?php endif; ?>

Сообщение отредактировал alexmixaylov: 18 January 2016 - 12:14

  • 3

#3 Lyasik

Lyasik

Отправлено 18 January 2016 - 13:00

Спасибо большое, действительно сработало. Я предполагал, что if влияет только на php код и весь html у меня будет выводится вне зависимости от срабатывания условий.

Буду учить синтаксис =)


  • 0





Темы с аналогичным тегами bootstrap, full настройка шаблона, позиция, php

Click to return to top of page in style!