Andrey

Andrey

С нами с 08 августа 2016; Место в рейтинге пользователей: #195

Правильное построение параметров в WHERE

Приветствую!

в общем такое дело, есть такой запрос в Where:
['moder_pub' => 0, 'class_key:=' => 'msProduct',]
Он тип как бы работает, НО мне дополнительно надо, чтобы они проверял и выводил еще ресурсы с классом Ticket.
Делаю такой запрос:
['moder_pub' => 0, 'class_key:=' => 'msProduct','OR:class_key:=' => 'Ticket',]
В общем сложности (не буду приводить весь вывод сниппета, тобы не пугать никого), выглядит так:
{$_modx->runSnippet('!pdoPage', [
        'where' => ['moder_pub' => 0, 'class_key:=' => 'msProduct','OR:class_key:=' => 'Ticket',] | json_encode,
        'showLog' => 1,
])}
В общем как я ни крутил (нашел старые заметки), подставлял обычный вызов без фенома, ни к чему не пришел, прошу помощи, куда копать, шо делать!
Andrey
08 июня 2021, 19:00
modx.pro
193
0

Изменение значения поля после сохранения Товара.

Приветствую сообщество!

Предыстория. На фронте есть форма которая добавляет и сохраняет новые Товары, вот собственно мне нужно, чтобы только у модераторов была возможность ставить галочку нужного мне поля, а если Товар сохраняет кто либо, но НЕ модератор, то сбрасывать поле на 0.
В общем такой вопрос, нужно при сохранении документа сбрасывать (устанавливать) значение одного поля на дефолтное (допустим было 1, надо при сохранении на 0).

Собственно я создал плагин вот такой:
<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnDocFormSave':
        $resource->set('moder_pub', 0);
        break;
}
Да да, тут нет проверки на то, принадлежит ли пользователь группе модераторы или нет, но суть не в этом, я это сделал, только чтобы проверить работает это вообще или нет, ну собственно не работает… При этом не меняет вообще никакое поле, какое бы не ставил.

Вот вопросик, куда копать, как сделать так, чтобы это работало :D

UPD.РЕШЕНИЕ
Не знаю на сколько правильно, НО вот такое решение помогло, спасибо @Евгений Webinmd
<?php
if ($modx->event->name == "OnDocFormSave") {
	if ($modx->user->isMember('Moderator')) return;
    $id = $resource->get('id');
    $res = $modx->getObject('msProduct', $id);
    $res->set('moder_pub', 0); 
    $res->save();
}
Andrey
07 июня 2021, 16:28
modx.pro
1
61
0

Не работает правило section_add_children для добавления Товара в Категорию!

Приветствую сообщество!

Уже не знаю что делать… Может кто сталкивался, подскажет куда копать или объяснит тогда как это работает.
В общем дано:

— Минишоп2
— Категория товаров
— Группа пользователей с привилегией section_add_children
— Группа ресурсов с «данной» категорией товаров
— Сниппет ms2form
Andrey
28 мая 2021, 19:26
modx.pro
1
174
0

Перебор массива при помощи Fenom

Приветствую!

Собственно вопрос следующего характера.
Есть такой массив, допустим, который при помощи обработки выдает это:
id: 1 - count: 2
id: 2 - count: 1
id: 2 - count: 7
Сообственно каждая строка это новый элемент массива. Распасиваю при помощи фенома:
{var $array_test = 'm_dish' | placeholder}

{foreach $array_test as $row}
    id: {$row.id} - count: {$row.count}
{/foreach}
Вопрос следующий. Можно ли как то при помощи Феном перебрать массив так, чтобы все элементы массива, которые имеют одинаковые ID складывали второе поле COUNT и убирали дублирующие записи по полю ID

Т.е. должно получиться из этого:
id: 1 - count: 2
id: 2 - count: 1
id: 2 - count: 7
Это:
id: 1 - count: 2
id: 2 - count: 8
Заранее спасибо за помощь!
Andrey
18 марта 2021, 19:09
modx.pro
163
0

Дать возможность удалять загруженные картинки через ТикетФорм

Приветствую сообщество!

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

Я разобрался как сделать так, что файлы видны всем пользователям, которые перешли на страницу редактирования на фронте, а вот права на удаление чет не работают.

Собственно что происходит. Нажимаю удалить, пишет, что успешно, сохраняю, снова успех, затем перезагружаю страницу и картинка появляется на том месте где и была!

Прошу помощи, заранее спасибо за помощь!
Andrey
05 сентября 2019, 17:35
modx.pro
248
0

Отложенная загрузка или оптимизация mFilter2

Приветствую сообщество!

В общем вопрос такой, сейчас на сайте около 9к ресурсов, фильтруются при помощи mFilter2.

Вся логика простая:
Фильтр вызван на всех страницах, для отдачи результатов фильтра на другую страницу сделано следующее:
'filterOptions' => '{"autoLoad":0}',
а так же:
<form class="filter__form" action="{7 | url}" method="post" id="mse2_filters">
Для снижения нагрузки:
'suggestions' => 0,
Все элементы фильтра вызваны через плейсхолдеры (кроме самих фильтров).

В общем проблема в том, что при загрузке любой странице на сайте (а фильтр вызывается на всех страницах), получается очень долго от 3 до 10 сек. Виновник точно mFilter2.

Собственно вопрос, как оптимизировать его вызов? Или может есть возможность сделать для него ленивую загрузку или что то сделать с кешированием? (пробовал обернуть его в АяксСниппет, но есесна не сработало)

заранее спасибо за помощь!
Andrey
03 сентября 2019, 13:10
modx.pro
527
0

Вывод дочерних ресурсов по полям родителей через mFilter2

Приветствую сообщество!

В общем задача следующего характера, есть:

1. Секция Тикетов с дочками
2. Поля у секции тикетов (тип ТВ поля, допустим два, Город и Район)
3. У дочек есть еще свои поля, тип количество комнат, тип недвижимости и прочая шляпа

Что требуется:
Общий фильтр с полями родителей Город и Район и всеми полями дочек (которые требуются), который результатами фильтрации выдает дочерние ресурсы всех родителей, которые участвуют в фильтре.
Andrey
26 августа 2019, 14:24
modx.pro
279
0

MinifyX ПОСТхук для обработки плейсхолдеров MODX

Приветствую сообщество!

Начал разбираться с более продвинутой версией MinifyX и столкнулся с одной фигней, не могу сформировать ПОСТхук для замены плейсхолдеров MODX.

Например, мне надо в скомпилированном файле скрипта, вот этот плейсхолдер ALIAS, распарсить за менить на текущее поле alias текущего документа, т.е. в теле скрипта он вызванивается так:
url: "assets/main/data/infra-[[+alias]].json"
ПОСТхук из примера выглядит так (ясное дело, что я менял все параметры и вертел вызовом как только мог):
<?php

if ($MinifyX->isJs()) {
    $content = parse($MinifyX->getContent(), ['config' => json_encode(['key'=>$object->getValue(),'user'=>$modx->user->id])]);
    $MinifyX->setContent($content);
}
В результате на выходе должно получиться так:
url: "assets/main/data/infra-index.json"
А получается, что выводит все равно так:
url: "assets/main/data/infra-[[+alias]].json"
Вопрос! Почему и как написать вызов Хука так, чтобы он выполнял свою задачу?
Andrey
19 августа 2019, 14:45
modx.pro
456
0

Вывести три ближайших мероприятия от текущей даты!

Приветствую сообщество!

В общем задача вроде бы не очень сложная.

1. Есть TV поле «Дата»
2. Необходимо:
2.1 Вывод ближайших мероприятий от текущей даты
2.2 Выводить надо только ближайшие три

В общем задача на самом деле стумпорится на моменте построения запроса, через pdoTools. Я не могу задать условие, чтобы выводились только мероприятия позже текущей даты, т.к. конструкция такая:

Опубликованная статья 2019-01-06 18:00:00 > Текущая дата 2019-02-06 14:00:00 > Опубликованная статья 2019-03-06 18:00:00

Вот собственно надо вывести ту, что выделена жирным и только её!
Заранее спасибо за помощь, надеюсь я расписал более менее понятно!

UPD! Решение найдено!
Andrey
25 февраля 2019, 15:48
modx.pro
2
697
0

Постинг в соц сети через RSS или компоненты и API

Приветствую сообщество!

У меня сейчас задача такая и я ищу собственно решение, какой компонент прикрутить:
1. Нужно постить из ТикетФорм
2. В ТикетФорм есть галочки: «Постить в ВК?», «Постить в FB?» и «Постить в Twitter?»
3. Если галочки стоят, то постим!

Как должен выглядеть пост:
Заголовок
*перенос текста*
Описание
*Перенос текста*х2раза
Хештеги
Картинка(которая является ссылкой на статью на сайте)
что то тип такого:

Andrey
05 февраля 2019, 00:12
modx.pro
288
0