Вывод соседних ресурсов с шаблонизацией (множественная кольцевая перелинковка).
Вывод соседних ресурсов с шаблонизацией (множественная кольцевая перелинковка)
Автор: Aharito
- как в ДокЛистере.
(целое), кол-во предыдущих и следующих соседей. Имеет приоритете над &prevQty и &nextQty.
Если &Qty=`3`, то общее кол-во будет 6 - то есть 3 перед и 3 после.
Значение по умолчанию: 2.
Кол-во соседей-предшественников. Приоритет меньше $Qty
Значение по умолчанию:default 2
Кол-во соседей-последователей. Приоритет меньше $Qty
Значение по умолчанию: 2
Также можно использовать унаследованные от DocLister (такие же, как у него): условия выборки &addWhereList и &filters, условия сортировки &orderBy, глубина выборки &depth, prepare, многие другие параметры.
Нужно лишь понимать, имеют ли смысл эти параметры в вызове. Например, если задать &idType=`documents` и &documents=`1,2,3` (всего 3 документа), а &Qty задать как 6, то выводиться все равно будут всегда эти 3 документа - смысла в этом нет.
Другие шаблоны DL не используются.
!!! В шаблонах сниппета плейсхолдеры ТВ-параметров записываются НЕ через точку, а через нижнее подчеркивание. То есть, будет не [+tv.h1+], а [+tv_h1+]. То же самое касается экстендеров, например экстендера e: вместо [+e.title+] пишем [+e_title+].
В общем, в плейсхолдерах шаблонов (только в них!) все точки меняем на нижнее подчеркивание (см. примеры вызова сниппета ниже).
Пример 1: Простой вызов сниппета.
[[DLSiblings? &idType=`parents` &parents=`152` &tpl=`@CODE: <a href="[+url+]">[+tv_h1+]</a><br>` &Qty=`2` &tvList=`h1` ]]
Пример 2: Более сложный пример с prepare и превьюшками FastImage
[[DLSiblings? &idType=`parents` &parents=`152` &thumbSnippet=`sgThumb` &thumbOptions=`{"tv.article_intro_img":{"small":"280x160","medium":"700x400"}}` //Здесь НЕ надо менять точку на подчеркивание (это не шаблон) &ownerTPL=`@CODE:<div class="row latest-news inline-showcase">[+wrap+]</div><hr>` &tpl=`@CODE: <div class="column col-1-1-2-4-4 margin-bottom-30"> //А здесь везде надо менять (это шаблон) <div class="article-announce-img"> <img class="img-responsive" src="[+tv_article_intro_img_medium+]" alt="[+e_title+] | [(cfg_company_brand_name)]"> </div> <div class="article-announce-content"> <div class="article-announce-header"> <a href="[+url+]">[+tv_h1+]</a> </div> </div> <a href="[+url+]" class="wrapper-link"></a> </div>` &Qty=`2` &tvList=`article_intro_img,h1` &prepare=`FastImagePreviews` ]]
Примечание: Это только примеры. Для того, чтобы они заработали на вашем сайте, у вас должны быть такие же TV и такие же prepare-сниппеты.
1) Кол-во запросов и т.д. при кешированном вызове сниппета на кешированном ресурсе на микро-сайте, выборка 4 из 8 статей с сортировкой
&orderBy=`if(pub_date=0,createdon,pub_date) DESC`
2) Кол-во запросов и т.д. при некешированном вызове сниппета на кешированном ресурсе на микро-сайте, выборка 4 из 8 статей с сортировкой
&orderBy=`if(pub_date=0,createdon,pub_date) DESC`