getResources. Исключение вывода по пустому TV
Доброго времени суток. Требуется помощь светлых умов по следующей проблеме.
На сайте используются таймеры «До конца акции осталось», для каждого товара свой, но в идеале его может и не быть (вот здесь и возникает проблема).
Кстати говоря я рылся по сети, когда начинал реализовывать сам таймер и ничего похожего не нашел, так что возможно сама реализация может и пригодится кому-нить. Простенько и работает =)
Целевая дата задается в TV, коих 3 — день, месяц, час. Всё отлично работает, но если, предположим, убрать значения в этих tv (т.е. на этот товар нету акции, а значит и целевой даты) перестают работать все таймеры, т.к. генерируемые (с помощью getResources) строки скрипта для этих товаров имеют пустые значения, что и ломает работу сего скрипта.
Как бы это придумать такое условие, чтоб при отсутствии значения у ресурса в таком-то tv (ну или например при его значении равном нулю) гетРесурсез его игнорировал?
Теперь ближе к телу (коду =) ).
1. Внутри генерируются переменные и их значения, для последующего использования таймеров на странице.
2. Содержимое чанка dates_in
3. Содержимое чанка dates_class
Буду премного благодарен за любые мысли и подсказки.
На сайте используются таймеры «До конца акции осталось», для каждого товара свой, но в идеале его может и не быть (вот здесь и возникает проблема).
Кстати говоря я рылся по сети, когда начинал реализовывать сам таймер и ничего похожего не нашел, так что возможно сама реализация может и пригодится кому-нить. Простенько и работает =)
Целевая дата задается в TV, коих 3 — день, месяц, час. Всё отлично работает, но если, предположим, убрать значения в этих tv (т.е. на этот товар нету акции, а значит и целевой даты) перестают работать все таймеры, т.к. генерируемые (с помощью getResources) строки скрипта для этих товаров имеют пустые значения, что и ломает работу сего скрипта.
Как бы это придумать такое условие, чтоб при отсутствии значения у ресурса в таком-то tv (ну или например при его значении равном нулю) гетРесурсез его игнорировал?
Теперь ближе к телу (коду =) ).
1. Внутри генерируются переменные и их значения, для последующего использования таймеров на странице.
<script>
$(function () {
[[!getResources? &parents=`2,3,15,16,12` &limit=`50` &tpl=`dates_in` &includeTVs=`1` &processTVs=`1` &includeTVList=`day,hour,month` &processTVList=`day,hour,month` &sortdir=`ASC` &depth=`0` &sortby=`id` ]]
var arr = ['<i>лет</i>', '<i>мес.</i>', '<i>нед.</i>', '<i>дней</i>', '<i>час.</i>', '<i>мин.</i>', '<i>сек.</i>'];
[[!getResources? &parents=`2,3,15,16,12` &limit=`50` &tpl=`dates_class` &includeTVs=`1` &processTVs=`1` &includeTVList=`day,hour,month` &processTVList=`day,hour,month` &sortdir=`ASC` &depth=`0` &sortby=`id` ]]
});
</script>
2. Содержимое чанка dates_in
var newYear_[[+id]] = new Date(2013, [[+tv.month]] - 1, [[+tv.day]], [[+tv.hour]], 0, 0);
//вот если значение какого-либо из этих tv пустое у одного из ресурсов перестает работать скрипт3. Содержимое чанка dates_class
$('.countdown_[[+id]]').countdown({
until: newYear_[[+id]],
serverSync: true,
format: 'DHMS',
labels: arr,
labels1: arr
});
4. Ну и собственно вызов таймеров на странице<article class="timer">
<b class="_1">:</b>
<b class="_2">:</b>
<b class="_3">:</b>
<section class="countdown countdown_[[+id]]"></section>
</article>
Буду премного благодарен за любые мысли и подсказки.
Комментарии: 3
Ахахах, ребят, решение элементарное))
&tvFilters=`day!=0,hour!=0,month!=0`
не понимаю как раньше до меня не дошло)
&tvFilters=`day!=0,hour!=0,month!=0`
не понимаю как раньше до меня не дошло)
3 ТВ параметра для хранения одной даты? Советую переделать на split.
Будет работать быстрее, проверять нужно будет всего один ТВ, а в админке его будет удобнее вводить через календарик.
Будет работать быстрее, проверять нужно будет всего один ТВ, а в админке его будет удобнее вводить через календарик.
Спасибо за подсказку)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.