Як зробити елемент для Zoo

Вступ

Багато користувачів Zoo/JBZoo навіть не підозрюють, що створення власних елементів це просто. Маючи базові знання PHP/JS, можна без проблем написати простий, але функціональний елемент.

У цій статті ми розглянемо та навчимося:

Створювати звичайні, повторювані та відправляються елементи.

Використовувати у них ajax.

Створювати клас, що відповідає за імпорт/експорт.

Створювати нові шаблони елементів у фільтрі.

Дізнаємося про системні події.

Як встановити елемент?

Установка полягає у створенні основної папки та файлів.

У нашому випадку є два місця, де можна створити елемент:

media/zoo/elements/ – стандартна папка zoo. Тут знаходяться всі базові елементи та елементи ядра.

Файлова структура елемента

Структура файлів і папок має виглядати так:

jbint – коренева папка елемента.

tmpl – папка для шаблонів.

default.php – шаблон простого виведення.

thousand.php - шаблон виведення з поділом тисячних.

edit.php - Висновок форми редагування в адміністративній частині.

jbint.php – основний файл нашого елемента.

Найменування класів

Ім'я класу будь-якого елемента має починатися з префікса Element та закінчуватися назвою.

Наприклад, класи стандартних елементів:

Найпростіший

Повторюваний

Відправляється

Повторюваний-відправляється

Ключові методи

Найпростіший

Анотація Element вимагає від нас визначити один метод.

edit - виводить інформацію в адміністративну частину.

Повторюваний

Спадкування від абстрактного класу ElementRepeatableзобов'язує нас перезавантажити один метод.

_edit - виводить інформацію в адміністративну частину для елемента, що повторюється.

Відправляється

Інтерфейс iSubmittable вимагає від нас визначити два методи:

renderSubmission - під час подання матеріалу висновок здійснюється з цього методу.

validateSubmission - перевірка вхідних даних після подачі матеріалу.

елемент, Що Відправляється-повторюваний елемент

Реалізація інтерфейсу iRepeatSubmittable вимагає від нас реалізації двох методів:

_renderSubmission - висновок при подачі матеріалу для елемента, що повторюється.

_validateSubmission - перевірка вхідних даних.

Якщо елемент повторюваний, то переважно використовуються методи з нижнім підкресленням, а сам екземпляр буде итерируемым.

У разі перевизначення якогось із методів (render, edit, getSearchData, hasValue) висновок повторюваного елемента лежатиме на ваших плечах у перевизначеному методі.

За що відповідає кожен із методів?

hasValue - цей метод викликається перед виведенням елемента. Відбувається перевірка на порожнечу, якщо null false він не виводиться.

edit – виводить форму редагування в адміністративну частину сайту.

render – виведення вмісту на сайт.

getSearchData - результати з цього методу потрапляють у mysql таблиці, дані з яких використовуються для пошуку та фільтрів.

renderSubmission - під час подання матеріалу висновок здійснюється з цього методу.

validateSubmission - перевірка вхідних даних після подачі матеріалу.

Ті самі методи, але з нижнім підкресленням, викликаються для повторюваних елементів.