Александр Наумов
С нами с 15 декабря 2012; Место в рейтинге пользователей: #175- Заметки 158
- Комментарии 34
8 минут назад
document.addEventListener('DOMContentLoaded', () => {
const notyf = new Notyf( {position: {
x: 'center',
y: 'top',
...
Как позиционировать сообщения Notyf в FetchIt? 1
Вчера в 00:50
Заметил баг, если установлен controlErrorLog или modalConsole, то на странице CronTabManager они не работают.
PR отправил github.com/astra-modx/modx-...
CrontabManager - работа из под console ssh 6
14 февраля 2025, 22:35
Сниппет pbResources — это аналог pdoResources, но с возможностью присоединять таблицы по принципу «один ко многим», чего нет у pdoResources. Также пер...
PageBlocks. Выводим SEO-карточки 4
13 февраля 2025, 22:33
Вот было бы неплохо это прописать в описании к компоненту. Два дня ломал голову почему не работает. Ведь форма может быть кастомизирована как угодно, ...
Ошибка ms_cdek2 9
13 февраля 2025, 22:30
С точки зрения производительности это плохая идеяПонимаю, но писать свое решение нет ни времени ни денег.
Сортировка в pdoMenu 6
13 февраля 2025, 19:02
Всем добрый день. Может не совсем в тему, но проблема следующая:
1. Есть контекст web — обычные текстовые страницы
2. Есть контекст catalog — катего...
[update] Общая база товаров для разных контекстов 21
13 февраля 2025, 16:46
Спасибо. Так сработало.
easyComm 1.15.0 большой апдейт: ответы, улучшенные файлы и многое другогое! 23
13 февраля 2025, 15:02
Такая же ситуация, загрузить нельзя на modx 3 не находит такого пакета.
А после установки локально сыпятся ошибки
components/sendit/services/sendit....
Нет возможности загрузить SendIt на modx 3.1 а очень хочется 5
13 февраля 2025, 14:15
Всё откатил. Почистил. Установил заново. Написал в поддержку на modstore.pro
msSortFields 17
github.com/bezumkin/AjaxForm/blob/master/assets/components/ajaxform/js/default.js
Здесь все необходимое для запуска 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 и устанавливаем.
Я им не пользуюсь, но морок все равно не много. Я захожу на 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