Andrey

Andrey

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

pdoCrumbs запоминает только одну страницу в кеше

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

В общем проблема следующая:
— Есть вызов Крошек:
{var $curenturl = $.get.tag ? '<span class="breadcrumbs__link" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
    <a class="g-link" href="{$link}" title="{$menutitle}" itemprop="item">
        <span itemprop="name">{$menutitle}</span>
        <meta itemprop="position" content="{$idx}">
    </a>
</span>
<span class="breadcrumbs__link">'~$.get.tag~'</span>' : '<span class="breadcrumbs__link">{$menutitle}</span>'}
Andrey
10 января 2022, 16:29
modx.pro
505
0

SeoFilter Лезут значения из других таблиц!

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

В общем ситуация следующая:
— Есть ТВ-поле, допустим n_categories
— Есть шаблон с id 7
— Есть раздел новостей с id 14
Andrey
28 июля 2021, 13:56
modx.pro
473
0

Правильное построение параметров в 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
535
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
384
0

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

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

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

— Минишоп2
— Категория товаров
— Группа пользователей с привилегией section_add_children
— Группа ресурсов с «данной» категорией товаров
— Сниппет ms2form
Andrey
28 мая 2021, 19:26
modx.pro
1
499
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
666
0

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

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

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

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

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

Прошу помощи, заранее спасибо за помощь!
Andrey
05 сентября 2019, 17:35
modx.pro
467
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
948
0

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

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

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

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

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