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


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

Вывести параметры цены только в определенной категории


Лучший Ответ ivanov , 24 May 2017 - 19:21

Не получилось этим способом.
Но вопрос решил.

Создал отдельный шаблон kits для цены с селектом (размер кольца)

Создал две позиции в шаблоне full - price1 - для всех товаров и price2 - для наборов и колец.

Вывел в эти позиции элемент цены, в одной подтянул шаблон full, во второй - шаблон kits.

В файле full.php в месте где выводится цена для каждой категории товаров (их слава Богу не много) сделал проверку на категорию.

В данном случае - категория с id=1 - Наборы:

<?php
$cats_id=$this->app->category->getItemsRelatedCategoryIds($item->id);
if(in_array(1,$cats_id)) : ?>
  <div>
    <?php if ($this->checkPosition('price2')) : ?>
        <?php echo $this->renderPosition('price2'); ?>
  </div> 
<?php endif; ?>

Спасибо обоим Евгениям от Евгения за участие и помощь!

Перейти к сообщению


Сообщений в теме: 11

#1 ivanov

ivanov

Отправлено 18 May 2017 - 19:07

Тема поднималась мной три года назад: http://forum.jbzoo.c...ы для категории

 

Пришло время и полностью с нуля пересобрали сайт. Перенесли товары со старого.

 

Joomla: 3.7.1 JBZoo: 2.3.1 Pro rev3231 Zoo: 3.3.26 WidgetKit: 1.5.5

 

Продается ювелирка.

Необходимо вывести обязательный параметр "Размер кольца" (Select) ( id - 408c79d4-3e5a-4d38-b433-66883acae525 ) в категориях "Наборы" ( id - 1) и "Кольца" (id - 4)

 

На старом это решили отдельным элементом цены с вариациями. Но было очень неудобно при обновлении цен через экспорт-импорт.

 

А сейчас еще и поменялась политика формирования цены и размер кольца уже на нее не влияет и необходим только как дополнительная информация для заказа.

 

Хотел бы воспользоваться тем хаком, что предложил Денис, но структура поменялась и прошу опять помощи.


  • 0

#2 ivanov

ivanov

Отправлено 22 May 2017 - 08:24

Упростили задачу - параметр не обязательный.

То есть если id категории = 1 или 4, то рендерить вывод элемента, иначе - не выводить его.

Понимаю, что проверку на категорию надо делать где-то тут: /jbuniversal/cart-element/price/option.php

Но не хватает мозгов.

Помогите.


  • 0

#3 MOKEV

MOKEV

Отправлено 22 May 2017 - 08:49

Проверять категорию можно через request

$category = $this->app->jbrequest->getSystem('category');
   switch ($category) {
      case "1":
      ...
      break;
      case "4":
      ...
      break;
   }

  • 1

#4 ivanov

ivanov

Отправлено 22 May 2017 - 11:41

 

Проверять категорию можно через request

$category = $this->app->jbrequest->getSystem('category');
   switch ($category) {
      case "1":
      ...
      break;
      case "4":
      ...
      break;
   }

Как это можно реализовать в моем случае?


  • 0

#5 ivanov

ivanov

Отправлено 22 May 2017 - 12:34

Попытался обрамить вывод селекта div-ом  в файле /jbuniversal/cart-elements/price/option/tmpl/select.php и по рецептам этой темы

http://forum.jbzoo.c...енной категории

попытался сначала вывести, а потом, наоборот, скрыть его через display: none в других категориях. Получаю или белый экран или просто отсутствие элемента во всех категориях.


Сообщение отредактировал ivanov: 22 May 2017 - 12:37

  • 0

#6 ivanov

ivanov

Отправлено 24 May 2017 - 11:57

Монолог практически...

Шел 7 день...

 

Может, действительно было бы логично не публиковать там, где нужно, а ноборот - скрыть там, где не нужно?

- к базе - что у нас за категория?

- если 2,3,5,6... то скрыть через CSS вот этот элемент: /jbuniversal/cart-elements/price/option/tmpl/select.php

<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Alexander Oganov <t_tapak@yahoo.com>
 */

// no direct access
defined('_JEXEC') or die('Restricted access');

?>

<span class="jbprice-option-select">
    <?php echo $this->_jbhtml->select($data, $this->getRenderName('value'), null, $this->getValue());?>
</span>

- иначе - вывести, как обычно.

но как же это правильно оформить....

может, на форуме спросить, у разработчиков, у коллег - пользователей?


  • 0

#7 CB9TOIIIA

CB9TOIIIA

Отправлено 24 May 2017 - 12:01

Зачем прямо в цене это делать?

 

В full.php сделайте условие как в примере выше (категории) и отображайте нужный шаблон цены.

 

Пробовали?


  • 0

#8 ivanov

ivanov

Отправлено 24 May 2017 - 12:18

Пробовали.

Я в первом посте писал, что на старом сайте реализовано было отдельным элементом цены с вариациями, для колец и наборов. Но неудобно при обновлении цен через импорт-экспорт. Товаров за 2000 на сайте...


  • 0

#9 CB9TOIIIA

CB9TOIIIA

Отправлено 24 May 2017 - 12:40

Пробовали.

Я в первом посте писал, что на старом сайте реализовано было отдельным элементом цены с вариациями, для колец и наборов. Но неудобно при обновлении цен через импорт-экспорт. Товаров за 2000 на сайте...

 

Тогда не понимаю сути вопроса...

 

"То есть если id категории = 1 или 4, то рендерить вывод элемента, иначе - не выводить его." - также почему проверку в full + тизер не делать?


  • 0

#10 ivanov

ivanov

Отправлено 24 May 2017 - 12:48

Это я Вас не правильно понял. Теперь дошло.

То есть надо сделать отдельный шаблон для цены без дополнительных параметров.

И вывести в full в позиции цены этот шаблон, но с условием. Так?

Шаблон отдельный для этих категорий я сделаю, не тизер буду выводить, а kitrings, например.

Подскажите, как это правильно оформить в full?


  • 0




Click to return to top of page in style!