Андрей Степаненко
С нами с 28 октября 2014; Место в рейтинге пользователей: #75 часов назад
вот этот сниппет
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService...
Проблемы с отправкой писем статус заказа из minishop2 5
Вчера в 20:15
Хотел проверить еще раз, теперь все работает. Спасибо.
MiniShop3 1.0.0-alpha.4 — Большое обновление админки 24
05 января 2026, 14:53
Тоже не понял зачем эти сложности, всегда этот скрипт юзал.
Почему в новых версиях MODX не работает сброс пароля через MD5 и как восстановить доступ в manager 4
30 декабря 2025, 22:52
Почему-то прочитал это голосом комментатора из Дома 2… Только про Minishop 3!) Спасибо всем за вклад в развитие и, достаточно неплохие итоги года)
Итоги 2025 года на MODX.pro 3
27 декабря 2025, 16:41
MODX, как и любой основанный на PHP фреймворк пишет 500 ошибки в error_log. Никаких специальных настроек в нем нет. Все зависит от настроек хостинга\с...
Отладка 500 ошибки MODX 1
26 декабря 2025, 18:00
ух ты крутяк!
resComments — многоуровневые комментарии с пагинацией для ресурсов MODX3 2
24 декабря 2025, 22:11
Есть поле mail_smtp_user введи туда логин, если не сработает введи email. И не забудь в emailsender корректный email прописать.
Modx 2.8.8 еще подходит отправки почты через smtp.yandex.ru? 3
24 декабря 2025, 00:23
Нет, лайки всегда были привязаны ко времени публикации, чтобы лайками старых постов рейтинг не накручивали.
MiniShop3 - новый релиз. 1.0.0-alpha.2 15
prnt.sc/rl5gmk
Там обычная проверка файла идет file_exits.
github.com/webnitros/siteDev/blob/103270a49c69539d934bafc4ff9f9891dde7a684/core/components/sitedev/Extras/modExtra/_build/build.php#L828
github.com/webnitros/modMySettings/blob/1152ca4862613fc0a37bcb3cdbea8fb2e268ab62/_build/build.transport.php#L163
Вообще вот здесь все происходит
prnt.sc/ri8x24
core/xpdo/transport/xpdovehicle.class.php 187 строка
github.com/webnitros/siteDev/tree/master/core/components/sitedev/Extras/modExtra
Еще считаю полезно прицепить вот такие кнопки
А то вспоминать откуда у тебя компонента скачивается, постоянное мучение.
Ссылка на то как кнопки добавить:
https://github.com/webnitros/siteDev/blob/103270a49c69539d934bafc4ff9f9891dde7a684/core/components/sitedev/Extras/modExtra/core/components/modextra/controllers/home.class.php#L91
Можно конечно в какой нибудь плагин завернуть, но я не стал заморачиваться, добавил их в контроллер с проверкой на существования папки Extras/myComponent, в случае если папка существует то кнопки показываются
Здесь все есть:
https://github.com/webnitros/modMySettings/blob/master/_build/setup.options.php
Еще момент: при удалении компонента, резолверы удаляют и папку с шаблоном. То есть все что положиться в core/elements/ будет уделено
Хотя последнее время, прихожу к идее, что любые массовые операции нужно фиксировать в таблице. После чего из нее получать к примеру последние 30 записей и производить массовые операции.
В этом плане и лог не нужен будет.
Получаем 30 записей отправляем их на exec_bg_script.
Ждем пока у этих 30 записей поставиться метка: завершено.
После чего получаем следующие 30 и продолжаем дальше.
Пока из обработки не уйдут все записи во временной таблице.
Так всегда можно отследить когда был запуск и завершение.
В общем нужна очередь, и какой то цикл который будет перезапускать всю эту процедуру.
Через ajax посылать все запросы разом к примеру в 1000 запросов, и не ждать ответа. Что то типо через цикл запустить.
Понятно что на 1000 ресурсов можно использовать. А если обновляется 100к ресурсов, Получается ответ не получен!
Очередь таких заданий забьет память и процессор.
Просто думаю как это встроить к примеру в msPre так как достаточно долго обновляется даже те же 2000 ресурсов при объеме в 100к.
Точней даже понимаю что это работать будет только, в безконтрольном режиме. И это проблема.
Ноооооо если мы используем getCollection) То innerJoin не позволит сделать select!
Так что скорость ощутим упадет))
Кстати, твой код, исключает getCollection. О чем я писал когда говорил о IN.
Так что если по играть, с кодом, то явно увидишь разницу.
return $objectCount;
}
в $objectCount запишется 0
Приходилось встречаться что в итоге 0 это тоже true, скорей всего это в старом каком то php
по этому лучше так
А теперь тоже самое только к примеру с получением pagetitle и price)
Вот тут явно увидите разницу
getCollection — дергает все поля как с site_content так и c ms2_products
Как он может быть быстрее даже с этого ракурса?
Обращение к msProduct?
Актуальность в одну минут, вообще не принципиально)))
Для таких запросов проще временную таблицу сделать куда будут данные сливаться на бэкенде, и потом уже готовые данные забирать на фронте.
Такими запросами, только фронт напрягать.
Почему то всегда охота все в один запрос запихать, но по опыту еще больше времени тратишь на всякие такие выборки.
Еще как вариант делать несколько запросов и получать id которые уже потом идут where в виде product_id IN (тут список id из какой то таблицы)
На примере получения товаров:
Этот код будет делать выборку в десятки раз быстрее:
Чем
join — зло еще то))