Використання умов на прикладі макросу core navibar у шаблоні demodizzy
Актуально для версії 2.9.1
Зміст
Висновок посторінкової навігації
Для виведення посторінкової навігації в системі передбачено макрос %core navibar()%, див. "Корисні посилання".
Додамо до файлу /templates/demodizzy/xslt/modules/content/common.xsl перед іклюдами (include) наступний код:
Це шаблон для виведення результатів роботи макросу, тепер потрібно додати виклик макрос, для цього додамо файл /templates/demodizzy/xslt/layouts/default.xsl після виклику меню
Як ми бачимо головної сторінки в навігації не, так як вона не стоїть на одному рівні ієрархії зі сторінці "Каталог товарів", а ми б хотіли, щоб у навігації вона була присутня, це завдання вирішується версткою, додайте в перший у шаблоні виведення результатів макросу посилання на головну сторінку з текстом, тобто його остаточний код буде приблизно наступним:
а виглядатиме це ось так:
Виведення навігації на всіх сторінках, крім головної
Припустимо, ми не хочемо, щоб на головній сторінці виводився результат роботи макросу, оскільки це не має сенсу і псує зовнішній вигляд:
Для цього скористаємося конструкцією, див. "Корисні посилання".
Спочатку створимо змінну, яка буде відображатися, чи є ця сторінка головною, для цього помістіть у файл /templates/demodizzy/xslt/default.xsl, в ньому задані константи в demodizzy, наступний код:
Тепер у файлі /templates/demodizzy/xslt/layouts/default.xsl обрамимо виклик макросу %core navibar()% умовою, код набуде приблизно такого вигляду:
Тепер результат роботи макросу виводиться на всіх сторінках, крім головної.
Виведення навігації для системних сторінок
Як ми можемо помітити на системних сторінках, таких як кошик товарів, особистий кабінет, реєстрація та ін.макрос не виводить поточну назву сторінки:

Це через те, що макрос працює лише з ієрархічними сторінками, тобто тими, які Ви можете спостерігати у модулі "Структура", а системні сторінки ігноруються.
У цій ситуації нам знадобиться ще одна умова, якщо сторінка є системною, то виводити header сторінки, додаткову умову ми організовуватимемо за допомогою конструкції, див. "Корисні посилання".
Спочатку додамо нову змінну у файл /templates/demodizzy/xslt/default.xsl, якій присвоюватимемо значення header'а сторінки:
після цього додамо в перший шаблоні виведення результатів макросу конструкцію , код набуде наступного вигляду:

Якщо потрібно буде додати в цю умову інші системні сторінки, наприклад users/registrate/, або просто інші сторінки, потрібно буде дописати в умову:
додатковий and $request-uri != ' ', а в лапках вказати url сторінки.