@nasvek

Как вывести переменную JavaScript вместе со Smarty?

Добрый день, уже измучился не получается никак настроить pickadate.js, чтобы он работал вместо со SMARTY и JavaScript, подскажите как реализовать
Где это реализовывается:
Это реализовывается на движке CS CART
Задача:
Выключить выбор определенный дат исходя из настроек модуля в CS CART (эти самые настройки проверяются через SMARTY)
Как выключаются даты в pickadate.js (ссылка на сайт с документацией):
Disable a specific or arbitrary set of dates selectable on the picker.
$('.datepicker').pickadate({
disable: [
new Date(2015,3,13),
new Date(2015,3,29)
]
})

В чем проблема:
А проблема в том, что в CS CART Используется SMARTY и соответственно получается, что не вставляется значение из JAVASCRIPT в SMARTY, мне пришлось прибегнуть к JAVASCRIPT коду так как в SMARTY не предусмотрена та фигня, что в JS нумерация идет с нуля, тогда я решил обрабатывать месяц в JS и вставлять его в SMARTY, но данный код не работает (ниже проблемный кусочек кода)
{$smarty_today_date = $smarty.now}
{$smarty_today_date = $smarty_today_date|date_format:"%Y,%m,%e"}
{$plus_one_day = $smarty.now+24*60*60}
{$plus_one_day = $plus_one_day|date_format:"%Y,%m,%e"}
<script type="text/javascript">

(function(_, $) {$ldelim}
		    $.ceEvent('on', 'ce.commoninit', function(context) {
		    	var now = new Date();
				var today = '['+now.getFullYear()+','+now.getMonth()+','+now.getDate()+']';
				var tomorrow = '['+now.getFullYear()+','+now.getMonth()+','+(now.getDate()+1)+']';
				var disable_date = today+", "+tomorrow+", ";

		    	var $delivery_date = $('.delivery_date').pickadate({
					format: 'd mmmm yyyy (ddd)',
					formatSubmit: '{$date_format}',
					  disable: [
					  disable_date, 
					{if $set.forbidden_dates_for_date_selection && $set.forbidden_dates_for_date_selection != ""}{$set.forbidden_dates_for_date_selection},{/if}
		    		{if !isset($set.forbidden_days_of_the_week_for_delivery.N)}{foreach from=$set.forbidden_days_of_the_week_for_delivery key=k item=v}{$k}, {/foreach}{/if}
  					],
					hiddenName: true,
					showMonthsShort: true,
					min: true,
					close: '',
					clear: '',
					firstDay: 1,
		    	});

		    	$('.delivery_time').pickatime({
		    		format: 'H:i',
		    		formatSubmit: 'HH:i',
		    		hiddenName: true,
		    		{if $set.min_choosing_the_delivery_time && $set.min_choosing_the_delivery_time != ""}min: [{$set.min_choosing_the_delivery_time}],{/if}
		    		{if $set.max_choosing_the_delivery_time && $set.max_choosing_the_delivery_time != ""}max: [{$set.max_choosing_the_delivery_time}],{/if}
		    		{if $set.the_selection_intervals_of_time && $set.the_selection_intervals_of_time != ""}interval: {$set.the_selection_intervals_of_time},{/if}
		    		clear: '',
		    	});

		    });
		{$rdelim}(Tygh, Tygh.$));

</script>
И получается, что выбор даты этих дней все равно доступен5e78b5a29e9a3728197451.png
  • Вопрос задан
  • 227 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы