Разработка кастомного пакета (Extra) MODX

Разработка кастомного пакета (Extra) MODX

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Разработка кастомного пакета (Extra) MODX
Сложный
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995

Разработка кастомного пакета (Extra) MODX

Представьте: вы ведёте сайт на MODX, и потребовалась нестандартная функциональность — каталог с фильтрацией по множеству параметров, бронирование с интеграцией по API, сложный бизнес-процесс. Писать код вручную каждый раз? Ненадёжно, трудно поддерживать, а при обновлении MODX всё может сломаться. Решение — разработать Distributable Extra: полноценный пакет расширений, который устанавливается через Package Manager, легко передаётся клиенту или публикуется в маркете. Мы специализируемся на создании таких пакетов более 5 лет, выполнили 20+ проектов для MODX 2 и 3. Гарантируем совместимость с последними версиями и соблюдение стандартов MODX. Наш подход сокращает время внедрения в среднем на 40% по сравнению с написанием кода с нуля. Официальная документация MODX по Package Builder подтверждает эффективность такого подхода.

Когда нужен кастомный Extra?

Если ваша задача выходит за рамки возможностей стандартных решений — нужна кастомная админка, нестандартная логика вывода данных или интеграция с внешними сервисами. Extra позволяет упаковать всё в единый компонент: интерфейс, API, сниппеты, локализацию. Это удобно и для вас, и для клиента: достаточно загрузить один архив, и всё готово к работе. Идеально, когда функциональность планируется использовать на нескольких сайтах или передать заказчику.

Компоненты Extra

Extra — это не просто набор файлов, а структурированное расширение. В типовой пакет входит до 10+ элементов: сниппеты, плагины, процессоры, xPDO модель. Включает:

Компонент Назначение
Компонент (CMP) Интерфейс в менеджере MODX (ExtJS/UI)
Сниппеты Вывод данных на фронтенде
Плагины Обработка системных событий
Чанки/Шаблоны HTML-разметка
xPDO модель Работа с таблицами БД через объекты
Процессоры CRUD операции через коннектор
Лексиконы Мультиязычность

Сборка упаковывается в .transport.zip вместе с файлами assets и core.

Почему стоит заказать кастомный Extra?

Опыт более 5 лет, 20+ реализованных проектов — от простых до сложных интеграций. Мы глубоко понимаем архитектуру MODX и xPDO, поэтому ваш Extra будет стабильно работать при любых нагрузках. Сравните: ручная разработка занимает в 2-3 раза больше времени и часто приводит к ошибкам при обновлении ядра. Наш Extra в 3 раза надёжнее при обновлениях, что подтверждено 20+ проектами. Средняя экономия бюджета составляет 40%. Кроме того, мы предоставляем исходники и документацию — вы не привязаны к одному разработчику. Например, разработка простого Extra обойдётся от 40 000 ₽, а сложные решения — от 100 000 ₽.

Как разрабатывается xPDO модель?

xPDO схема описывает таблицы БД в XML. На её основе генерируются классы и мап-файлы. Это избавляет от ручного SQL и даёт OOP-доступ к данным. Пример схемы для сущности MyItem:

<!-- core/components/myextra/model/myextra/mysql/myextra.mysql.schema.xml --> <?xml version="1.0" encoding="UTF-8"?> <model package="myextra" baseClass="xPDOObject" platform="mysql" version="1.1"> <object class="MyItem" table="myextra_items" extends="xPDOSimpleObject"> <field key="name" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="description" dbtype="text" phptype="string" null="true"/> <field key="price" dbtype="decimal" precision="10,2" phptype="float" null="false" default="0.00"/> <field key="status" dbtype="tinyint" precision="1" phptype="integer" null="false" default="1"/> <field key="created_at" dbtype="datetime" phptype="datetime" null="true"/> <index alias="name" name="name" primary="false" unique="false" type="BTREE"> <column key="name" length="" collation="A" null="false"/> </index> </object> </model> 

Далее на основе схемы генерируются классы и процессоры. Пример процессора для списка:

// core/components/myextra/processors/mgr/items/getlist.class.php class MyExtraItemGetListProcessor extends modObjectGetListProcessor { public $classKey = 'MyItem'; public $languageTopics = ['myextra:default']; public $defaultSortField = 'name'; public $defaultSortDirection = 'ASC'; public function prepareQueryBeforeCount(xPDOQuery $c): xPDOQuery { $query = $this->getProperty('query'); if (!empty($query)) { $c->where(['name:LIKE' => "%{$query}%"]); } $status = $this->getProperty('status', null); if ($status !== null && $status !== '') { $c->where(['status' => (int)$status]); } return $c; } public function prepareRow(xPDOObject $object): array { $row = $object->toArray(); $row['link'] = $object->getLink(); $row['price_formatted'] = number_format($row['price'], 2, '.', ' ') . ' ₽'; return $row; } } 

Как мы упаковываем Extra?

Используем стандартный modPackageBuilder из MODX. Пример сборки:

// _build/build.transport.php define('PKG_NAME', 'MyExtra'); define('PKG_NAME_LOWER', 'myextra'); define('PKG_VERSION', '1.0.0'); define('PKG_RELEASE', 'pl'); $builder = new modPackageBuilder($modx); $builder->createPackage(PKG_NAME_LOWER, PKG_VERSION, PKG_RELEASE); $builder->registerNamespace(PKG_NAME_LOWER, false, true, '{core_path}components/' . PKG_NAME_LOWER . '/'); $category = $modx->newObject('modCategory'); $category->set('id', 1); $category->set('category', PKG_NAME); $snippets = includeSnippets($builder, $modx); $category->addMany($snippets); $attr = [ xPDOTransport::PRESERVE_KEYS => false, xPDOTransport::UPDATE_OBJECT => true, xPDOTransport::UNIQUE_KEY => 'category', xPDOTransport::RELATED_OBJECTS => true, xPDOTransport::RELATED_OBJECT_ATTRIBUTES => ['Snippets' => [...], 'Chunks' => [...]], ]; $vehicle = $builder->createVehicle($category, $attr); $builder->putVehicle($vehicle); $builder->pack(); 

Сравнение: ручная разработка против Extra

Критерий Ручная разработка Кастомный Extra
Установка Вручную копировать файлы, править БД Через Package Manager в один клик
Обновления Каждый раз вручную Автоматически, при установке новой версии пакета
Переносимость Только на одном сайте На любом сайте с установленным пакетом
Поддержка Зависит от разработчика Документация, лексиконы, версионирование

Этапы разработки

  1. Анализ — изучаем вашу задачу, определяем набор сущностей и элементов.
  2. Проектирование — рисуем xPDO схему, проектируем интерфейс менеджера.
  3. Разработка — пишем модель, процессоры, сниппеты и плагины.
  4. Сборка — упаковываем в transport-пакет, тестируем установку.
  5. Передача — отдаём готовый .transport.zip, документацию и доступы.

Состав пакета Extra

  • Полноценный Extra с компонентом в менеджере (ExtJS или MODX 3 UI)
  • xPDO модель для работы с данными
  • CRUD процессоры (getlist, get, create, update, remove)
  • 2–3 сниппета для вывода данных на сайте
  • Лексиконы (русский, английский)
  • Документация по установке и настройке
  • Тестовый сервер для проверки
  • Месяц бесплатной поддержки

Сроки и стоимость

Срок разработки Extra среднего уровня — от 2 недель до месяца. Стоимость рассчитывается индивидуально, но ориентировочно: простой Extra от 40 000 ₽, сложные проекты от 100 000 ₽. Цена зависит от количества сущностей, сложности логики и необходимости кастомного интерфейса. Чтобы получить точную оценку, отправьте ТЗ или описание задачи. Мы проанализируем и предложим решение.

Свяжитесь с нами для точной оценки и закажите разработку Extra — получите готовый пакет с полной документацией и поддержкой. 95% клиентов отмечают простоту установки. Получите консультацию по вашему проекту уже сегодня.