вывод слайдера главной стр с pdoresources
Доброго времени суток, гуру, помогите!
Идея, есть 5-6 рубрик, в них соответсвенно новости. на главной странице есть колонка свежие новости, куда выводятся все последние из этих категории, лимитом в 5 штук. Никаких проблем нет и я решил и слайдер запилить таким же способов, в слайдере 4 видимых вертикально ориентированных картинки, следующие уже пролистываются, но это и не важно. Смысл всей затее в том, чтобы редакторам было легко и удобно добавлять новости в этот слайдер, то есть, когда они пишут новости в этих 5-6 рубриках, в новости, которую нужно в слайдер добавить, надо загрузить фото для слайдера в отдельно доп поле
В общем сам вызов:
ps
отдельно делать категорию для слайдера и добавлять туда новости — не вариант. Глупо и неудобно. Нужно в любой момент в любой новости добавить в доп поле фото и увидеть ее на главной странице. Спасибо! Сорри за много текста и возможно странное объяснение, мозг кипит, не понимаю, что не так… вроде раньше я так делал на сайтах и все работало.
Идея, есть 5-6 рубрик, в них соответсвенно новости. на главной странице есть колонка свежие новости, куда выводятся все последние из этих категории, лимитом в 5 штук. Никаких проблем нет и я решил и слайдер запилить таким же способов, в слайдере 4 видимых вертикально ориентированных картинки, следующие уже пролистываются, но это и не важно. Смысл всей затее в том, чтобы редакторам было легко и удобно добавлять новости в этот слайдер, то есть, когда они пишут новости в этих 5-6 рубриках, в новости, которую нужно в слайдер добавить, надо загрузить фото для слайдера в отдельно доп поле
imagesl, если не нужно оставлять пустым. Чтобы это сделать, шаблон чанка slider_tpl я обернул в [[+tv.imagesl:notempty=` `]]чтобы ресурс не показывался, если поле пустое. В общем сам вызов:
[[pdoResources?
&tpl=`slider_tpl`
&offset=`0`
&limit=`15`
&parents=`28,44,45,53,47,51,61,62,14`
&includeTVs=`imagesl`
]]ну и сам шаблон:[[+tv.imagesl:notempty=` <article class="entry entry-overlay entry-block">
<div class="entry-media">
<figure>
<a href="[[++site_url]][[~[[+id]]]]" title="[[+pagetitle]]">
<img src="[[+tv.imagesl:phpthumbof=`w=560&h=620`]]" alt="[[+pagetitle]]">
</a>
</figure>
</div><!-- End .entry-media -->
<div class="entry-overlay-meta">
<h2 class="entry-title"><a href="[[++site_url]][[~[[+id]]]]">[[+pagetitle]]</a></h2>
<span class="entry-overlay-date"><i class="fa fa-calendar"></i>[[+publishedon:date=`%d.%m`]]</span>
<span class="entry-separator">/</span>
<span class="entry-separator">/</span>
<a href="#" class="entry-author"><i class="fa fa-user"></i>[[+createdby:userinfo=`fullname`]]</a>
</div><!-- End .entry-overlay-meta -->
</article>`]]Проблема: Все в слайдер норм добавляется, пока вставляешь новостям фото в доп поля для слайдера. Но, как только начинаешь добавлять в любой рубрике новость без этой фотки, в слайдре добавляется пустое место, как будто вместо последней фотки. То есть визуально становится -1 последний слайд, потом добавляешь еще новость — уже минус 2. Смотришь код, действительно добавляется пустота, остается только 2 последних слайдера, как будто он туда пытается добавлять ресурс, но тк доп поле пустое, все скрывается и добавляет пустоту. Если удалить [[+tv.imagesl:notempty=``]] Тогда да, в слайдер выводятся все ресурсы, но нормально выглядят только с фоткой, другие соответственно без нее, только текс и ссылка на страницу. Как это может быть? как правильно говорить pdo какие ресурсы нужно выводить по доп полям? ps
отдельно делать категорию для слайдера и добавлять туда новости — не вариант. Глупо и неудобно. Нужно в любой момент в любой новости добавить в доп поле фото и увидеть ее на главной странице. Спасибо! Сорри за много текста и возможно странное объяснение, мозг кипит, не понимаю, что не так… вроде раньше я так делал на сайтах и все работало.
Комментарии: 6
блин, это что, из — за
&limit=``??? как только сделал больше все встало на места.но мне вообще надо, чтобы в слайдере было 5 ресурсов. я же не могу написать &limit=`9999999` через 2 дня работы в слайдере будет уже новостей 50… В общем, как правильно сделать слайдер? такой вопрос будет проще
Дело в том, что оборачивая результат в :notempty вы не отменяете то, что он сначала добавляется в выборку, а уже после визуально прячется.
Вам нужно убрать обертку notempty и добавить условие в вызов сниппета
Вам нужно убрать обертку notempty и добавить условие в вызов сниппета
&where=`{"imagesl:!=":"","AND:imagesl:!=":null}` — таким образом вы будете отсеивать ненужные документы в момент выборки, а не после.
Спасибо!!! :-) с JSON у меня плохо, не сообразил даже, может пользуясь случаем скините ссылку на примеры и объяснения? Еще раз огромное спасибо!
Ну, примеров как формировать json-запрос, думаю, в интернетах хватает. Могу только еще порекомендовать поиск на этом сайте и утилиту для проверки json.
А по поводу параметров сниппета — вам в документацию.
А по поводу параметров сниппета — вам в документацию.
Спасибо! Поиск на этом сайте вы имели ввиду modx.pro?
Да. Где где, а там примеров с where хватает..)
Не за что. %)
Не за что. %)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.