Інструкція для розробки модулів або шаблонів для OkayCMS
- Як викласти модуль на маркетплейс OkayCMS
- Необхідні знання
- Необхідні інструменти
- Рекомендації перед початком
- Створення репозиторію для модулів
- Ведення репозиторію
- Як організувати гілку master
- Рекомендація: Як легко оновити версію OkayCMS у master
- Ведення модулів у репозиторії
- Правила створення гілки модуля
- Де розміщувати файли модуля
- Якщо модуль потребує доповнень у шаблон
- Хороша практика
- Версионність модулів
- Принцип інкрементації версій
- Прив`язка тегів у репозиторії
- Оновлення OkayCMS у модулі
- Правильний спосіб оновлення
- Чому саме merge?
- Неприпустимі дії
- Створення демо-контенту
- Де зберігається демоконтент
- Що можна додавати в демо
- Як створити demo.sql
- Заборонено додавати в демо:
- Ведення шаблонів у репозиторії
- Іменування гілок
- Розміщення шаблону в файловій структурі
- Інструкція для користувача (README)
- Демонстраційна версія шаблону (демо)
- Додавання репозиторію в маркетплейс
- Надання доступу по SSH
- Налаштування автоматичного оновлення (Webhook)
- Після налаштування
Як викласти модуль на маркетплейс OkayCMS
Ця інструкція призначена для розробників, які хочуть розмістити свій модуль на маркетплейсі OkayCMS. У ній детально описано повний процес — від підготовки середовища до публікації модуля.
Необхідні знання
Для роботи знадобляться базові технічні навички:
-
Розуміння принципів роботи з Git — створення репозиторіїв, коміти, гілки, пуші.
-
Знання структури OkayCMS та основ побудови модулів.
-
Базові навички роботи в терміналі.
-
Розуміння основ HTML, PHP та JavaScript — для внесення змін у код або шаблони.
💡 Якщо ви вперше працюєте з Git або Bitbucket — рекомендується перше викладання виконати разом із представником команди OkayCMS, щоб уникнути технічних помилок.
Необхідні інструменти
Перед початком переконайтеся, що у вас встановлено та налаштовано:
-
Git — для керування версіями коду.
-
Bitbucket — основний репозиторій, з якого здійснюється викладка модулів на маркетплейс.
-
Редактор коду (Visual Studio Code, PhpStorm тощо).
-
Тестове середовище OkayCMS — локально або на сервері, щоб перевірити роботу модуля перед публікацією.
Рекомендації перед початком
-
Переконайтеся, що модуль повністю працездатний і не викликає конфліктів з базовими модулями OkayCMS.
-
Додайте файл README.md із коротким описом, інструкцією встановлення, контактами розробника й, за бажання, посиланням на демо.
-
Якщо модуль використовує сторонні бібліотеки, переконайтеся, що вони мають відповідні ліцензії.
Створення репозиторію для модулів
Щоб створити власний репозиторій для розробки модулів OkayCMS, виконайте такі дії:
-
Склонуйте офіційний репозиторій OkayCMS:
Це потрібно, щоб отримати актуальну структуру системи.
git clone [email protected]:OkayCMS/OkayCMS.git -
Видаліть директорію
.git:Таким чином ви від’єднаєтесь від історії комітів оригінального репозиторію й зможете вести власну.
rm -rf .git -
Ініціалізуйте новий Git-репозиторій:
git init -
Створіть файл локальних налаштувань:
У директорії
config/створіть файлconfig.local.php.
Він використовується для підключення до вашої локальної бази даних.
Зміст файлу можна взяти за зразком ізconfig/config.php, але вказати свої доступи:<?php $config = [ 'db_host' => 'localhost', 'db_user' => 'root', 'db_pass' => '', 'db_name' => 'okaycms', ]; -
Імпортуйте дамп бази даних:
Файл із базовою структурою бази знаходиться за шляхом:
1DB_changes/okay_clean.sqlІмпортуйте його через phpMyAdmin, Adminer або команду MySQL у терміналі.
-
Встановіть залежності через Composer:
Виконайте команду:
composer installЦе завантажить необхідні бібліотеки, потрібні для роботи OkayCMS.
Після виконання цих кроків ваш робочий репозиторій буде готовий до створення гілок із модулями.
Ведення репозиторію
Гілка master у вашому репозиторії використовується як основа для створення модулів.
У ній повинні зберігатися чисті версії OkayCMS, без внесених змін модулями.
Як організувати гілку master
-
Кожен коміт у
masterрекомендується називати версією OkayCMS, яка в ньому присутня.Наприклад:
OkayCMS 3.3.5OkayCMS 3.4.1 -
У
masterмають бути всі версії OkayCMS, під які ви плануєте створювати модулі.
Ідеально — зберігати послідовність версій так само, як в офіційному репозиторії.
Це дозволить:
-
створювати модулі під різні версії OkayCMS;
-
у майбутньому коректно оновлювати модуль через
git merge(а не ручне копіювання файлів).
Рекомендація: Як легко оновити версію OkayCMS у master
-
Перейдіть у
master:git checkout master -
Видаліть усі каталоги, крім:
.git config/config.local.php(також можна залишити свої робочі файли типу
.idea, якщо потрібно) -
Склонуйте офіційний репозиторій OkayCMS у будь-яку тимчасову директорію.
-
Перейдіть у тимчасовому репозиторії на версію, до якої хочете оновитися.
-
Скопіюйте файли OkayCMS з тимчасової директорії у ваш репозиторій модулів
— таким чином Git зафіксує лише відмінності, а не створить “забруднену” історію. -
Імпортуйте оновлений дамп бази:
1DB_changes/okay_clean.sql -
Виконайте:
composer install
Після цього у гілці master буде актуальна версія OkayCMS, готова для створення або оновлення модулів.
Ведення модулів у репозиторії
Кожен модуль розробляється в окремій гілці (branch). Гілка обов`язково створюється від тієї версії OkayCMS у master, для якої розробляється модуль.
Правила створення гілки модуля
-
Перейдіть у
master:git checkout master -
Переконайтеся, що у
masterзнаходиться потрібна версія OkayCMS. -
Створіть гілку з назвою модуля:
git checkout -b <module_name>
Приклади назв гілок:
| Модуль | Назва гілки |
|---|---|
| Вспливаючий кошик | popup_cart |
| Комплекти товарів | set або kit |
📌 Гілки з модулями не потрібно і не можна зливати назад у
master.
Кожна гілка — це окремий модуль, і він “живе” тільки в ній.
Де розміщувати файли модуля
Усі файли модуля повинні бути ізольовані в директорії:
Okay/Modules/<vendor>/<moduleName>/
Таким чином модуль може бути встановлений або видалений без впливу на ядро системи.
Якщо модуль потребує доповнень у шаблон
Іноді для роботи модуля потрібно:
-
додати шорткод у шаблон,
-
підключити js/css,
-
розмістити елемент на сторінці.
У цьому випадку:
-
Додайте необхідні зміни до демо-шаблону в цій же гілці, щоб модуль коректно працював на демо.
-
Архів модуля буде збиратися без цих змін, тому:
-
Додайте інструкцію з встановлення та налаштування для кінцевого користувача.
Наприклад, файл:
Okay/Modules/<vendor>/<moduleName>/README.md
Він повинен описувати:
-
як встановити модуль,
-
як додати потрібні елементи у шаблон,
-
які параметри використовувати.
Хороша практика
Додайте контролер за замовчуванням у модуль, у якому буде описано:
-
як його встановити,
-
як налаштувати,
-
які є опції.
Це значно полегшує публікацію модуля та роботу партнера-клієнта.
Версионність модулів
Для кожного модуля необхідно вести окрему систему версій. Номер версії модуля складається з трьох цілих чисел, розділених крапкою.
Наприклад:
1.0.0
Це перша (початкова) версія модуля.
Принцип інкрементації версій
| Ситуація | Що змінюємо | Приклад |
|---|---|---|
| Виконується невелика правка, виправлення помилки, не зачіпається логіка модуля | Збільшується третє число | 1.0.0 → 1.0.1 |
| Змінюється логіка роботи модуля або адаптація під іншу версію OkayCMS | Збільшується друге число, третє скидається в 0 |
1.0.1 → 1.1.0 |
| Модуль суттєво перероблено, змінюється поведінка, інструкція або структура | Збільшується перше число, друге і третє скидаються в 0 |
1.1.0 → 2.0.0 |
Таким чином:
-
Patch-рівень (третья цифра) — дрібні виправлення.
-
Minor-рівень (друга цифра) — зміни логіки і функціоналу.
-
Major-рівень (перша цифра) — повна переробка або несумісні зміни.
Прив`язка тегів у репозиторії
Щоб зафіксувати версію модуля у репозиторії, потрібно поставити тег на коміт.
Формат тегу обов’язково має бути:
<branch_name>_<version>
Наприклад, модуль ведеться у гілці custom_module, і ми випускаємо першу версію:
git tag custom_module_1.0.0
git push origin custom_module_1.0.0
Якщо модуль оновлюється до версії 1.1.0, тег буде:
git tag custom_module_1.1.0
git push origin custom_module_1.1.0
Важливо: кожен тег повинен однозначно відповідати стану модуля у цій гілці.
Оновлення OkayCMS у модулі
Якщо потрібно оновити версію OkayCMS у гілці з модулем,
оновлення виконується тільки через merge з гілки master.
Заборонено оновлювати файли ядра OkayCMS безпосередньо в гілці модуля —
це призводить до розходжень, конфліктів та неможливості підтримувати модуль.
Правильний спосіб оновлення
-
Перейдіть у гілку модуля:
git checkout <module_branch> -
Зробіть merge тієї версії OkayCMS з
master, яка вам потрібна:git merge master -
Вирішіть можливі конфлікти (якщо є).
-
Перевірте роботу модуля після оновлення.
Чому саме merge?
Оновлення повинно бути саме merge-коммітом, який має два батьківські комміти:
-
перший — історія вашої гілки модуля
-
другий — зміни з
master
Це дозволяє:
-
зберігати чисту історію
-
точно розуміти, до якої версії OkayCMS прив’язана поточна версія модуля
-
без проблем оновлювати модуль при виході нових версій CMS
Неприпустимі дії
| Дія | Чому не можна |
|---|---|
| Ручне копіювання файлів ядра у гілку модуля | Git не знатиме, що зміни прийшли з master |
| Перезапис версії CMS без merge | Неможливо відстежити, яка версія була базою |
| Редагування файлів OkayCMS в гілці модуля | Модуль перестає бути сумісним з іншими версіями CMS |
Створення демо-контенту
Демоконтент використовується для демонстрації роботи модуля у тестовому середовищі або на демо-стенді.
У демо можна додавати товари, банери, категорії, сторінки тощо.
Де зберігається демоконтент
Демоконтент бази даних повинен знаходитись виключно у файлі:
1DB_changes/demo.sql
❗ Заборонено змінювати файл
1DB_changes/okay_clean.sql— це чиста вихідна база для встановлення OkayCMS.
Що можна додавати в демо
-
товари та їх зображення
-
банери / слайди
-
категорії
-
прості сторінки (наприклад “Доставка та оплата”)
-
налаштування, що стосуються саме модуля
Завантаження медіафайлів (зображень) допускається — вони мають бути додані в files/origin або files/resized після створення демо.
Як створити demo.sql
-
Через адмінку додайте необхідні:
-
товари
-
банери
-
меню
-
категорії
-
тексти і т. д.
-
-
Підключіться до бази через Adminer / phpMyAdmin / TablePlus.
-
Виберіть експорт (dump) тільки даних таблиць, які були змінені.
У налаштуваннях експорту:
Tables → нічого не вибираємо (жодна не повинна бути позначена) Data → позначаємо тільки таблиці, які містять демо-контент -
У полі форматування задаємо:
Data export mode: TRUNCATE + INSERT Format: SQL
-
Зберігаємо дамп у файл:
1DB_changes/demo.sql
Заборонено додавати в демо:
| Таблиця | Причина |
|---|---|
| ok_managers | Це користувачі адмінки |
| ok_modules | Стосується всіх модулів системи, не вашого |
| ok_settings | Глобальні налаштування сайту |
| ok_settings_lang | Локалізовані налаштування |
Демоконтент не входить в архів модуля під час публікації на маркетплейсі.
Він використовується тільки для внутрішньої демонстрації та перевірки.
Ведення шаблонів у репозиторії
Кожен шаблон оформлюється і розвивається в окремій гілці (branch), яка обов’язково створюється від гілки master тієї версії OkayCMS, під яку створюється шаблон.
Гілки з шаблонами не мержаться назад у
master.
В одній гілці розвивається тільки один шаблон.
Іменування гілок
Гілку рекомендується називати іменем шаблону, наприклад:
| Назва шаблону | Назва гілки |
|---|---|
| ModernStore | modern_store |
| FurniturePro | furniture_pro |
| BeautyShop | beauty_shop |
❗ Заборонено вносити зміни в базовий шаблон
okay_shop.
Новий шаблон повинен мати власну назву і бути окремий від оригінального.
Розміщення шаблону в файловій структурі
Шаблон повинен знаходитись у директорії:
design/<theme_name>/
Приклади:
design/modern_store/
design/beauty_shop/
Інструкція для користувача (README)
Якщо для коректної роботи шаблону необхідно виконати додаткові кроки, наприклад:
-
створити групи банерів
-
увімкнути певні модулі
-
додати слайдер
-
змінити налаштування меню
Тоді у шаблоні потрібно створити файл:
design/<theme_name>/README.md
У цьому файлі описується:
-
що робить шаблон
-
як його встановити
-
як налаштувати банери, меню або сторінки
Демонстраційна версія шаблону (демо)
Щоб шаблон коректно відображався на демо-маркетплейсі, необхідно:
-
Створити потрібні банерні групи / слайдери / меню у демо-сайті.
-
Додати їх у демо-контент (
1DB_changes/demo.sql).
Таким чином користувач одразу побачить готовий вигляд шаблону, без ручної настройки.
Додавання репозиторію в маркетплейс
Щоб маркетплейс міг автоматично отримувати версії модулів і шаблонів з вашого репозиторію, необхідно надати доступ по SSH і налаштувати webhook.
Надання доступу по SSH
-
Перейдіть у ваш репозиторій на Bitbucket.
-
Відкрийте меню:
Repository settings → Access keys -
Натисніть Add key.
-
У полі Label введіть довільну назву, наприклад:
okay-modules -
У полі Key вставте SSH-ключ, який вам надасть адміністрація OkayCMS.
Примітка: Ключ не є публічним.
Щоб отримати його, зверніться до підтримки або менеджера, який підключає вас до маркетплейса.
Збережіть ключ.
Налаштування автоматичного оновлення (Webhook)
Щоб модулі автоматично з’являлися або оновлювалися в маркетплейсі:
-
Перейдіть:
Repository settings → Webhooks -
Натисніть Add webhook.
-
У полі Title вкажіть довільну назву, наприклад:
okay-modules-sync -
У полі URL введіть:
https://modules.okay-cms.com/bitbucket/hook/initial </code -
Збережіть webhook.
Після налаштування
При створенні тега з версією модуля маркетплейс автоматично:
-
виявить нову версію
-
імпортує її до системи
-
оновить сторінку модуля в каталозі
Додаткові ручні дії не потрібні.