InstantCMS 2

Система управління контентом InstantCMS 2.7 містить у собі низку вже готової функціональності для полегшення процесу створення компонента. Є готовий механізм будівельника форм, є механізм подій (hooks), можна створювати власні об'єкти на рівні двигуна, є навіть безкоштовний компонент для створення компонентів та багато іншого.

Однак, як і у будь-якої CMS завжди знайдуться речі, які можна допиляти. І в рамках цієї статті я розповім як можна зробити кілька сторінок із опціями в адмінці компонента.

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

Однак, якщо у вас дуже багато налаштувань, то виникає необхідність у тому, щоб розбити одну сторінку з опціями на різні, особливо якщо ви додатково вбудовуєте свої javascipt-и і хочете отримати більш ємні для налагодження форми.

І зробити це насправді дуже просто. Справа в тому, що в ядрі InstantCMS є вже майже готова функція (сама функція називається actionOptions) і налаштування компонента вона зберігає методом додавання і перезапису. Простіше кажучи, перед збереженням використовується наступний код:

Відповідно, щоб зробити кілька сторінок з опціями, потрібно лише створити внутрішній захищений метод усередині вашого backend контролера (скопіювавши його з ядра і злегка підкоригувавши), а потім усередині кожного екшену просто вказувати цей метод, передаючи ім'я потрібної форми, яке відповідає назві екшену. Виглядає це так:

Тепер, якщо вам потрібно кілька сторінок, то всередині бекенд достатньо буде вказувати наступне:

Як бачите, код стаєдуже легким і простим (включаючи поділ важких та великих форм). Також варто відзначити, що це не всі плюси такого підходу. Наприклад, ось кілька:

  1. Різні форми можуть дозволяти редагувати одні й ті самі налаштування
  2. Ви можете додавати додаткові перевірки під час виконання дій. Наприклад, зберігати або підвантажувати частину даних із власних таблиць
  3. Додавати свої повідомлення при збереженні даних