Возможность разместить фильтр вне чанка {$filters}

Добрый день всем.
Дизайнер придумал выводить в сайдбаре фильтр по категориям и подкатегориям, а фильтр по цветам в соседней колонке. По картинке все станет понятно) В общем то чанк filters я разместил в сайдбаре, а выводятся фильтры только в нем, как я понимаю. Возможно ли разместить фильтр вне чанка filters и чтобы он работал?

Олег
16 февраля 2022, 17:48
modx.pro
579
0

Импорт остатков по складам из 1С в minishop2

Здравствуйте!
Подскажите, есть ли сейчас готовое решение для этого? Хотели поставить mSync, но он похоже такого не делает. В файлах выгрузки из 1С склады выглядят так:
<Склады>
			<Склад>
				<Ид>5bb4c109-7f58-470b-a183-fd584152fc64</Ид>
				<Наименование>Склад Розничный</Наименование>
			</Склад>
			<Склад>
				<Ид>0a763fc9-d8e4-4f0e-968e-63934ae5515a</Ид>
				<Наименование>Отдел Мега</Наименование>
			</Склад>
			<Склад>
				<Ид>13cafe43-2a8c-412b-8946-f0b3d2b86642</Ид>
				<Наименование>Отдел Планета</Наименование>
			</Склад>
</Склады>
У предложений
<Склад ИдСклада="0a763fc9-d8e4-4f0e-968e-63934ae5515a" КоличествоНаСкладе="1"/>
<Склад ИдСклада="13cafe43-2a8c-412b-8946-f0b3d2b86642" КоличествоНаСкладе="1"/>
В инете есть похожие вопросы, но ответов нет. По сути из 1С нам нужно будет передавать только название товара, артикул, цену, общее количество товара и эти остатки.
pandaworks
16 февраля 2022, 14:33
modx.pro
532
0

Не сортирует ресурсы по тегу через where и OR, как исправить?

Выводит все ресурсы вместо сортировки и вывода, tagsWhere выдаёт правильную строку такую:
{"tags:LIKE","%роллы%","OR:tags:LIKE","%кексы%","OR:tags:LIKE","%рофлы%"}
tags это «Авто-метка» пакет tagLister

Такие ресурсы с такими тегами есть
[[!pdoResources?
	&parents=`6`
	&resources=`-[[*id]]`
	&includeTVs=`tags,newsImg`
	&sortby=`{ "parent":"ASC", "menuindex":"ASC" }`
	&tpl=`similarNewsTpl`
	&where=`[[!tagsWhere? &input=`[[*tags]]`]]`
]]
Vladimir
16 февраля 2022, 13:27
modx.pro
1
546
0

Фильтрация товаров в категории

Добрый день! Подскажите нашел тут такой сниппет
<?php
if (empty($returnIds)) {
	if (empty($where) || !$where = $modx->fromJSON($where)) {
		$where = array();
	}
	$scriptProperties['where'] = $modx->toJSON($where);
	
	if (empty($innerJoin) || !$innerJoin = $modx->fromJSON($innerJoin)) {
		$innerJoin = array();
	}
	$innerJoin['Category'] = array(
		'class' => 'msCategory',
	);
	
	$scriptProperties['innerJoin'] = $modx->toJSON($innerJoin);
	$scriptProperties['groupby'] = 'Category.id';
	$scriptProperties['select'] = $modx->toJSON(array(
		'Category' => '*',
		'msProduct' => $modx->getSelectColumns('msProduct', 'msProduct', 'product.'),
		'Data' => $modx->getSelectColumns('msProductData', 'Data', 'data.'),
	));
}

return $modx->runSnippet('msProducts', $scriptProperties);
вызываю его так
{$_modx->runSnippet('!mFilter2', [
    	'fastMode' => 0,
    	'element' => 'msProductsCategories',
    	'class' => 'msProduct',
    	'showEmptyFilters' => 1,
    	'limit' => 12,
    	'parents' =>  $_modx->resource.id,
        'tplOuter' => '@FILE chunks/shop/catalog/catalogOuter.tpl',
    	'tpl' => '@FILE chunks/shop/series/card.tpl',
    	'includeThumbs' => 'medium',
    	'filters' => '
ms|price:number,
                    	    msoption|item_2,

    	',
	    'aliases' => '
ms|price==price,
                    	    msoption|item_2==area
	    ',

        'ajaxMode' => 'button',
        'filterOptions' => '{
			"more_tpl": "<div class=\"text-center mb-5\"><button class=\"button btn_more\">Загрузить еще</button></div>"
		}',
		'returnIds' => 0,
		'showLog' => '1'
    ])}
чанк card.tpl
<div class="card__series">
    <div class="card__series-header">{$pagetitle}</div>


    <div class="card__series-body">
        [[!msProducts?
            &parents = `[[+id]]`
            &resources =`[[+product.id]]`
            &includeTVs=``
            &tpl = `productTableTpl`
            &includeTVs=``
            &processTVs=`1`
            &limit = `0`
            &showLog=`1`
            
        ]]

    </div>
</div>
все работает нормально фильтрует категории, но проблема с товарами товары отображает только 1 товар в категории, как можно передать список id продуктов в категории, если убрать &resources =`[[+product.id]]`, то выведет все товары в категории независимо от фильтрации, а с &resources =`[[+product.id]]` выводит только первый товар но уже с фильтрацией.
Михаил Алтухов
15 февраля 2022, 19:13
modx.pro
377
0

Fenom для вывода чанка

Здравствуйте, всем.
Подскажите, пожалуйста, как на феноме будет выглядеть вывод такого чанка:
[[$counter.{$_modx->config.site_name}]]
Такая конструкция не работает:
{include 'counter.{$_modx->config.site_name}'}

Хочу создавать чанки counter.site_name, чтобы хранить в них уникальный код метрики для контекста внутри общего шаблона для нескольких контекстов.
Спасибо!
brioni
15 февраля 2022, 18:46
modx.pro
1 076
0

msProducts не выводит товары с указанными айди, выводит все, как исправить?

$popularProducts в текущем случае только 1о айди, а при этом выводит 3
{'!msProducts' | snippet  : [
    'parents' => '0',
    'inlcudeThumbs' => 'large',
    'resources' => '{$popularProducts}',
    'tpl' => 'popularProductTpl',
]}
Vladimir
15 февраля 2022, 14:35
modx.pro
552
0

Не получается вывести ошибку в хуке ajaxform, как исправить?

Допустим есть код в хуке ajaxform, который по какому-то при знаку должен вернуть ошибку и дальше не будет обрабатываться, а сам снипет в вызове такой же формит, согласно докам это можно сделать так
return $AjaxForm->error('Ошибка отправки слишком большой текст');
но когда я ставлю в свой хук, то вообще не реагирует на это.
{'!AjaxForm' | snippet : [
            'form' => 'modal-form-reviews',
            'snippet' => 'FormIt',
            'hooks' => 'rcv3,customReviews,email',
            'emailSubject' => 'Отзыв с сайта {$_modx->config.site_name}',
            'emailTpl' => 'modalFormEmail',
            'validate' => 'first__name:required,rating:required,message:required,g-recaptcha-response:required',
        ]}
Хук
$review = $hook->getValue('message');  
    if(strlen($review) > 1000){
        return $AjaxForm->error('Ошибка отправки отзыва. Слишком большой текст');
    }
Vladimir
15 февраля 2022, 13:10
modx.pro
566
0

Указан неверный код защиты от спама. Tickets, как исправить?

Заполняю форму пишет что код не правильный а код 4 + 1, я написал 5, вроде правильно, но tickets знает лучше и не отправляет форму, в логах пусто.
Код такой
{'!TicketComments' | snippet : [
    'allowGuest' => '1',
    'autoPublish' => '0',
    'autoPublishGuest' => '0',
    'tplCommentForm' => 'reviewsForm',
    'tplCommentFormGuest' => 'reviewsForm',
    'tplCommentGuest' => 'reviewsGuestComment',
    'tplComments' => 'reviewsWrapper'
]}
Код с формой
<form class="callback__form" id="comment-form">
    <input type="text" name="name" id="comment-name" class="def-input" placeholder="{$_modx->getChunk('translate', ['ru' => 'Как вас зовут?', 'kz' => 'Сіздің атыңыз кім?'])}">
    <div id="comment-preview-placeholder"></div>
    <input type="hidden" name="thread" value="[[+thread]]"/>
    <input type="hidden" name="parent" value="0"/>
    <input type="hidden" name="id" value="0"/>
    <input type="hidden" name="form_key" value="[[+formkey]]">

    <input type="text" name="email" class="def-input" value="[[+email]]" id="comment-email" placeholder="{$_modx->getChunk('translate', ['ru' => 'Почта', 'kz' => 'Пошта'])}">


    <div class="def-input" style="padding-bottom:0;border-bottom:0;">
        <label for="captcha" id="comment-captcha">[[+captcha]]</label>
        <input type="text" name="captcha" value="" id="captcha" class="form-control def-input" style="width:100%;"/>
    </div>
    



    
    <div class="def-input">
        <div class="stars" data-stars="3">
            <svg height="25" width="23" class="star rating" data-rating="1">
                <polygon points="9.9, 1.1, 3.3, 21.78, 19.8, 8.58, 0, 8.58, 16.5, 21.78" style="fill-rule:nonzero;"/>
            </svg>
            <svg height="25" width="23" class="star rating" data-rating="2">
                <polygon points="9.9, 1.1, 3.3, 21.78, 19.8, 8.58, 0, 8.58, 16.5, 21.78" style="fill-rule:nonzero;"/>
            </svg>
            <svg height="25" width="23" class="star rating" data-rating="3">
                <polygon points="9.9, 1.1, 3.3, 21.78, 19.8, 8.58, 0, 8.58, 16.5, 21.78" style="fill-rule:nonzero;"/>
            </svg>
            <svg height="25" width="23" class="star rating" data-rating="4">
                <polygon points="9.9, 1.1, 3.3, 21.78, 19.8, 8.58, 0, 8.58, 16.5, 21.78" style="fill-rule:nonzero;"/>
            </svg>
            <svg height="25" width="23" class="star rating" data-rating="5">
                <polygon points="9.9, 1.1, 3.3, 21.78, 19.8, 8.58, 0, 8.58, 16.5, 21.78" style="fill-rule:nonzero;"/>
            </svg>
            <input type="hidden" name="rating" value="">
        </div>                  
    </div>
    
    <textarea name="message" class="def-input" placeholder="{$_modx->getChunk('translate', ['ru' => 'Оставьте свой комментарий', 'kz' => 'Пікір қалдырыңыз'])}"></textarea>
    
    <input type="hidden" name="pageName" value="{$_modx->resource.pagetitle}">
    <input type="hidden" name="pageUrl" value="{$_modx->config.site_url}{$_modx->resource.uri}">

    
        

    <button class="def-btn" type="submit">
        <span>{$_modx->getChunk('translate', ['ru' => 'Отправить', 'kz' => 'жіберу'])}</span>

    </button>
</form>
Vladimir
15 февраля 2022, 10:02
modx.pro
576
0

AjaxForm без jQuery

Приветствую тебя дорогой читатель. Давно хотел это сделать и наконец-то сделал — теперь для работы AjaxForm не нужен jQuery.

ТЕПЕРЬ ДЛЯ ЭТОГО НУЖНО ПРОСТО ИСПОЛЬЗОВАТЬ SENDIT

Для этого нужно
1. Перейти по ссылке.
2. Заменить содержимое папок core/components/ajaxform и assets/componentns/ajaxform/ данными из репозитория.
3. Заменить код сниппета AjaxForm кодом из репозитория.
Если будут ошибки пишите в комментарии, а под катом немного о нюансах.
Артур Шевченко
14 февраля 2022, 21:53
modx.pro
6
2 621
+14

cityfields + minishop2 не работает добавление товара в корзину

Подключен cityfields. На основном домене добавление товаров в корзину работает. На поддоменах не работает.
Например тут omsk.specstaly.ru/catalog/avtomatnyie-stali/avtomatnyie-plityi/avtomatnyie-plityi-160-mm-a35-gost-19903-74
В чем может быть проблема?
Rootiys
14 февраля 2022, 19:08
modx.pro
733
0