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


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

Как ограничить показ повторяющегося элемента указанным числом

элемент повторяемый элемент

Лучший Ответ SmetDenis , 12 March 2017 - 22:52

Можно проверять число, которое вернется в $this->key()

 

т.е переопределить рендеринг

  1. public function render($params = array()) {
  2.  
  3.     $params = $this->app->data->create($params);
  4.     $result = array();
  5.     foreach ($this as $self) {
  6.         if ($this->key() <= 2) {
  7.              $result[] = $this->_render($params);
  8.         }
  9.     }
  10.  
  11.     return $this->app->element->applySeparators($params->get('separated_by'), $result);
  12. }
Перейти к сообщению


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

#1 Сонкин

Сонкин

Отправлено 12 March 2017 - 21:30

Всем доброго настроения! )

 

Решил сделать простенький элемент для программы дня. Ничего особенного: иконка, текст и текстовое поле. Элемент повторяющийся.

Делал по аналогии с другими, в общем всё получилось.

 

Вот только в тизере мне нужно чтобы элемент повторялся только 3 раза, а в Full без ограничений.

Смотрел на элементы которые можно ограничить настройкой "Показать только первый", там такое:

  1. case 'first':
  2. this->seek(0);
  3. if (($text = $this->get('value', '')) && !empty($text)) {
  4. $result[] = $text;
  5. }
  6. break;

т.е. перемещает к первой позиции.

Получается, что в моём случае это не подходит.

 

Подскажите, как ограничить показ только указанным числом, например 2-мя или 4-мя?

 

Сейчас элемент выводится просто вот так:

  1. public function _render($params = array())
  2. {
  3. if ($layout = $this->getLayout('default.php')) {
  4. return $this->renderLayout($layout);
  5. }
  6. return null;
  7. }

Сообщение отредактировал Сонкин: 12 March 2017 - 21:31

  • 0

#2 SmetDenis

SmetDenis

Отправлено 12 March 2017 - 22:52   Лучший Ответ

Можно проверять число, которое вернется в $this->key()

 

т.е переопределить рендеринг

  1. public function render($params = array()) {
  2.  
  3.     $params = $this->app->data->create($params);
  4.     $result = array();
  5.     foreach ($this as $self) {
  6.         if ($this->key() <= 2) {
  7.              $result[] = $this->_render($params);
  8.         }
  9.     }
  10.  
  11.     return $this->app->element->applySeparators($params->get('separated_by'), $result);
  12. }

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Сонкин

Сонкин

Отправлено 13 March 2017 - 00:16

Спасибо! То, что хотел.


  • 0





Темы с аналогичным тегами элемент, повторяемый элемент

Click to return to top of page in style!