Павел Бигель

Павел Бигель

С нами с 15 января 2019; Место в рейтинге пользователей: #22

Давайте пофильтруем данные с помощью микросервиса

Драма по поводу хорош или плох mSearch2 не утихает. Многие пользователи системы видят ее исключительно в монолитом виде что очень сильно ограничивает кейс системы. Причем любой.

Давайте представим что у вас есть интернет-магазин на MODX + miniShop2 с очень большим кол-вом товаров и каким-никаким хайлоадом :)

Использование встроенных фильтров в mSearch вас немного ограничивает. Как минимум тем, что не кеширует результат.

Предлагаю припилить к нашему любимому MODX небольшой микросервис на Laravel который будет фильтровать данные по входному запросу, а также отдавать нам список айдишников которые подходят под выборку.

Павел Бигель
20 декабря 2022, 16:23
modx.pro
4
1 791
+15

Используем системный composer в MODX 3

Привет.
Одно из самых заметных изменений в MODX 3 это наличие системного Composer для установки своих зависимостей.

Что такое Composer из зачем он нужен ?

Composer — это менеджер для подключения и управления этими сторонними библиотеками или пакетами в вашем PHP-проекте который решает следующие проблемы:

  1. Быстрая установка и обновление пакетов
  2. Резолвинг зависимостей между пакетами
  3. Хранение пакетов и их версии в едином файле без необходимости версионировать все пакеты вручную
Павел Бигель
13 апреля 2022, 18:35
modx.pro
4
2 529
+23

Изменение цены в корзине при переоценке

Привет.

Иногда возникает такая ситуация, когда пишите интернет-магазин на 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);
    }
}
Павел Бигель
07 мая 2020, 15:56
modx.pro
9
1 819
+11

Теория выгрузок из 1С в MODX (часть 1 из 2)

И снова привет!
Выгрузка товаров на сайт — это самый, самый частый кейс моей мини-студии. Для реализации мелких-средних интернет-магазинов используем классическую и сверхпопулярную связку MODX+miniShop2, для крупых — нет, но я как-нибудь обязательно расскажу почему.
Павел Бигель
06 апреля 2020, 19:10
modx.pro
13
6 020
+17

elementSync - Еще один способ разработки MODX-приложений в IDE

Привет.
Этот элемент можно считать вторым кусочком компонента который я описал на статью одну пониже, а можно рассчитывать как отдельную тузлу. Предыстория такова: Я не использую файловые сущности pdoTools, идеологически считаю что транспортные пакеты это отличный способ для разработки компонентов, но не сайтов. Так же Gitify меня не вдохновил. Думаю имею на это право :)
Более того — частенько приходится не создавать что-то новое на MODX, а редактировать существующее. И все это нужно а) каким-то образом версионировать б) разрабатывать используя удобные инструменты в IDE. Много времени назад я использовал для этого gitmodx и он меня в целом устраивал. Но есть нюансы, которые мне категорически не нравились.
Павел Бигель
25 февраля 2020, 19:55
modx.pro
5
1 665
+12

contentSync - синхронизация контента прода и дева для MODX Revolution

Привет, я снова тут!

Одна из дегенеративных особенностей MODX — хранить все в базе. Кони, люди, контент — все хранится в базе.
Еще более дегенеративная особенность — MODX учит вас хранить все в ресурсах и это не сказать что правильная логика.

Часто возникает ситуация, что тестовая версия сайта начинает плотно отставать по контенту от продакшена и необходимо как-то синхронизировать изменения.

Я придумал решение, которое отчасти решает мою задачу и потребность. Если решение вам понравится — я упакую все в пакет и выложу в бесплатный доступ.
Павел Бигель
20 февраля 2020, 13:55
modx.pro
4
1 501
+16

[VSC] Получение автокомплита полей и методов классов MODX

Привет! Достаточно давно я писал про свое расширение — vscodemodx, которое позволяет использовать все методы и поля пространства MODX и xPDO, а так же работал в Fenom. Теперь появился способ сделать все как «в PHPStorm», в котором можно добавить производную директорию для анализа.
Павел Бигель
04 февраля 2020, 13:01
modx.pro
2
2 178
+17

Почему MODX лучше чем (%cms_name%} или как продать клиенту MODX

Привет. Хочу разбавить статьи немного нестандартной для этого сайта статьи. Техническую статью я тоже хочу написать, но сейчас хочу вам рассказать как лично я продаю MODX в заказах.

Статья пусть и выглядит как гайд, но таковым не является. Я делюсь своим опытом общения с людьми, которым нужны сайты. Не ругайте меня, если ваша точка зрения в каких-то вопросах не совпадает с моей.

MODX — отличная система для новичков в разработке и для тех, кому нужно создать хорошее скалируемое приложение с минимальным стартом.
Для начала, нужно понимать где вообще уместно применять MODX. В теории — везде, прям вообще везде. На практике, к сожалению не так. Объясню что я имею ввиду.
Лично я использую MODX для тех сайтов, где использование более классических CMS — глупо, а использовать взрослые фреймворки — впадлянку.

Часто бывает такая ситуация, когда вы общаетесь с клиентом и понимаете, что MODX для этих задач является идеальным выбором. Вы его хорошо знаете, вы можете выполнить проект достаточно быстро. Возникает задача, как же продать клиенту MODX? Даже такому, который сам предложил вам выполнить проект на другой системе или платформе? Я не буду сейчас устраивать холиварное месиво, все будет построено вокруг фактов.
Я предлагаю рассмотреть все варианты:
Павел Бигель
12 января 2020, 01:55
modx.pro
3 092
+18

ORM для MODX (или как юзать другие сторонние библиотеки)

Добрый день!
Почему-то многие забывают (или даже не знают, хехе) что MODX написан на PHP. Что это значит?
Павел Бигель
03 декабря 2019, 22:56
modx.pro
1
1 532
+9

[VCS] Обновление vscodemodx 0.0.3

Привет! Я снова решил обновить дополнение для Visual Studio Code. Итак, что же нового?
Павел Бигель
15 ноября 2019, 00:06
modx.pro
2
1 309
+16