Перейти к содержимому


Фотография
- - - - -

Отображение полей в шаблонах teaser и full.


Лучший Ответ Cheren-dow , 22 January 2016 - 08:57

4.1) Вывести цену и объём в обрамлённых прямоугольниках.

О каких прямоугольниках идет речь? Поместите позицию в какой то div и допишите ему css стили.

4.2) Автоматически дописывать к цене руб. и к объёму мл.

Похожая реализация есть на демо сайте с авто. Посмотреть можно в файле:

\media\zoo\applications\jbuniversal\templates\auto\renderer\element\jbads.php
Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 8

#1 BlackSpace

BlackSpace

Отправлено 22 January 2016 - 05:48

Здравствуйте. Сделал каталог косметики, где каждым товаром является бутылочка или баночка. Теперь необходимо настроить вид шаблонов. Сначала решил разобраться с шаблоном 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) Автоматически дописывать к цене руб. и к объёму мл.

 


  • 0

#2 BlackSpace

BlackSpace

Отправлено 22 January 2016 - 08:52

С вопросом 4.2 вроде разобрался. Исправил файл jbexample.php.

<?php
defined ( '_JEXEC' ) or die ( 'Restricted access' ); // Запрещаем прямой доступ к файлу
                                               // Вывод заголовка элемента
$label = ''; // Переменная, в которой будет хранится заголовок
$priceLabel = 'Price';
$volumeLabel = 'Volume';
/**
 * Т.к вывод заголовка можно указать в настройках элемента - это скрыть/показать.
 *
 * Необходимо сделать данную проверку.
 */

if (isset ( $params ['showlabel'] ) && $params ['showlabel']) {
	$label .= $element->config->get ( 'name' );
}
/**
 * Выводим значения элементов/
 * Функция render выводит в цикле значения элемента(ов)
 */
echo $label . $element->render ( $params );

if (strcmp ( $element->config->get ( 'name' ), $priceLabel ) == 0)
	echo " руб.";
else if (strcmp ( $element->config->get ( 'name' ), $volumeLabel ) == 0)
	echo " мл";
?>

  • 1

#3 Cheren-dow

Cheren-dow

Отправлено 22 January 2016 - 08:57   Лучший Ответ

4.1) Вывести цену и объём в обрамлённых прямоугольниках.

О каких прямоугольниках идет речь? Поместите позицию в какой то div и допишите ему css стили.

4.2) Автоматически дописывать к цене руб. и к объёму мл.

Похожая реализация есть на демо сайте с авто. Посмотреть можно в файле:

\media\zoo\applications\jbuniversal\templates\auto\renderer\element\jbads.php

  • 1
Изображение
 

#4 laRus

laRus

Отправлено 22 January 2016 - 09:00

О каких прямоугольниках идет речь? Поместите позицию в какой то div и допишите ему css стили.
Вот-вот!  :))
  • 0
..minimum effort for maximum effect? - Oh yeah! It's good!..

#5 BlackSpace

BlackSpace

Отправлено 22 January 2016 - 09:27

Прямоугольники имею ввиду div с border, например.

 

1) Есть Два элемента в одной позиции. Элементы называются Price и Volume, а позиция rectangles, стиль прописан в файле jbexample.php

2) Сейчас на сайт выводятся оба элемента в одной позиции таким образом - <ul> 100 руб. 300 мл </ul>

3) Как можно вывести эти два элемента в разных div и оставив их в одной позиции rectangles?


Сообщение отредактировал BlackSpace: 22 January 2016 - 09:29

  • 0

#6 Cheren-dow

Cheren-dow

Отправлено 22 January 2016 - 09:50

2) Сейчас на сайт выводятся оба элемента в одной позиции таким образом -
  • 100 руб. 300 мл

3) Как можно вывести эти два элемента в разных div и оставив их в одной позиции rectangles?

Используйте стиль позиции jbblock:

<?php echo $this->renderPosition('price', array('style' => 'jbblock')); ?>

Или сделайте вывод в div в своём стиле для позиции


  • 1
Изображение
 

#7 BlackSpace

BlackSpace

Отправлено 26 January 2016 - 09:13

 

Или сделайте вывод в div в своём стиле для позиции

Так и сделал. Создал несколько файлов со стилями, в них все прописываю.


  • 0

#8 Cheren-dow

Cheren-dow

Отправлено 26 January 2016 - 09:33

BlackSpace, вопрос решен топик  закрываем?


  • 0
Изображение
 

#9 BlackSpace

BlackSpace

Отправлено 26 January 2016 - 09:45

Да.


  • 0




Click to return to top of page in style!