Фильтр mFilter по TV полю типа чекбокс

Хочу создать фильтрацию по TV полю типа чекбокс. Записать сразу несколько параметров через разделитель, вместо создания для каждого параметра отдельного поля. Сейчас у меня есть параметры типа Радио в них параметры выставлены так: Есть==1||Нет==2. Они выводятся чекбоксом. Как мне сделать такие же чекбоксы для параметров из TV поля чекбокс?
Miša Bulic
09 декабря 2021, 10:32
modx.pro
1
1 052
0

Зависимые поля в MIGX

Добрый день. Подскажите а есть возможность в migx делать зависимость полей. К примеру у меня 2 поля:
1) Продукты типа listbox с Input Option Values:
@SELECT CONCAT(pagetitle,' - ',id), id FROM modx_site_content WHERE template=6 AND deleted=0
2) Модификации типа listbox с Input Option Values:
@SELECT CONCAT(name,' - ',id), id FROM modx_msop_modifications WHERE active=1 AND rid=[[+id]]
То есть опции модификации зависят напрямую от выбранного продукта?
Евгений Лазарев
08 декабря 2021, 18:59
modx.pro
920
0

pdoMenu выборка с двухуровневого списка не оборачивается в flex box со стилем.

Добрый день!
Формирую пункты меню вот с этих ресурсов:

{if $_modx->resource.materials[0] == 1}
			        {if $_modx->resource.materialtype[0] == 'Кровати'}
                                    <div class="mb-3 color-black small-text">Выберите материал и цвет</div>
                                    <div class="tabs product-materials mb-2">
                                        <div class="tabs-caption d-flex flex-wrap">
                                            <div class="tabs-caption d-flex flex-wrap">
                                                {'pdoMenu' | snippet : [
                                                    'parents' => 414
                                                    'level' => 1
                                                    'sortby' => 'menuindex'
                                                    'tpl' => '@INLINE 
                                                        <div class="tabs-caption__item{if $idx == 1} active{/if}">
                                                            <div class="material-title">{$pagetitle}</div>
                                                            {if $introtext}<span class="material-click">?</span>
                                                            <div class="material-desc">{$introtext}</div>{/if}
                                                        </div>
                                                    '
                                                    'tplOuter' => '@INLINE {$wrapper}'
                                                ]}                    
                                            </div>
                                        </div>
                                        <div class="tabs-content">
                                            {'pdoMenu' | snippet : [
                                                'parents' => 414
                                                'level' => 2
                                                'sortby' => 'menuindex'
                                                'includeTVs' => 'img'
                                                'tvPrefix' => ''
                                                'tpl' => 'tplMaterialImg'
                                                'tplOuter' => '@INLINE {$wrapper}'
                                            ]}  
                                        </div>
                                    </div>
                                    <div class="mb-5"><a class="link-underline color-brown" href="{912 | url}">Заказать образцы 
 тканей домой</a></div>
{/if}
{/if}
Когда тип материала == 'Кровати' то меню генерируется норм по шаблону tplMaterialImg (см. код ниже)

tplMaterialImg
{if $parent != 414}
                                                        {foreach json_decode($_modx->resource.photos) as $item}
                                                            {if $item.material == $pagetitle}
                                                                {var $photo = $item.photo}
                                                            {/if}
                                                        {/foreach}
                                                        
                                                        <label class="product-material">
                                                            <input class="d-none" type="radio" name="options[mat]" value="{$pagetitle}" {if $id == 418}checked{/if} data-cat="{$parent}" data-img="{$photo}">
                                                            <div class="product-material__img"><img class="d-block lazy" src="assets/template/img/default.jpg" data-src="{$img | phpthumbon : 'w=114&h=114&zc=1&q=95'}" alt=""></div>
                                                            <div class="product-material__color">{$pagetitle}</div>
                                                        </label>
                                                    {else}                                        
                                                        <div class="tabs-content__item{if $idx == 1} active{/if}">
                                                            <div class="d-flex flex-wrap">
                                                                {$wrapper}
                                                            </div>
                                                        </div>
{/if}
Мне нужно вывести для конкретного родительского ресурса картинки материалов потомков:
0verride
08 декабря 2021, 11:58
modx.pro
510
0

Как в mFilter2 сортировать товары по возрастанию цены?

Товары выводятся через mFilter2. При загрузке страницы товары отсортированы по возрастанию цены и товары с ценой = 0 в конце, тут всё хорошо.
'sortby'=>'{"Data.price=0,Data.price":"ASC"}'
Но если начать переключать сортировку
<a href="#" data-sort="ms|price" data-dir="{$mse2_sort == 'ms|price:desc' ? 'desc' : ''}" data-default="desc" class="sort">{'mse2_sort_price' | lexicon}</a>
то товары с ценой 0 всё равно появляются в начале. Как можно сделать так, чтобы товары с ценой 0 всегда были в конце списка?
Вася
08 декабря 2021, 09:54
modx.pro
1
1 042
0

xLike - вывод ресурсов, которым пользователь ставил лайк

Всем привет, решил реализовать систему лайков при помощи компонента xLike
Однако столкнулся с проблемой
Как вывести список ресурсов, которым ставил лайки в личном кабинете?

Возможно кто-либо сталкивался?
Прошу помощи

Буду благодарен
Андрей
07 декабря 2021, 11:48
modx.pro
814
0

Как запомнить пользователя, если он заполнил и отправил все формы?

Всем привет.

На сайте необходимо реализовать 3 формы, которые пользователь должен в течение 1 года отправить.

1 форма (FormIt) — 1 страница (ресурс). Как вывести чанк «Спасибо, вы уже заполняли эту форму 06.12.2021.», если пользователь уже заполнял эту форму?

По какому критерию запоминать, что форма уже была отправлена?

Пока в голову приходит что-то вроде такой схемы:
1. Хранить все формы с помощью сниппета FormIt2db
2. В каждой форме добавить 3 скрытых инпута: ID формы (тут можно вручную прописать), ID залогиненого пользователя ({$_modx->user.id}), текущая дата в UNIX формате ({time()}). Все отправленные формы сохраняем в отдельной таблице.
3. Разработать сниппет, который перед выводом форм будет проверять в базе наличие ID формы + ID пользователя НЕ пусто, то показываем чанк с сообщением.

Я правильно думаю или заморочено?

Буду рад рекомендациям.
Anton
06 декабря 2021, 16:47
modx.pro
695
0

Сворачивается дерево ресурсов

Уважаемые Друзья.
На одном из проектов после каждого редактирования сворачивается дерево ресурсов. Очень неудобно каждый раз открывать заново. Как исправить? Заранее благодарю!
ariadnadesign
05 декабря 2021, 11:58
modx.pro
534
0

плагин для обработки события в xparser

есть такой пакет вредный xparser
есть к нему примеры плагинов, например такой

$sp = &$scriptProperties;
switch ($modx->event->name) {
    case 'xParserOnBeforeTaskActions':
        foreach ($sp['rows'] as &$row) {
            $resource = &$row['Resource'];
            // Если код ответа 301, 302, 404
            if (in_array($row['Request']['http_code'], array(301, 302, 404))) {
                $resource['published'] = 0; // присвоим ресурсу published = 0
            }
        }
        unset($resource, $row);
        $modx->event->returnedValues = $sp; // передаём измененённые значения обратно
        break;
}
и он просто подвешивает парсинг

но суть не в этом, нужно сделать так чтобы он проводил проверку на пустые поля контента и одного tv поля и после отменял публикацию

чтото типа
if(empty($resource->get('content')) && empty($resource->getTVValue('video')){
            $resource->set('published', 0);
        }
может кто понимает в чем дело?
Евгений
04 декабря 2021, 12:23
modx.pro
448
0

Вывод одновременно категорий и списка товаров по ним

Здравствуйте!
Как вывести список всех товаров — знаю.
Как вывести список всех категорий — тоже.
Не понимаю, как вывести на одной странице и категории и товары в них, вида:

Категория 1
Товар1
Товар2
Товар3
Категория 2
Товар4
Товар5
Товар6
Категория 3
Товар1
Товар4

В Категория 3 — товары Товар1 и Товар4 — ранее присутствовали в других категориях.
Как я понимаю, нужно сделать SQL-запрос с выборкой по двум таблицам — Категории и Товары.
Большая просьба подсказать КУДА КОПАТЬ.

P.S.
Пример на странице bezumkin.ru/sections/tips_and_tricks/2058/ не работает
Игорь
03 декабря 2021, 21:36
modx.pro
703
0

Подтверждение ожидания перехода по внешней ссылке

Всем привет!

Нашел вот такое решение для подтверждения перехода по внешней ссылке на MODX Evo.

На MODX Revo вероятнее всего работать не будет

Есть ли у кого такое решение под Revolution?
Андрей
03 декабря 2021, 20:41
modx.pro
718
0