Сегодня в 13:08
нет переводов primeVue. То есть если использовать фильтры DataTable или Calendar, то они будут англискими.Вот про это я не подумал. Думаю учтем в буду...
VueTools - универсальный компонент оформления админки в MODX 3 4
08 января 2026, 12:31
Большие сомнения у меня в этом)
resComments — многоуровневые комментарии с пагинацией для ресурсов MODX3 3
07 января 2026, 15:36
вот этот сниппет
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService...
Проблемы с отправкой писем статус заказа из minishop2 5
06 января 2026, 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
24 декабря 2025, 22:11
Есть поле mail_smtp_user введи туда логин, если не сработает введи email. И не забудь в emailsender корректный email прописать.
Modx 2.8.8 еще подходит отправки почты через smtp.yandex.ru? 3
А дальше запустить любым удобным для вас способом процедуру восстановления пароля — начиная от вызова процессоров модкса и заканчивая подключением сниппета Login/Office.
На мой взгляд, гораздо большие проблемы сулят причины, из-за которых не получилось восстановить пароль предыдущими способами — возможно последний программист сильно постарался, чтобы модкс не работал так, как нужно.
— плагина на событие оформления заказа (msOnBeforeCreateOrder)
или
— при помощи дефолтных модкс-модификаторов от цены [[!+price]] (спрятать кнопку отправки и вывести алерт о минимальной цене)
и/или
— при помощи jquery на событие submit формы (вывести уведомление, к примеру встроенным jgrowl-скриптом).
— попробуйте отправить письмо при помощи QuickEmail. Если письмо отправится — проблема с Formlt/AjaxForm.
— если письма не отправляются из-за хостера, вы можете настроить smtp
Если форма в принципе не отправляется, то вы, скорее всего, вашими «декоративными» правками удалили id или class по которому AjaxForm отправлял данные или возвращал ответ.
В него можно подгрузить первую миниатюру, воспользовавшись персональным параметром &includeThumbs, а можно заджоинить изображение по аналогии с ms2gallery (загружаете модель в loadModels, прописываете нужные джоины (только заместо modResource — msProduct) и цепляете их в Select, указывая желаемые плейсхолдеры).
Гораздо выгоднее было бы заджоинить желаемую таблицу изображений, а внутри чанка уже дописать условие, что если превью №2 пустое — выводить первое.
2. На этапе оформления заказа покупатель вводит промо-код друга в соответствующее поле (которое нужно добавить).
3. Создаем плагин на событие msOnCreateOrder, который проверяет введен ли промо-код, есть ли он в базе действующих кодов и тд и тп. Если все ок — то пополняете счет обоим пользователям (в случае с msProfile есть специальный сниппет).
Из нюансов — нужно учитывать, что при оформлении заказа пользователь может быть как уже авторизован, так и только зарегистрироваться после оформления заказа, но это уже лирика..)
— в вызове сниппета msGallery заполняем параметры &tplOuter, &tplRow и &tplSingle. В сингле все по дефолту, в tplOuter примерно с такой конструкцией:
и &tplRow (для примера оставим дефолтный):
Теперь, при помощи jquery реализуем оставшиеся действия:
Последовательность примерно такая:
— в чанке для вызове списка товаров добавляем кнопку «предпросмотр товара» с уникальным классом (допустим, ajax-minishop-item) и любым параметром, содержащим id-товара (data-id).
— при помощи jquery вешаем на событие клика ссылки с классом ajax-minishop-item отправку данных аяксом на эту же страницу, которая передает id-товара
— пишем сниппет по гайду выше и вызываем его на этой странице. В сниппете, при получении нужного аякс-запроса, ищем среди ресурсов подходящий по Id товар. Если находим — возвращаем результат.
— если результат есть, jquery возвращает его в желаемую область (допустим, в popup окно, которое там же и вызывается).
+ навешиваем всевозможные алерты на события, если ресурс не найден и другие «альтернативные» варианты ответов.
Или можете воспользоваться параметром &toSeparatePlaceholders и с помощью дефолтных модификаторов модкса в чанке-обертке расписать желаемую логику.
Или в чанке-обертке можете не указывать путь до основной картинки, а уже при помощи jquery смотреть количество загруженных изображений в DOM'e и вставлять желаемую картинку в область «основной».
Особенно интересно было услышать концепцию и цели в развитии и расширении влияния MODX'a. На фоне этого возникла мысль (которая наверняка приходила далеко не только мне):
Думаю, 95% разработчиков не один раз сталкивались с вопросами клиента из рубрики «зачем мне MODX?».
В ход начинают идти убеждения в том, что MODX в состоянии реализовать любую хотелку и технические разъяснения преимуществ, которые клиент воспринимает в пол уха, и в итоге все сводится к забрасывания клиента перечнем сайтов на MODX'e, где уже реализованы все его требования. (которых может и не быть, если программист недавно перешел на modx, у заказчика довольно экзотические требования ну или любая другая причина, не суть)
В связи с этим, может, стоит реализовать подобный функционал на modx.pro? Конечно, не секрет, что сайтов «сообщества MODX» далеко не так мало (и их число продолжает расти) и у нас уже есть примеры (1, 2) реализации такого функционала, но, на мой взгляд, они получились не слишком презентабельными, да и приходится метаться между разными сайтами, а мы, все-таки, аудитория modx.pro.
И даже c учетом того, что у тех же 95% есть свои сайты/страницы со списком портфолио, было бы просто интересно посмотреть на то, что реализуют другие разработчики.
Остается только вопрос «технической безопасности» для сайта, где не слишком приветствуется рассекречивания системы управления, но, думаю, что это не критичный фактор.
— задаете пользователю/группе пользователей настройку tree_root_id
(пользователи/группы пользователей -> редактировать -> закладка «Настройка»)
ИЛИ
— создаете контекст и назначаете менеджеру определенные права доступа для данного контекста, после чего назначаете контексту перечень доступных для менеджера ресурсов /?a=context
ИЛИ
— создаете группу ресурсов (запрещено для менеджера) и отключаете менеджера от не желаемых ресурсов /?a=security/resourcegroup
ИЛИ
— пишите плагин, срабатывающий в контексте mgr на событие OnManagerPageBeforeRender, который при создании/изменении ресурса будет выдавать алерт или редиректить при попытке не желаемого проникновения
…
И далее кастомизируете оформление, пряча не желаемые к просмотру/редактирования поля через настройку форм ?a=security/forms
Возможно, у вас указан &fastMode=`1`, в результате чего фильтры просто не применяются?
Например:
web (опции контекста)
— news_container = 1
— gallery_container = 7
— …
system
— news_container = 28
— gallery_container = 47
— …
И в вызове сниппета просто вызывать соответствующий ключ:
Услуга = раздел (коллекция)
Улица = ресурс (вложенное)
Дом = запись в списке MGIX / своем компоненте для списка. Если нужно также генерировать ссылку/отображать информацию по конкретному дому, то дописать кастомную маршрутизацию.
В чанке (баннера) вызываем сниппет, который будет записывать в сессию idx баннера:
А в вызове BannerY допишем параметр &offset=`[[!getBannerPosition]]`, чтобы отображать еще не просмотренный баннер.
Можно также расширить сниппет, чтобы при $_SESSION['lastviewed'] == [[+banner.total]] — сбрасывать значение сессии, но, думаю, с этим уже проблем не возникнет.
Суть в том, что ресурс (страница) может быть определенного класса, в зависимости от которого выполняется последующая логика. И тут он может быть или тикетом, или разделом, или товаром — но никак не несколькими сразу.
Рейтинги к товару можно подцепить через дополнение VoteForms, комментарии — через стандартный функционал тикетсов. Короче говоря, сразу из коробки — не получится.
Надеюсь, 2016 год принесет нам и MODX 3. =)