Александр Наумов
С нами с 15 декабря 2012; Место в рейтинге пользователей: #178- Заметки 158
- Комментарии 34
22 мая 2026, 21:53
Разумно. Все поля подряд не хочу добавлять в чанк. Практика показывает, что полей очень много, содержимое может быть объемным и появление подсказок мо...
mSearch - обновление до версии 1.3.0. 2
22 мая 2026, 18:30
Это changelog разросся. Не помещается в базе данных mariaDB (mysql почему то съедает и не морщится) Выпустил Версию. 1.11.1 с решением этой проблемы.
MiniShop3 1.11.0 8
22 мая 2026, 09:51
Твой бот стримит всё что происходит в терминале? И умеет выполнять слэш команды для агентов типа /status /btw? А ещё нет ли проблемы разрастания входя...
[aiAssist] Я же просто попросил его создать магазин, а он СДЕЛАЛ ЭТО! 16
19 мая 2026, 04:04
Сделал новую версию с табами и возможностью запуска сразу для всех вариантов.
Сначала содержимое для технического ресурса откуда будет запускаться вы...
VersionX переполнил базу данных 8
18 мая 2026, 13:46
Исправление уже готово github.com/modx-pro/MiniShop3/pull/271
MiniShop для MODX3. Что происходит и когда ждать? 53
17 мая 2026, 13:31
При включении компонента, все теги, снипеты и вызовы на fenom — на фронте выводятся текстом без обработки
[xDevPicker] Редактируем чанки с фронтенда в один клик 5
16 мая 2026, 12:23
Если кто-то использует счетчики, например, Яндекса, то это должно быть отражено в политике конфиденциальности и для них тоже нужно брать согласие поль...
Плашка о использовании cookie файлов на сайте 11
github.com/bezumkin/AjaxForm/blob/master/assets/components/ajaxform/js/default.js
Fi1osofЗдесь все необходимое для запуска MODX-3 (ну, просто он там в зависимостях, но можно и другие добавить в app/www).
Сам по себе докер (именно как один отдельно взятый контейнер) не очень интересно. Интересна возможность именно создания нескольких контейнеров, и чтобы они между собой взаимодействовали. Здесь у нас php-fpm, nginx, mysql, PhpMyAdmin и сам MODX. Но MODX пока не удалось запустить на полном автомате (мне лень было это копать без особой мотивации). Тем не менее, контейнер под него подготовлен, в том числе и устанавливается composer github.com/MODX-Club/docker-lnmp/blob/master/php-fpm/Dockerfile#L36
Только клонировать проект надо с субмодулями
git clone --recursive github.com/MODX-Club/docker-lnmp docker-modx
cd docker-modx
После этого проверяем, директория должна быть не пустой app/www/modx3
И вот чего не автоматизировал — это создание modx3/core/packages/core.transport.zip
По идее его должна быть возможность как-то билдить через CLI, но я с наскока не нашел. Если найдете, то в связке с общей установкой MODX через CLI можно полностью автоматизировать установку и запуск.
docs.modx.com/3.x/en/getting-started/installation/cli
Пока же приходится качать этот пакет с оффсайта и закидывать туда, иначе установка не может быть завершена.
Запуск
Копируем .env
copy .sample.env .env
Может затем отредактировать его и установить рет-пароль для мускула.
Для надежности сначала запускаем mysql и pma
docker-compose up -d --build mysql pma
Затем php-fpm
docker-compose up -d --build php-fpm
После запуска надо собрать MODX (я забыл это прописать в Dockerfile).
Заходим в контейнер php-fpm
docker exec -it modx-docker_php-fpm_1 bash (имя контейнера может отличаться, ищем актуальное docker ps или docker-compose ps).
Заходим в папку modx3 и выполняем
composer install
Ну и в конце nginx
Только хост подправить при необходимости: github.com/MODX-Club/docker-lnmp/blob/master/nginx/conf.d/modx3.local.conf
docker-compose up -d --build nginx
После запуска идет modx3.local/setup и устанавливаем.
Fi1osofЯ им не пользуюсь, но морок все равно не много. Я захожу на digitalocean и создаю сервер из готового образа с докером: marketplace.digitalocean.com/apps/docker
Далее просто затягиваю гит-проект, подправляю .env (если надо) и все, запускаю проект. При чем использую caddy-server, который даже ssl сертификаты в Let's Encript заказывает, даже крон-службы никакие не надо настраивать. Так что все далеко не так плохи и сложно как кажется.
Вот если говорить просто как про замену MODX в классическом виде, то есть про готовую CMS, которая и сервер и фронт, все в одном, под сайты-визитки и небольшие магазины, то скорее всего нечем (во всяком случае на JS/TS). Нюанс только заключается в том, что сейчас спроса на простые и маленькие практически нет. Точнее сейчас практически не остается того маленького в том виде, как это было раньше. Даже маленькое сейчас стараются делать по современным методикам. Аналогию можно наверно такую провести: это как писали раньше на чистом JS и мучились с поддержкой разных браузеров, а потом появился jQuery и практически все стали писать на нем (хотя справедливости ради стоит отметить, что сначала появились prototype и mootools, но все же именно jQuery стал первой столь массовой библиотекой). Или как писали чистый CSS, а потом появились Less, Sass и т.п. и говорили «На чистом CSS писать легко. Но большие проекты на чистом CSS писать сложно». Так же и здесь. Появляется множество инструментов, используемых еще на этапе разработки и конечный продукт без использования оных всерьез не воспринимается.
Сейчас же пишут в основном API-first CMS и Headless CMS. И хотя не все могут сразу перейти полностью на новые технологии, очень часто делают так: бэк старый оставляют и прикручивают новый на новых технологиях. Посмотрите список поддерживаемых CMS у того же gatsby или next-js. Я же пишу свой велосипед, который прям все в одном в плане и бэк и фронт. github.com/prisma-cms/nextjs
Сделал на нем уже несколько сайтов. Докручиваю только более удобную админку ему. Уверен, появятся и другие сторонние решения «под ключ» и более удобные, чем у меня. Это всего лишь вопрос времени.
Как получить родителя по id?
Для корректности, вашем случае нужно поступить вот так:
UPD
Забыл совсем про uri
Если, что в поле uri хранится ссылка на страницу, но никак не в alias
core/components/minishop2/processors/mgr/gallery/upload.class.php
после строки 64
Ну и в разрешениях файлового источника надо прописать svg
Работает это с версии минишоп 2.4 как я понимаю.
1. В папке /core/components/minishop2/custom/cart/ создаете файл mascarthandlerstatus.class.php который будет расширять класс корзины
2. В этом файле пишете
3. В плагине Console (если его нет, то надо поставить) выполняем следующий код
Таким образом мы добавляем новый обработчик корзины
4. Далее идем в Системные настройки -> mimishop2 -> Класс обработчик корзины и указываем там msCartHandlerStatus
5. Теперь в плейсхолдере total_count_position будет отображаться количество позиций в корзине
6. Что бы все это и по аяксу обновлялось, в js в ваших скриптах или просто в конце страницы (главное что бы он был после подключения скрипта от минишопа) добавляем такой код
7. Теперь в миникорзине или корзине можно писать так
2. чекбоксы «я согласен на обработку моих персональных данных/подтверждая форму, я соглашаюсь с правилами сайта» на объемных формах — регистрация/оформления заказа
3. страница с политикой конфиденциальности + ссылка в подвале
4. modhost.pro