Як зробити елемент для 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 - перевірка вхідних даних після подачі матеріалу.
Ті самі методи, але з нижнім підкресленням, викликаються для повторюваних елементів.