Павел Бигель
С нами с 15 января 2019; Место в рейтинге пользователей: #22Давайте пофильтруем данные с помощью микросервиса
Драма по поводу хорош или плох mSearch2 не утихает. Многие пользователи системы видят ее исключительно в монолитом виде что очень сильно ограничивает кейс системы. Причем любой.
Давайте представим что у вас есть интернет-магазин на MODX + miniShop2 с очень большим кол-вом товаров и каким-никаким хайлоадом :)
Использование встроенных фильтров в mSearch вас немного ограничивает. Как минимум тем, что не кеширует результат.
Предлагаю припилить к нашему любимому MODX небольшой микросервис на Laravel который будет фильтровать данные по входному запросу, а также отдавать нам список айдишников которые подходят под выборку.
Давайте представим что у вас есть интернет-магазин на MODX + miniShop2 с очень большим кол-вом товаров и каким-никаким хайлоадом :)
Использование встроенных фильтров в mSearch вас немного ограничивает. Как минимум тем, что не кеширует результат.
Предлагаю припилить к нашему любимому MODX небольшой микросервис на Laravel который будет фильтровать данные по входному запросу, а также отдавать нам список айдишников которые подходят под выборку.
Используем системный composer в MODX 3
Привет.
Одно из самых заметных изменений в MODX 3 это наличие системного Composer для установки своих зависимостей.
Одно из самых заметных изменений в MODX 3 это наличие системного Composer для установки своих зависимостей.
Что такое Composer из зачем он нужен ?
Composer — это менеджер для подключения и управления этими сторонними библиотеками или пакетами в вашем PHP-проекте который решает следующие проблемы:- Быстрая установка и обновление пакетов
- Резолвинг зависимостей между пакетами
- Хранение пакетов и их версии в едином файле без необходимости версионировать все пакеты вручную
Изменение цены в корзине при переоценке
Привет.
Иногда возникает такая ситуация, когда пишите интернет-магазин на MODX и miniShop2 и при этом вы импортируете товары или переоцениваете их с какого-нибудь внешнего сервиса (Например 1С). Проблема которая возникает абсолютно всегда в таких случаях, что цены на товары меняются достаточно часто. В miniShop2 нет (пока нет) события, который бы позволял хендлить события перехода в коризну. Однако, мы можем сделать это на уровне MODX, его событий и API
Создаем плагин cartCheck и вешаем его на событие OnWebPagePrerender. Это событие уже спарсило ресус и его данные, но еще не вывело на страницу — все что нам нужно. В коде, делаем проверку на шаблон страницы. Обычно, корзина имеет свой выделенный шаблон. Далее нам предстоит инициализировать минишоп, получить корзину, модифицировать ее как угодно и назначить обратно. Так же мы сделаем проверку на то, опубликован или удален ресурс и не дадим его купить. На этом, собственно все. Ниже привожу код плагина
Иногда возникает такая ситуация, когда пишите интернет-магазин на MODX и miniShop2 и при этом вы импортируете товары или переоцениваете их с какого-нибудь внешнего сервиса (Например 1С). Проблема которая возникает абсолютно всегда в таких случаях, что цены на товары меняются достаточно часто. В miniShop2 нет (пока нет) события, который бы позволял хендлить события перехода в коризну. Однако, мы можем сделать это на уровне MODX, его событий и API
Создаем плагин cartCheck и вешаем его на событие OnWebPagePrerender. Это событие уже спарсило ресус и его данные, но еще не вывело на страницу — все что нам нужно. В коде, делаем проверку на шаблон страницы. Обычно, корзина имеет свой выделенный шаблон. Далее нам предстоит инициализировать минишоп, получить корзину, модифицировать ее как угодно и назначить обратно. Так же мы сделаем проверку на то, опубликован или удален ресурс и не дадим его купить. На этом, собственно все. Ниже привожу код плагина
<?php
if ($modx->event->name = 'OnWebPagePrerender'){
if ($modx->resource->id == 5) {
/** @var miniShop2 $miniShop2 */
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize();
$cart = $miniShop2->cart->get();
foreach ($cart as $key => &$element) {
/** @var msProduct $product */
if ($product = $modx->getObject('msProduct', $element['id'])) {
$element['price'] = $product->get('price');
if (!$product->get('published') || $product->get('deleted')){
unset($cart[$key]);
}
}
}
$miniShop2->cart->set($cart);
}
}
Теория выгрузок из 1С в MODX (часть 1 из 2)
И снова привет!
Выгрузка товаров на сайт — это самый, самый частый кейс моей мини-студии. Для реализации мелких-средних интернет-магазинов используем классическую и сверхпопулярную связку MODX+miniShop2, для крупых — нет, но я как-нибудь обязательно расскажу почему.
Выгрузка товаров на сайт — это самый, самый частый кейс моей мини-студии. Для реализации мелких-средних интернет-магазинов используем классическую и сверхпопулярную связку MODX+miniShop2, для крупых — нет, но я как-нибудь обязательно расскажу почему.
elementSync - Еще один способ разработки MODX-приложений в IDE
Привет.
Этот элемент можно считать вторым кусочком компонента который я описал на статью одну пониже, а можно рассчитывать как отдельную тузлу. Предыстория такова: Я не использую файловые сущности pdoTools, идеологически считаю что транспортные пакеты это отличный способ для разработки компонентов, но не сайтов. Так же Gitify меня не вдохновил. Думаю имею на это право :)
Более того — частенько приходится не создавать что-то новое на MODX, а редактировать существующее. И все это нужно а) каким-то образом версионировать б) разрабатывать используя удобные инструменты в IDE. Много времени назад я использовал для этого gitmodx и он меня в целом устраивал. Но есть нюансы, которые мне категорически не нравились.
Этот элемент можно считать вторым кусочком компонента который я описал на статью одну пониже, а можно рассчитывать как отдельную тузлу. Предыстория такова: Я не использую файловые сущности pdoTools, идеологически считаю что транспортные пакеты это отличный способ для разработки компонентов, но не сайтов. Так же Gitify меня не вдохновил. Думаю имею на это право :)
Более того — частенько приходится не создавать что-то новое на MODX, а редактировать существующее. И все это нужно а) каким-то образом версионировать б) разрабатывать используя удобные инструменты в IDE. Много времени назад я использовал для этого gitmodx и он меня в целом устраивал. Но есть нюансы, которые мне категорически не нравились.
contentSync - синхронизация контента прода и дева для MODX Revolution
Привет, я снова тут!
Одна из дегенеративных особенностей MODX — хранить все в базе. Кони, люди, контент — все хранится в базе.
Еще более дегенеративная особенность — MODX учит вас хранить все в ресурсах и это не сказать что правильная логика.
Часто возникает ситуация, что тестовая версия сайта начинает плотно отставать по контенту от продакшена и необходимо как-то синхронизировать изменения.
Я придумал решение, которое отчасти решает мою задачу и потребность. Если решение вам понравится — я упакую все в пакет и выложу в бесплатный доступ.
Одна из дегенеративных особенностей MODX — хранить все в базе. Кони, люди, контент — все хранится в базе.
Еще более дегенеративная особенность — MODX учит вас хранить все в ресурсах и это не сказать что правильная логика.
Часто возникает ситуация, что тестовая версия сайта начинает плотно отставать по контенту от продакшена и необходимо как-то синхронизировать изменения.
Я придумал решение, которое отчасти решает мою задачу и потребность. Если решение вам понравится — я упакую все в пакет и выложу в бесплатный доступ.
[VSC] Получение автокомплита полей и методов классов MODX
Привет! Достаточно давно я писал про свое расширение — vscodemodx, которое позволяет использовать все методы и поля пространства MODX и xPDO, а так же работал в Fenom. Теперь появился способ сделать все как «в PHPStorm», в котором можно добавить производную директорию для анализа.
Почему MODX лучше чем (%cms_name%} или как продать клиенту MODX
Привет. Хочу разбавить статьи немного нестандартной для этого сайта статьи. Техническую статью я тоже хочу написать, но сейчас хочу вам рассказать как лично я продаю MODX в заказах.
Статья пусть и выглядит как гайд, но таковым не является. Я делюсь своим опытом общения с людьми, которым нужны сайты. Не ругайте меня, если ваша точка зрения в каких-то вопросах не совпадает с моей.
MODX — отличная система для новичков в разработке и для тех, кому нужно создать хорошее скалируемое приложение с минимальным стартом.
Для начала, нужно понимать где вообще уместно применять MODX. В теории — везде, прям вообще везде. На практике, к сожалению не так. Объясню что я имею ввиду.
Лично я использую MODX для тех сайтов, где использование более классических CMS — глупо, а использовать взрослые фреймворки — впадлянку.
Часто бывает такая ситуация, когда вы общаетесь с клиентом и понимаете, что MODX для этих задач является идеальным выбором. Вы его хорошо знаете, вы можете выполнить проект достаточно быстро. Возникает задача, как же продать клиенту MODX? Даже такому, который сам предложил вам выполнить проект на другой системе или платформе? Я не буду сейчас устраивать холиварное месиво, все будет построено вокруг фактов.
Я предлагаю рассмотреть все варианты:
Статья пусть и выглядит как гайд, но таковым не является. Я делюсь своим опытом общения с людьми, которым нужны сайты. Не ругайте меня, если ваша точка зрения в каких-то вопросах не совпадает с моей.
MODX — отличная система для новичков в разработке и для тех, кому нужно создать хорошее скалируемое приложение с минимальным стартом.
Для начала, нужно понимать где вообще уместно применять MODX. В теории — везде, прям вообще везде. На практике, к сожалению не так. Объясню что я имею ввиду.
Лично я использую MODX для тех сайтов, где использование более классических CMS — глупо, а использовать взрослые фреймворки — впадлянку.
Часто бывает такая ситуация, когда вы общаетесь с клиентом и понимаете, что MODX для этих задач является идеальным выбором. Вы его хорошо знаете, вы можете выполнить проект достаточно быстро. Возникает задача, как же продать клиенту MODX? Даже такому, который сам предложил вам выполнить проект на другой системе или платформе? Я не буду сейчас устраивать холиварное месиво, все будет построено вокруг фактов.
Я предлагаю рассмотреть все варианты:
ORM для MODX (или как юзать другие сторонние библиотеки)
Добрый день!
Почему-то многие забывают (или даже не знают, хехе) что MODX написан на PHP. Что это значит?
Почему-то многие забывают (или даже не знают, хехе) что MODX написан на PHP. Что это значит?
[VCS] Обновление vscodemodx 0.0.3
Привет! Я снова решил обновить дополнение для Visual Studio Code. Итак, что же нового?