Есть вьюс типа "Новости", выводит анонсы последних нод. У каждой ноды есть поле-изображение.
Надо, чтобы картинка показывалась только у первого анонса.
Как лучше решить задачу? Чтобы лишние картинки не скрывались из вывода, а даже не загружались во вьюс?
Темизация вьюса
Главные вкладки
Лучший ответ
1
Не проще ли сделать отдельный дисплей и сделать его аттачем к основной новостной вьюсе?
В основной делает offset на 1
Комментарии
Если известно, что будет первым тизером, то почему бы не решить вопрос с помощью темизации тизера.
Это неизвестно. Во вьюс выводятся поля, с тизерами отношений нет. Чую, что темизировать надо какой-то из шаблонов вьюса - вывод строки или полей, но какой и как...
Пока сделал views-view-unformatted--ПРЕДСТАВЛЕНИЕ--ОТОБРАЖЕНИЕ.tpl.php, в нем отлавливается, какая строка первая, а какие остальные. Дальше дело не идет.
https://api.drupal.org/api/views/theme%21views-view.tpl.php/7.x-3.x
Шаблон выводит сразу запрос со всеми тизерами/полями - $rows
По вашей методике, нужно костыльно получать массив и переопределять все $rows, кроме первого (или наоборот, только первый)
Не проще ли сделать отдельный дисплей и сделать его аттачем к основной новостной вьюсе?
В основной делает offset на 1
Semantics - приходила такая мысль. Но кажется, что это как-то не интеллигентно)
Плохо. Два дисплея, точнее, один в другом, не дают нормально работать нужному в блоке nicescroll-у. Эта вложенность блока в блок что-то портит, что - непонятно. Так что вопрос открыт.
Тогда городить огород с условиями в темплейте.
Или из темплейта лишние врапперы вырезать, мама не отличит, что разные вьюсы
Уф! Победил. Нашарил-таки блок, на который надо было теперь перенавесить nicescroll. Всем спасибо за поддержку!
В друпале никогда не бывает мало обёрток)))