Удобная работа с параметрами из URL и MODX. Я изобрёл велосипед?

Предыстория
Сидел себе спокойно, ни о чём подобном даже не думал… может быть показанное ниже тоже кого-то на что-то натолкнёт?
Брат у меня — творческая личность…

Показал как-то собственноручно созданный квест и спросил — можно ли такое сделать на чистом HTML (ну и показал первую страницу, сделанную на Construct)?

Что такое игра-квест (книга-игра, книга-квест)?

Открываете первую страницу. В конце — варианты перехода с указанием номера новой страницы, которую нужно открыть при наличии заклинаний или предметов… повторить до перехода на новую страницу.
Начиная новую игру, Вы, по сути, «читаете» новую книгу, с новыми сюжетными и поворотами и неожиданными приключениями.
В детстве у меня были книги Браславского, если что — погуглите :)

Ведь что такое переходы в странице? Это же ссылки на новые страницы, т.е. игра — обычный сайт с нужным набором страниц!
Но одно дело — просто переходить по ссылкам, а другое — обрабатывать наличие предметов и заклинаний, и предлагать их по необходимости и наличию.
Игорь
05 июля 2022, 15:03
modx.pro
1 014
0

Как создать скидку для товаров с опред брендом в msDiscount ?

Есть список брендов, бред указан в опциях товара, как сделать именно для них скидку через msDiscount?

Код ниже уже готовый, вопрос решён. Нужно будет вам создать ваши бренды в группе ресурсов обязательно указать все контексты, затем записать их в словарь как ниже, и всё это запустить в пакете под названием «Консоль»

При условии что у вас бренд как у меня находится в опции товара, если нет то код ниже нужно будет переделать а именно первую часть с поиском опции.

<?php

$brensList = array('NOMAD','Dominator','АкТех','Kainar');

$q=$modx->newQuery('msProductOption', array('key:=' => 'brand', 'value:IN' => $brensList));

$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);

$brendsGroups = array(
    'NOMAD' => 79,
    'Dominator' => 80,
    'АкТех' => 81,
    'Kainar' => 82
);

$productWithoutGroup = 103; // Айди группы ресурсов что нет в списке выше.

foreach ($res as $k => $v) {

    $currentProductBrand = $v['msProductOption_value'];
    $docId = $v['msProductOption_product_id'];
    $newGroup = $brendsGroups[$currentProductBrand];
    if(!$newGroup){
        $newGroup = $productWithoutGroup;
    }
    $resource = $modx->getObject('modResource', $docId);
    if($resource){
        if(!$resource->isMember($newGroup)){
            $resource->joinGroup($newGroup);
        }
    }    

}
Vladimir
04 июля 2022, 13:57
modx.pro
871
0

Tickets error (500)

Добрый день!
Подскажите, может кто-то уже сталкивался с таким, при создании тикета в разделе (не раздел), происходит зависание и сам тикет не создается. В консоле браузера
Failed to load resource: the server responded with a status of 500


Подскажите что это за чудо и как его вылечить?
Junior
03 июля 2022, 12:22
modx.pro
558
0

Ошибка при создании нового шаблона An error occurred...Шаблон не указан

Всем привет, столкнулся с ошибкой, вдруг на пустом месте, при создании нового шаблона, он не появляется в списке, но при поиске, в форме, шаблон в списке есть, но при попытке его открытия пишет: An error occurred… Шаблон не указан. Фигня какая-то…
Кто сможет сориентировать, с чем это связано? Заранее спасибо!

Скриншот: prnt.sc/CEfEOsiUX0T_
Константин
01 июля 2022, 13:50
modx.pro
460
0

Tickets вывод ресурсов пользователя

Добрый!
Подскажите как увеличить limit вывода ресурсов больше 10. Не выводит ресурсы пользователя больше 10, меньше работает, больше нет, как увеличить? Спасибо
Вывожу стандартно
[[!TicketLatest? &limit=`25` &user=`1` &fastMode=`1` &action=`tickets` &tpl=`tpl.Tickets.ticket.latest`]]
Александр Сенькин
01 июля 2022, 09:49
modx.pro
447
0

Очень глупый вопрос. А как вы используете синтаксис vue на страницах с fenom?

Хочу использовать на странице vue, но его синтаксис конфликтует с fenom.
Тоесть попытка сделать банальный
<div v-for="car in park">{{car.id}}</div>
убивает страницу из-за {{

Наверняка ведь я не первый столкнулся?
Про то что vue умеет в файловые компоненты и что это наверное решит проблему — знаю, но конкретно здесь не применимо, на хостинге нет node как таковой и не поставить.
Подключил vue самым банальным образом через cdn
Александр Мельник
30 июня 2022, 17:42
modx.pro
1 300
0

Как получить значение из массива, установленного в плейсхолдер через fenom?

Есть плейсхолдер, который был установлен таким образом:
$modx->toPlaceholders(array(
    'cityList' => $cityList,
    'contactsArray' => $contactsArray,
));
Раньше значение address из массива contactsArrray получали через стандартный синтаксис modx как [[+contactsArray.address]] Как сделать то же самое, но через fenom?
Просто {$contactsArray.address} не работает.
Giant Dad
30 июня 2022, 16:40
modx.pro
644
0

PdoResources внутри MIGX в админке

Добрый день! Задачка выглядит так:
1) Есть родитель, внутри которого дети – доктора медцентра
2) Есть другой родитель, его дети – категории услуг медцентра
3) В ресурсе категории (например «Обследования») — MIGX, где при редактировании вкладки выбираем докторов из Родителя №1, а в таблице в колонке — вывод ФИО этих докторов по id-шникам выбранных во вкладке специалистов.
Делаю такой чанк, который вывожу в поле через this.renderChunk:
[[pdoResources?
    &parents = `2`
    &resources = `
    [[getImageList?
        &tvname=`serviceList_MIGX`
        &tpl=`@CODE: [[+doctors]]`
    ]]` 
    &tpl = `@CODE: [[+pagetitle]]</br>`
]]
Получаю какой-то винигрет.
Проблема в том, что в плейсхолдере [[+doctors]] выводятся сначала через запятую id выбранных в этой строчке докторов, а потом через пробел id всех остальных докторов из столбца.

Серый
30 июня 2022, 13:49
modx.pro
468
0

Не могу получить значение placeholder. Тонкости работы парсера?

Уверен, вы мне подскажите, потому что я наверное один не понимаю всех этих тонкостей и нюансов работы различных парсеров и выставления плэйсхолдеров.
В чем проблема.
Есть шаблон, создан как статичный документ.
Вот на скрине его содержимое.

В нем вызывается сниппет (на скрине отображены сразу все варианты вызова, но конечно же я запускал их по одному)
в этом сниппете выставляется плэйсхолдер.
Смотрите скрин.

А ниже в шаблоне я пытаюсь значение получить (там тоже много вариантов написано, но я применял их по одному конечно)
Данные могу получить только через стандартный шаблонизатор, а очень хочется работать с этим плэйсхолдером через fenom, поскольку в коде будет много проверок, условий на наличие тех или иных настроек и хочется использовать ifы foreachи и прочие прелести фенома.

Есть идеи как получить плэйсхолдер в переменную fenom?
Спасибо.
Александр Мельник
30 июня 2022, 11:55
modx.pro
1 332
0

pdoResources группировка по TV

Недавно столкнулся с задачкой.
Есть ресурсы списком, но категория указывается в TV (tvName), на страницы нужно вывести (список категорий), хотел уже написать сниппет с группировкой кастомный, полез pdoResources и посмотрел как там прописываются алиасы в итоге увидел что к TV прописывается алиас TV.

Вот мое решение, может кому пригодится:
TV + tvName +.value

[[!pdoResources?
 &parents=`2773`
 &tpl=`media_item`
 &prepareTVs=`1`
 &includeTVs=`tvName`
 &groupby=`TVtvName.value`
]]
На выводе получается (у меня) 4 категории (скрин)


vectorserver
30 июня 2022, 09:34
modx.pro
2
989
+1