Стилі позицій в Zoo існують для того, щоб виводити елементи всередині шаблону матеріалу з потрібної версткою - будь це таблиця, блок або звичайний список. Буває так, що стандартних бракує, і рано чи пізно постає питання: «А як же вивести елементи використовуючи свою верстку, класи, id і т.д.?» Ось тут до нас на допомогу і приходять призначені для користувача стилі для позицій.
Стандартні стилі Zoo
Відкриваючи шаблони, ви напевно бачили такі рядки:
Функція renderPosition виводить всі елементи, які належать встановленої позиції. Вона має як мінімум 1 обов'язковий вхідний параметр - це назва позиції (з прикладу вище це subtitle), другий необов'язковий входить параметр - це масив налаштувань (з прикладу вище це array ( 'style' => 'block')). Масив налаштувань можна не передавати функції renderPosition, тоді всі елементи будуть виводитися за стандартним шаблоном default.
За замовчуванням Zoo має 8 стилів, подивитися їх можна в папці:
Там ви побачите наступні php-файли:
block.php - елементи всередині блоку div, блоку можна вказати class.
comma.php - всередині тега span, так само можна вказати клас.
default.php - без форматування - в рядок.
hyphen.php - рядок, розділяючи дефісом «-».
inline.php - рядок, розділяючи комою «,».
list.php - списком - li.
paragraph.php - елементи абзацами.
pipe.php - рядок, розділяючи «|».
Назва файлу - це ім'я стилю, яке передається в масив налаштувань. Наприклад, щоб вивести елементи списком нам досить написати:
стилі JBZoo
У JBZoo також присутні стилі позицій, і вони знаходяться вже в іншій папці, а саме в сайт / media / zoo / applications / jbuniversal / templates / catalog / renderer / element
Відкривши цю папку, ви побачите такі файли як:
Далі розберемо кожен по порядку.
Стиль JBblock і JBSubtitle
JBblock - за замовчуванням виглядає як стандартний стиль від Zoo (block). Але має ряд додаткових параметрів:
tag - можливість вказати, в якому тезі буде виводитися весь вміст елемента.
labelTag - показує, як буде виводитися заголовок, за замовчуванням strong.
wrapperTag - в якому тезі буде виводитися значення.
class - додає клас для назви елемента (label).
altlabel - за допомогою цього параметра можна замінити назву / заголовок (заміниться для всіх елементів всередині позиції).
clear - приймає значення true. false. за замовчуванням false. Якщо встановити в true, то після кожного виведеного елемента буде додаватися блок-роздільник:
Параметри для стилю прописуються за допомогою масиву в this-> renderPosition після зазначення назви позиції.
На виході, в вихідному коді, ви можете побачити такі класи, які прописуються для елементів:
index-
element-
element-
first / last - даний клас додається першому і останньому елементу відповідно. Першому буде присвоєно клас first, а останнім клас last.
JBSubtitle має все те ж саме що і JBblock, за виключення параметра tag. За замовчуванням встановлений розмір h2.
стиль JBTable
JBTable також включає в себе всі налаштування JBblock, але примусово встановлені наступні параметри:
Вони потрібні для того, щоб на виході виводилася таблиця. Оскільки ці параметри (labelTag. tag. wrapperTag) встановлені примусово для виведення таблиці, необхідно в масиві вказати тільки стиль 'style' => 'jbtable'.
Висновок таблиці і списку за допомогою стилю JBblock
JBblock досить універсальний. З його допомогою можна виводити як таблицю, не використовуючи jbtable, так і списки.
Щоб вивести елементи в таблиці, використовуючи jbblock, потрібно вивести позицію наступним чином:
А щоб вивести список, використовуйте наступну конструкцію:
Створення власного стилю позиції
У його створенні нічого важкого немає. Потрібні лише елементарні знання php і html. Наш стиль буде виводити елемент в зазначеному тезі, містити за замовчуванням клас, який також можна вказати примусово або він буде змінений. А також додамо можливість вказати тег і id заголовку елемента.
Створюємо php файл нашого стилю в папці:
назвемо його jbexample.php. Пишемо в файл наступні рядки:
Все готово, можна перевірити роботу нашого стилю. Відкриємо шаблон типу (full. Teaser і т.д.), наприклад, full і в будь-який з виведених позицій вкажемо тільки що створений нами стиль.
У мене є позиція anons. в якій він не вказана:
Ось цю позицію можна вивести за допомогою щойно створеного стилю. Додаємо другий параметр і вказуємо наш стиль.
Ви бачите, що 2 елементи виводяться в один рядок без тегів. Давайте це виправимо.
Додамо в функцію renderPosition наступне:
Якщо спробуємо відновити сторінку, то результат залишиться колишній, тому що ми не прийняли ці параметри в нашому стилі.
Для більш кращого розуміючи бажано зробити var_dump ($ params) в файлі jbexample.php і подивитися, що знаходиться в цій змінній. $ Params повертає масив з даними. Червоним відзначені ті самі дані, які ми вписували в функцію renderPosition трохи вище.
Приймаємо параметри в jbexample.php
От і все! Наш стиль готовий, і тепер можна їм милуватися.
Використовуючи власні стилі позицій, можна виводити свої елементи в будь-який верстці: обрамляючи їх потрібними тегами, дописуючи їм власні класи, id, атрибути, і багато іншого, що має місце в html.