Для чого призначений модуль Platform?
Модуль Platform дозволяє створювати власні модулі в intum - додавати нові розділи до системи, які працюють як нативні елементи застосунку. Завдяки цьому ви можете розширити intum будь-якими функціями без втручання у вихідний код.
Кожен модуль - це шлях URL (напр. /raporty, /baza), пов’язаний із джерелом контенту - сторінкою CMS, застосунком Noe, базою знань чи зовнішнім файлом JavaScript.
Як увімкнути модуль Platform?
- Перейдіть до Обліковий запис → Модулі (
/account/modules) - Знайдіть модуль Platform у списку
- Натисніть перемикач, щоб його ввімкнути
Після ввімкнення в меню з’явиться розділ Platform зі списком ваших модулів.
Що можна підключити як модуль?
Кожен модуль може бути пов’язаний з одним із чотирьох джерел:
- Noe::App - окремий застосунок Noe (Svelte, JS, HTML). Ідеально для простих інструментів і дашбордів. Більше про Noe →
-
Файл JavaScript (source_url) - зовнішній застосунок JS (напр. створений у Svelte, React, Vue). Ви вказуєте URL до файлу JS, і модуль завантажує його в елементі
<div id="intum_platform_module">. Ідеально для застосунків, створених поза intum. - Cms::Site - повний сайт CMS з багатьма підсторінками, макетами та шаблонами Liquid. У сторінках CMS ви можете вбудовувати будь-який код JavaScript, Svelte, Vue, React - завдяки цьому ви створюєте інтерактивні застосунки безпосередньо в CMS. Ідеально для складних модулів з багатьма сторінками. Більше про CMS →
- Kb::KnowledgeBase - база знань з категоріями, статтями та пошуком. Ідеально для внутрішньої документації. Більше про Базу знань →
Модуль з файлу JavaScript
Замість підключати наявний сайт CMS чи застосунок Noe, ви можете вказати URL до файлу JS у полі Source URL. Модуль завантажить цей файл і виконає його на сторінці.
Застосунок JS має монтуватися в елементі #intum_platform_module:
const target = document.getElementById("intum_platform_module")
// mount your app here
Файл JS може роздаватися з будь-якого джерела - з CDN, з власного сервера, або з асетів intum. У режимі development зручно використовувати локальний dev-сервер (напр. http://localhost:3100/app.js) з watch mode - змінюєте код, оновлюєте сторінку і бачите ефект.
Цей підхід дозволяє створювати модулі в будь-якому фреймворку (Svelte, React, Vue, vanilla JS) з власним процесом збірки, тестами та деплоєм.
Макет модуля
Кожен модуль може працювати в одному з двох режимів:
- З макетом застосунку (app) - модуль відображається всередині стандартного інтерфейсу intum, з топбаром, сайдбаром і меню. Виглядає як нативна частина системи. Корисно, коли модуль має пасувати до решти застосунку.
- Без макета (none) - модуль займає всю сторінку, без елементів інтерфейсу intum. Корисно для самостійних застосунків, лендінгів, віджетів чи модулів із власною навігацією.
Режим ви задаєте в полі Layout під час створення чи редагування модуля.
Як створити новий модуль?
- Перейдіть до Platform → Модулі (
/platform/modules) - Натисніть Новий
- Заповніть форму:
- Назва - відображається в меню (напр. “Звіти продажів”)
-
Код - ідентифікатор модуля (напр.
raporty) -
URL - шлях, під яким модуль буде доступний (напр.
raporty→/raporty). Можна використати/*наприкінці, щоб ловити підшляхи (напр.raporty/*→/raporty/cokolwiek) - Source URL - опціонально URL до файлу JS (замість джерела CMS/Noe/KB)
- Тип джерела - виберіть Cms::Site, Noe::App або Kb::KnowledgeBase (коли не використовуєте Source URL)
- Layout - з макетом застосунку (сайдбар, топбар) або без
- Право доступу - опціонально обмежте доступ обраним правом доступу
- Збережіть
- Увімкніть модуль у Обліковий запис → Модулі (
/account/modules) - він з’явиться в меню
URL з wildcard
URL модуля може закінчуватися на /* - тоді він ловить саму базову адресу і всі підшляхи:
-
myapp/*- працює під/myapp,/myapp/dashboard,/myapp/settings/profileтощо - Підшлях потрапляє до модуля як контекст навігації
Exact URL (без /*) відповідає лише на точну адресу. Якщо існує модуль з точним URL-ом і водночас інший з wildcard - точний має пріоритет.
Розширення наявних модулів
Хочете додати нову опцію до наявного модуля, напр. додаткову сторінку в розділі Organize чи новий вигляд у CRM? Достатньо використати / в URL модуля.
Впишіть як URL назву наявного модуля, скісну риску / та назву нової опції. Нова позиція з’явиться автоматично в меню цього модуля, поряд зі стандартними опціями.
Приклади
| URL модуля | Ефект |
|---|---|
organize/raporty |
Нова позиція Звіти в меню Organize |
crm/analiza |
Нова позиція Аналіз в меню CRM |
helpdesk/faq |
Нова позиція FAQ в меню Helpdesk |
Контроль доступу
Кожен модуль може мати задане право доступу (privilege). Якщо воно задане, модуль бачить і може відкрити лише користувач із цим правом. Якщо поле порожнє - модуль доступний для всіх залогінених користувачів.
URL-адреси
Кожен модуль доступний за двома адресами:
-
Чистий URL:
/url-modulu(напр./raporty) - основний шлях -
Запобіжник:
/m/url-modulu(напр./m/raporty) - завжди працює, навіть якщо URL конфліктує з наявним модулем