Jump to content


Photo
- - - - -

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

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

Best Answer 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; ?>
Go to the full post


  • This topic is locked This topic is locked
2 replies to this topic

#1 Lyasik

Lyasik
  • JBZoo User (rus)
  • User rate: 0.3
  • posts: 12
  • topics: 5

Posted 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, если в соответствующих позициях нет элементов.
Возможно не самый элегантный способ верстки, буду рад любому предложению.

Attached Thumbnails

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

  • 0

#2 alexmixaylov

alexmixaylov
  • JBZoo User (rus)
  • User rate: 7.7
  • posts: 679
  • topics: 142

Posted 18 January 2016 - 12:14   Best Answer

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

Edited by alexmixaylov, 18 January 2016 - 12:14.

  • 3

#3 Lyasik

Lyasik
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.3
  • posts: 12
  • topics: 5

Posted 18 January 2016 - 13:00

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

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


  • 0





Also tagged with one or more of these keywords: bootstrap, full настройка шаблона, позиция, php

Click to return to top of page in style!