Всего 125 355 комментариев

Антон Тарасов
23 января 2025, 12:29
0
Создайте свой сниппет(выходной модификатор) с исходным кодом и подебажьте, почему не срабатывает:
$hook->setValue('color',json_encode(array('blue','red','green')));
<input type="checkbox" name="color[]" value="red" [[!+fi.color:FormItIsChecked2=`red`]] > red
FormItIsChecked2:
$output = ' ';
if ($input == $options) {
    $output = ' checked="checked"';
}
$input = strpos($input, '"') ? $modx->fromJSON($input) : explode(',', $input);
if (!empty($input) && is_array($input) && in_array($options,$input)) {
  $output = ' checked="checked"';
}
return $output;
Антон Тарасов
23 января 2025, 11:59
0
вероятно есть желание выделить несколько активных позиций, этот вариант предложен в документации: docs.modx.com/3.x/en/extras/formit/formit.tutorials-and-examples/handling-selects,-checkboxes-and-radios#handling-checkboxes-and-multiple-selects-in-a-custom-hook Вместо
$hook->setValue('color',json_encode(array('blue','red','green')))
@vit Попробуйте явно указать двойные кавычки так:
$hook->setValue('color',json_encode(array("blue","red","green")))
т.к. код выходного фильтра нынче выглядит так:
$output = ' ';
if ($input == $options) {
    $output = ' checked="checked"';
}
$input = strpos($input, '"') ? $modx->fromJSON($input) : explode(',', $input);
if (!empty($input) && is_array($input) && in_array($options,$input)) {
  $output = ' checked="checked"';
}
P.S. хотя нет. сработать должен и в вашем случае после json_encode…
ВитОс
23 января 2025, 11:51
0
в документации так написано
Обработка чекбоксов и мульти-селектора в пользовательском хуке
Если вы хотите установить поле массива (т.е. группу флажков с тем же именем или мульти-селектор) в preHook, вам нужно применить json_encode для значения массива.
$hook->setValue('hobbies',json_encode(array('music','films','books')));
или я не так понял?
как их заполнить?
Наумов Алексей
23 января 2025, 09:05
0
А в чем смысл и задумка
$hook->setValue('color',json_encode(array('blue','red','green')));
?
Денис Усманов
23 января 2025, 00:28
0
Я уже доделываю mspWebPay) в течение нескольких часов выкачу «обновление», защиту уже убрал.
W.H.I.T.E
23 января 2025, 00:26
0
Молодец, Денис. Обрати внимание на другие платежки. Они тоже популярны в РБ и не обновлялись.
Prihod
22 января 2025, 21:03
0
Новую версию 2.0.6-pl с правкой залил
Max
Max
22 января 2025, 20:55
0
Спасибо, дружище! Всю голову сломал, emailsender доменную почту засунул, все сработало!
Максим
22 января 2025, 20:10
+1
Шортсы с Рутуба не парсятся, чтобы всё работало, нужно в провайдере в регулярку добавить:
[http|https]+:\/\/(?:www\.|)rutube\.ru\/[video|tracks|shorts]+\/([a-zA-Z0-9_\-]+)

Добавьте, пожалуйста, это в компонент в следующем обновлении.
Денис Усманов
22 января 2025, 14:59
0
Создать отдельную группу ресурсов под нужный ресурс и дать доступ пользователю только к этой группе ресурсов.
Денис Усманов
22 января 2025, 13:44
+1
Ещё, как вариант в первую очередь, связаться с автором того или иного компонента с просьбой обновить. Да и может быть так, что на github у автора уже есть почти готовая версия под modx 3.
Денис Усманов
22 января 2025, 13:38
0
Готового плагина или компонента нет, придётся писать самому.

Опишу теорию:
1. У пользователей используешь какое ни будь поле или делаешь новое, числовое. Какое дефолтное значение на твоё усмотрение.
2. Тем же Minishop2 создаёшь товары — пакеты с кол-ом комментариев, там например в артикул пишешь размер пакетов, типа 5/10/20/50…
3. После покупки пользователями того или иного пакета/пакетов, плагином по смене статуса заказа на «Оплачен», берёшь из заказа покупателя (id пользователя), товары (их артикулы по их id), суммируешь купленное количество комментариев (артикулы товаров) и записываешь в поле пользователя (опять же по id пользователя).
4. Форму создания комментариев выводишь по простому условию проверки поля пользователя, если >0 — показываем форму…

Итого: Всего 1 самописный плагин, с этим обращайся к спецам из сообщества, или пробуй сам с помощью ИИ (мой совет: deepseek.com)
Наумов Алексей
22 января 2025, 09:46
+4
Взять и переписать их. Ну или денег заплатить тому, кто перепишет.
W.H.I.T.E
22 января 2025, 02:07
0
Да, реально.
$title = preg_replace('![^'.preg_quote($separator).'\.\pL\pN\s]+!u', '', $this->lower($title));
Работает как решение
Prihod
21 января 2025, 22:03
0
Буден новый платный пакет
Евгений
21 января 2025, 21:39
0
Будет ли обновление для MODX3?
Николай Артамонов
21 января 2025, 13:48
0
Финальная версия.

Прошлая давала ошибку при создании нового документа. Добавил проверку есть ли id.

@EVAL

if(! empty( $modx->resource->get('id') ) )  {

$id = $modx->resource->get('id');
$parent = $modx->resource->get('parent');
$parentResource = $modx->getObject('modResource', $id);
$grandfResource = $modx->getObject('modResource', $parent);

$parentId = $parentResource->get('parent');
$grandfId = $grandfResource->get('parent');

$pg = "$grandfId,$parentId";

return $modx->runSnippet('pdoResources',array('parents' => $pg,'depth'=>0,'limit'=>0,'where'=>'{"template:=":47}','sortby'=>'pagetitle','sortdir'=>'ASC','tpl'=>'@INLINE [[#[[+parent]].pagetitle]] > [[+pagetitle]]==[[+id]]','outputSeparator'=>'||'));

}
Николай Артамонов
21 января 2025, 09:24
0
Решил так:

@EVAL

$id = $modx->resource->get('id');
$parent = $modx->resource->get('parent');

$parentResource = $modx->getObject('modResource', $id);
$grandfResource = $modx->getObject('modResource', $parent);

$parentId = $parentResource->get('parent');
$grandfId = $grandfResource->get('parent');

$pg = "$grandfId,$parentId";

return $modx->runSnippet('pdoResources',array('parents' => $pg,'depth'=>0,'limit'=>0,'where'=>'{"template:=":47}','tpl'=>'@INLINE [[#[[+parent]].pagetitle]] > [[+pagetitle]]==[[+id]]','outputSeparator'=>'||'));
Вдруг кому-то понадобится.

Проблема видимо в том, что конструкции типа [[+parent]],[[#[[+parent]].parent]] обрабатываются только в шаблонах.