Игорь

Игорь

Был в сети 20 июля 2024, 10:36
Заказы не принимаю
Здравствуйте.
Как можно сделать множественный список ресурсов?
Стандартный вариант (добавить в поле «Список (множественный выбор)» запрос mysql или сниппет) здесь не срабатывает…
@EVAL return $modx->runSnippet('pdoResources', array(
	'parents' => 3,
	'limit' => 0,
	'tpl' => '@INLINE {$pagetitle}=={$id}',
	'outputSeparator' => '||',
	'sortby' => '{"menuindex":"ASC"}'
  ));
Вывел в логи срабатывание плагинов:
[2023-10-15 13:50:33] Сработал msBonus: OnMODXInit
[2023-10-15 13:50:33] Сработал msBonus: msOnBeforeSaveOrder
[2023-10-15 13:50:33] Сработал msBonus: msOnSaveOrder
[2023-10-15 13:50:33] Сработал msBonus: msOnCreateOrder
[2023-10-15 13:50:33] Сработал msTelegram
[2023-10-15 13:50:34] Сработал msBonus: msOnEmptyCart
[2023-10-15 13:50:34] Сработал msBonus: msOnBeforeChangeOrderStatus
[2023-10-15 13:50:34] Сработал msBonus: msOnBeforeSaveOrder
[2023-10-15 13:50:34] Сработал msBonus: msOnSaveOrder
[2023-10-15 13:50:34] Сработал msBonus: msOnBeforeSaveOrder
[2023-10-15 13:50:34] Сработал msBonus: msOnSaveOrder
[2023-10-15 13:50:34] Сработал msBonus: msOnSaveOrder
[2023-10-15 13:50:35] Сработал msBonus: OnMODXInit
[2023-10-15 13:50:43] Сработал msBonus: OnMODXInit
В событии msOnCreateOrder порядок верный сейчас (сначала msBonus, потом msTelegram).
т.е. отправку телеграм нужно вешать на какое-то другое событие? Но ведь тогда будут лишние сообщения приходить при каждом сохранении заказа? А нужно только о новых заказах писать в телеграм?
Что-то я совсем запутался — на почту ведь нормальное письмо приходит, со всеми бонусами (и на странице «Заказ получен» тоже всё хорошо)
Такое ощущение, что эти бонусы «долго списываются» и msTelegram раньше начинает свою работу, даже если по порядку он включается позже… Такое может быть?
Может быть моно настроить какую-нибудь задержку по времени выполнения?
Здравствуйте.
Подскажите, можно ли на странице оформления заказа динамически изменять итоговую сумму при применении бонусов?
Т.е. из документации
docs.modx.pro/components/msbonus2/quick-start я понял, что можно вывести дополнительную строчку типа «из ни Оплата бонусами» рядом с итоговой суммой заказа. Но есть желание изменять саму сумму (с учетом того, что она также зависит от стоимости доставки, промокодов и т.п.).
Или добавить ещё один параметр «Итого к оплате» (стоимость заказа — бонусы), опять же что бы это все работало динамически?
вроде почти со всем уже разобрался… только не могу понять, почему когда мышкой перемещаешь ползунок слайдера, цифры в результате, чаще всего «немножко не правильные» вылазят (когда мышкой двигаю — всё четко)… я так понимаю, что это связано с тем, что «в самом коде слайдера нужно изменить отправку события change только когда «отпустили» ползунок» — только как это сделать, я в js не особо ((
сейчас увидел, что это я в чанке tpl.mFilter2.filter.number просто кавычки забыл закрыть в параметре name="{$filter_key}"… но, всё равно, нормально пока не работает — у меня два этих ползунка, а в js я не особо силен… если есть готовое правильное решение — было бы очень круто )
Здравствуйте.
Тоже пытаюсь «прикрутить» Ion.RangeSlider к mFilter2.
Может быть кто-нибудь разобрался уже с этим вопросом?
Вроде бы все и просто должно быть, но по факту корректно не работает совсем у меня.
1. Чанк tpl.mFilter2.filter.slider:
<fieldset id="mse2_{$table ~ $delimeter ~ $filter}">
    <div class="price" id="js-range-slider-{$filter_key}">
		<div class="name">{('mse2_filter_' ~ $table ~ '_' ~ $filter) | lexicon}</div>
		<!--<div class="mse2_number_slider mse2_number_inputs row"></div>-->
		<input type="text" class="js-range-slider mse2_number_slider mse2_number_inputs row" name="{$filter_key}" value=""
        data-type="double"
        {$rows}
        data-grid="true"
    />
	</div> 
</fieldset>
2. Чанк tpl.mFilter2.filter.number (наверное так не правильно делать, но чисто для примера):
{var $key = $table ~ $delimeter ~ $filter}
{if $idx == 0}data-min="{$value}" data-from="{$value} name="{$filter_key}" id="mse2_{$key}_{$idx}" value="{$value} data-current-value="{$current_value}" class="form-control ml-1""{/if}
{if $idx == 1}data-max="{$value}" data-to="{$value} name="{$filter_key}" id="mse2_{$key}_{$idx}" value="{$value} data-current-value="{$current_value}" class="form-control ml-1""{/if}
3. Скрипт, который должен реагировать на изменения ползунка (из вашего примера), он вроде даже как-то и «реагирует», но очень странно:
<script>
    $(".js-range-slider").ionRangeSlider({
        range: true,
        type: "double",
        keyboard: true,
        input_values_separator: ",",
        onFinish:function(ui) { 
	    $('.js-range-slider').val(ui.from + ',' + ui.to);
            $('.js-range-slider').trigger('change');
	} ,
    } ) ;
</script>
{set $articles = 'pdoResources' | snippet : [
                'parents' => '8',
				'limit' => '5',
                'includeTVs' => 'img',
                'sortby' => 'menuindex',
                'sortdir' => 'ASC',
                'tvPrefix'=>'',
                'return' => 'data'
 ]}
и дальше уже по верстке:
<section class="building">
	<div class="container">
		<h3 class="title">{$title}</h3>
		<div class="building__inner">
			<div class="building__blocks">
				<div class="building__block building__block-1">
					<div class="title">{$articles[0].pagetitle}</div>
					<div class="subtitle">{$articles[0].introtext}</div>
					<a href="{$_modx->config.site_url}{$articles[0].uri}" class="btn">ПОДРОБНЕЕ</a>
				</div>
				<div class="building__block building__block-2">
					<div class="title">{$articles[1].pagetitle}</div>
					<div class="subtitle">{$articles[1].introtext}</div>
					<a href="{$_modx->config.site_url}{$articles[1].uri}" class="btn">ПОДРОБНЕЕ</a>
				</div>
			</div>
			<div class="building__blocks">
				<div class="building__block building__block-3">
					<div class="photo"><img src="{$_modx->config.site_url}{$articles[2].img}" alt="{$articles[2].pagetitle}"></div>
					<div class="content">
						<div class="title">{$articles[2].pagetitle}</div>
						<a href="{$_modx->config.site_url}{$articles[2].uri}" class="btn">ПОДРОБНЕЕ</a>
					</div>
				</div>
				<div class="building__block building__block-4">
					<div class="title">{$articles[3].pagetitle}</div>
					<div class="subtitle">{$articles[3].introtext}</div>
					<a href="{$_modx->config.site_url}{$articles[3].uri}" class="btn">ПОДРОБНЕЕ</a>
				</div>
				<div class="building__block building__block-5">
					<div class="photo">
						<img src="{$_modx->config.site_url}{$articles[4].img}" alt="{$articles[4].pagetitle}">
					</div>
					<div class="content">
						<div class="title">{$articles[4].pagetitle}</div>
						<a href="{$_modx->config.site_url}{$articles[4].uri}" class="btn">ПОДРОБНЕЕ</a>
					</div>
				</div>
			</div>
		</div>
	</div>
</section>
// и т.д.
Спасибо за помощь!
вроде работает по вашей подсказке, толком не смотрел ещё, но кажется всё ок )
{set $test = 'pdoResources' | snippet : [
                'parents' => '8',
				'limit' => '5',
                'includeTVs' => 'img',
                'sortby' => 'menuindex',
                'sortdir' => 'ASC',
                'return' => 'data'
 ]}
 
  {$test[0].pagetitle}
 {$test[0].introtext}
 {$test[0].uri}
 {$test[0].tv.img}
остается только в чанке с версткой эти элементы распихать по нужным блокам