getResources. Исключение вывода по пустому TV

Доброго времени суток. Требуется помощь светлых умов по следующей проблеме.
На сайте используются таймеры «До конца акции осталось», для каждого товара свой, но в идеале его может и не быть (вот здесь и возникает проблема).
Кстати говоря я рылся по сети, когда начинал реализовывать сам таймер и ничего похожего не нашел, так что возможно сама реализация может и пригодится кому-нить. Простенько и работает =)


Целевая дата задается в 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>

Буду премного благодарен за любые мысли и подсказки.
Влад Козьяков
04 июня 2013, 01:07
modx.pro
1
1 604
0

Комментарии: 3

Влад Козьяков
04 июня 2013, 05:38
0
Ахахах, ребят, решение элементарное))
&tvFilters=`day!=0,hour!=0,month!=0`
не понимаю как раньше до меня не дошло)
    Василий Наумкин
    04 июня 2013, 06:18
    0
    3 ТВ параметра для хранения одной даты? Советую переделать на split.

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