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

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

Розробка та обслуговування будь-яких видів сайтів:

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

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

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

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1317
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1014
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1276
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1019
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019

Розробка кастомного пакета (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 обійдеться від $360–520, а складні рішення — від $900–1.3k.

Як розробляється 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 від $360–520, складні проекти від $900–1.3k. Ціна залежить від кількості сутностей, складності логіки та необхідності кастомного інтерфейсу. Щоб отримати точну оцінку, надішліть ТЗ або опис завдання. Ми проаналізуємо та запропонуємо рішення.

Зв'яжіться з нами для точної оцінки та замовте розробку Extra — отримайте готовий пакет з повною документацією та підтримкою. 95% клієнтів відзначають простоту встановлення. Отримайте консультацію щодо вашого проекту вже сьогодні.