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


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

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

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

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

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

 

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

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


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

#1 Сонкин

Сонкин

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

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

 

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

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

 

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

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

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

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

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

 

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

 

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

public function _render($params = array())
{	
	if ($layout = $this->getLayout('default.php')) {
		
		return $this->renderLayout($layout);
		
	}
	return null;
}

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

  • 0

#2 SmetDenis

SmetDenis

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

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

 

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

public function render($params = array()) {
 
    $params = $this->app->data->create($params);
    $result = array();
    foreach ($this as $self) {
        if ($this->key() <= 2) {
             $result[] = $this->_render($params);
        }
    }
 
    return $this->app->element->applySeparators($params->get('separated_by'), $result);
}

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



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


#3 Сонкин

Сонкин

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

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


  • 0





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

Click to return to top of page in style!