- Як визначити макет виведення
- приклади перевизначень
- Перевизначення макета виведення тегів
- Перевизначення макета виведення іконок
Наша взаимовыгодная связь https://banwar.org/
Joomla дозволяє зробити редизайн практично будь-якій частині вашого сайту.
У попередньому матеріалі ми розібрали, як працюють перевизначення шаблонів . У цьому матеріалі ми будемо говорити про перевизначення макетів виведення, які відображаються за допомогою JLayout .
Перевизначення таких макетів є більш вузьким і конкретним, ніж перевизначення шаблонів. Перевизначення макетів дозволяє кастомизировать невеликі частини дизайну, наприклад: іконки, теги, посторінкову навігацію і т.п. Ця можливість з'явилася в Joomla 3.
Як визначити макет виведення
Макети, які використовує Joomla, розташовані в папці / layouts /. Виводяться вони за допомогою JLayout . Ось як може виглядати код виведення:
<? Php echo JLayoutHelper :: render ( 'joomla.content.icons', array ( 'params' => $ params, 'item' => $ this-> item, 'print' => false)); ?>
Ключ joomla.content.icons дозволяє визначити, який саме макет використовується для виведення. У цьому випадку, це буде /layouts/joomla/content/icons.php.
Ви можете зустріти і альтернативний варіант:
new JLayoutFile ( 'joomla.content.tags');
Тут ми бачимо, що для виведення використовується макет /layouts/joomla/content/tags.php.
приклади перевизначень
Як приклади перевизначень ми будемо використовувати шаблон Protostar.
Перевизначення макета виведення тегів
Давайте кастомізіруем HTML висновок тегів, який за замовчуванням виглядає наступним чином:
Ось як ми можемо використовувати перевизначення макетів для зміни кольору цих тегів:
- Скопіюйте файл tags.php з папки / layouts / joomla / content /
- Вставте файл tags.php в папку / templates / protostar / html / layouts / joomla / content /
- У рядку 22 файлу tags.php додайте наступний клас до тегу a: btn btn-primary (залиште за ним пусте місце). Ось як буде виглядати повний рядок коду:
<a href="/<?php echo JRoute::_(TagsHelperRoute::getTagRoute($tag-> tag_id. '-'. $ tag-> alias))?> "class =" btn btn-primary <? php echo $ link_class;?> ">
Тепер теги будуть виглядати ось так:
Перевизначення макета виведення іконок
За замовчуванням іконка друку і адреси електронної пошти має такий вигляд:
Давайте скористаємося перевизначенням макетів для зміни дизайну іконок:
- Скопіюйте файл icons.php з папки / layouts / joomla / content /
- Вставте файл icons.php впапку / templates / protostar / html / layouts / joomla / content /
- У файлі icons.php видаліть код, який починається з рядка 16 і до кінця файлу. Замість нього додайте наступний код:
<Div> <? Php if (empty ($ displayData [ 'print'])):?> <? Php if ($ canEdit || $ displayData [ 'params'] -> get ( 'show_print_icon') || $ displayData [ 'params'] -> get ( 'show_email_icon')):?> <? php // Note the actions class is deprecated. Use dropdown-menu instead. ?> <Ul> <? Php if ($ displayData [ 'params'] -> get ( 'show_print_icon')):?> <Li> <? Php echo JHtml :: _ ( 'icon.print_popup', $ displayData [ 'item'], $ displayData [ 'params']); ?> </ Li> <? Php endif; ?> <? Php if ($ displayData [ 'params'] -> get ( 'show_email_icon')):?> <Li> <? Php echo JHtml :: _ ( 'icon.email', $ displayData [ 'item' ], $ displayData [ 'params']); ?> </ Li> <? Php endif; ?> <? Php if ($ canEdit):?> <Li> <? Php echo JHtml :: _ ( 'icon.edit', $ displayData [ 'item'], $ displayData [ 'params']); ?> </ Li> <? Php endif; ?> </ Ul> <? Php endif; ?> <? Php else:?> <Div> <? Php echo JHtml :: _ ( 'icon.print_screen', $ displayData [ 'item'], $ displayData [ 'params']); ?> </ Div> <? Php endif; ?> </ Div>
Результат перевизначення:
На перший погляд, приклади не дуже вдалі, але суть їх у тому, щоб показати, як саме працюють перевизначення макетів JLayout . Загляньте в папку / layouts / joomla /. Ви побачите, що вже зараз є безліч макетів для перевизначення. І їх кількість потихеньку збільшується.
Якщо Вас зацікавив клас JLayout , То більш детально про нього ви можете прочитати в матеріалі Покращення JLayout в Joomla 3.2 .
Php echo JLayoutHelper :: render ( 'joomla.content.icons', array ( 'params' => $ params, 'item' => $ this-> item, 'print' => false)); ?Php echo JRoute::_(TagsHelperRoute::getTagRoute($tag-> tag_id. '-'. $ tag-> alias))?
Gt; "class =" btn btn-primary <?
Php echo $ link_class;?
Php if (empty ($ displayData [ 'print'])):?
Gt; <?
Php if ($ canEdit || $ displayData [ 'params'] -> get ( 'show_print_icon') || $ displayData [ 'params'] -> get ( 'show_email_icon')):?
Gt; <?
Php if ($ displayData [ 'params'] -> get ( 'show_print_icon')):?
Php echo JHtml :: _ ( 'icon.print_popup', $ displayData [ 'item'], $ displayData [ 'params']); ?