Здравствуйте. Сделал каталог косметики, где каждым товаром является бутылочка или баночка. Теперь необходимо настроить вид шаблонов. Сначала решил разобраться с шаблоном teaser.
Псевдоним каталога cosmetic, псевдоним типа материала cosmeticproducts.
1) Вначале создал файл jbzoo.cosmetic.less в соответсвующей директории .../jbuniversal/assets/less. Все изменения внутри него отображаются на страницах шаблона teaser. Замечательно.
2) В каждом товаре есть целый набор полей. Из них интересуют два поля - это цена и объём, назвал их Price и Volume. В шаблоне teaser хочу их выводить в прямоугольниках в рамочке. Оба поля сделаны просто как текстовые - Text и в данных полях нет указания в чём именно измеряется цена и объём - то есть просто числа в полях. Предполагаю, что можно как-то выводить автоматически руб. и мл.
3) Поглядев документацию и видео пришел к выводу, что нужно создавать свои позиции и стили.
Позиции.
3.1) Создал директорию .../jbuniversal/templates/bootstrap/renderer/item/cosmeticproducts и скопировал в нее шаблоны и файлы.
3.2) Отредактировал файл positions.xml в данной директории, добавив позицию rectangles. Позиция появилась в административной части joomla/jbzoo при редактировании шаблонов. В данную позицию мышкой и поместил Price и Volume. Подумал, что раз предполагается Price и Volume одинаково оформленные выводить, то их можно в одну позицию вынести.
Стили.
3.3) Создал файл jbexample.php в директории .../jbuniversal/templates/bootstrap/renderer/element/ со следующим содержимым:
1 <?php
2 defined('_JEXEC') or die('Restricted access'); // Запрещаем прямой доступ к файлу
3 // Вывод заголовка элемента
4 $label = ''; // Переменная, в которой будет хранится заголовок
5 /**
6 * Т.к вывод заголовка можно указать в настройках элемента - это скрыть/показать.
7 * Необходимо сделать данную проверку.
8 */
9 if (isset($params['showlabel']) && $params['showlabel']) {
10 $label .= $element->config->get('name');
11 }
12 /**
13 * Выводим значения элементов/
14 * Функция render выводит в цикле значения элемента(ов)
15 */
16 echo $label.$element->render($params);
17 ?>
Шаблон.
3.4) В файл teaser.php, который находится в директории .../jbuniversal/templates/bootstrap/renderer/item/cosmeticproducts добавил строки:
...
55 <?php if ($this->checkPosition('rectangles')) : ?>
56 <ul>
57 <?php echo $this->renderPosition('rectangles', array('style' => 'jbexample')); ?>
58 </ul>
59 <?php endif; ?>
...
3.5) В шаблоне teaser на сайте цена и объём выводятся просто как числа, следующие друг за другом. Замечательно.
4) Предполагаю, что базовый принцип создания своих позиций и стилей я понял из документации, но с деталями требуется Ваша помощь.
Вопросы.
4.1) Вывести цену и объём в обрамлённых прямоугольниках.
4.2) Автоматически дописывать к цене руб. и к объёму мл.