
Лучший Ответ joejoker , 03 August 2013 - 05:02
Для старого элемента jbprice, подойдет вот такой код:
$arr = $item->getElements(); foreach($arr as $value){ if($value->config->type == 'jbprice'){ $sku = $value->getElementData()->sku; } }

Лучший Ответ joejoker , 03 August 2013 - 05:02
Для старого элемента jbprice, подойдет вот такой код:
$arr = $item->getElements(); foreach($arr as $value){ if($value->config->type == 'jbprice'){ $sku = $value->getElementData()->sku; } }
Отправлено 30 July 2013 - 07:38
Добрый день.
Сделал в teaser шаблоны вывода элементов каталога в виде таблицы по этому хорошему уроку:
http://forum.jbzoo.c...taloga-v-jbzoo/
Получилось так:
http://mnp-realty.ru...rkovskoe-shosse
Заметил хорошую фишку. Если у элемента JBPrice включить вывод ID (артикула) и не ввести само значение, то в шаблон full вставляется системное двухзначное значение и наоборот, указал свой id - он высветился.
Но почему-то в teaser продолжает выводиться системное значение как ни крути. Можно это побороть? Правильно ли я понимаю, что тогда надо из этого поля в шаблоне удалит вывод системного id и вывести второй элемент цены, но в нем указать только вывод артикула с отключенной ценой?
Проблема в том, что хочется id(артикул сделать минимум из трех символов, чтобы поисковый модуль позволял искать по этому полю, а в поиске должно быть не менее 3 символов.
Код вывода значений элементов тизера следующее:
<tr class="table-row item_<?php echo $item->id;?>"> <td class="hideANDseek" width="30"><?php echo $item->id; ?></td> <td><?php echo $this->renderPosition('title'); ?></td> <td><?php echo $this->renderPosition('image'); ?></td> <td class="hideANDseek" ><?php echo $this->renderPosition('road'); ?></td> <td class="hideANDseek" ><?php echo $this->renderPosition('location'); ?></td> <td class="hideANDseek" width="90"><?php echo $this->renderPosition('mkad'); ?></td> <td class="hideANDseek" ><?php echo $this->renderPosition('house-size'); ?></td> <td class="hideANDseek" width="90"><?php echo $this->renderPosition('land-size'); ?></td> <td width="120"><?php echo $this->renderPosition('price'); ?></td> </tr>
Сообщение отредактировал Shpagin: 30 July 2013 - 07:40
Отправлено 30 July 2013 - 12:15
Вот это вывод того самого системного id.
<?php echo $item->id; ?>
Вы хотите, чтобы вместо него выводился аритикул, указанный в элементе цены?
Отправлено 30 July 2013 - 19:36
Вы хотите, чтобы вместо него выводился аритикул, указанный в элементе цены?
Да
Отправлено 30 July 2013 - 21:16
К сожалению, внутри шаблона teaser, артикул можно получить при помощи вот такой, не совсем удобной и компактной конструкции:
$arr = $item->getElements(); foreach($arr as $value){ if($value->config->type == 'jbpriceadvance'){ $basic = $value->getElementData()->basic; $sku = $basic['sku']; } }
В итоге, в переменной $sku будет искомый артикул продукта.
Отправлено 02 August 2013 - 15:21
Простите, не знаю азов php
id у меня выводится в ячейку таблицы так:
<td class="hideANDseek" width="30"><?php echo $item->id; ?></td>
как должна выглядеть новая ячейка с вашим кодом?
Отправлено 02 August 2013 - 15:47
В самый верх файла, после
defined('_JEXEC') or die('Restricted access');
добавьте приведенный код
$arr = $item->getElements(); foreach($arr as $value){ if($value->config->type == 'jbpriceadvance'){ $basic = $value->getElementData()->basic; $sku = $basic['sku']; } }
А в самой таблице уже делайте вместо приведенного Вами куска кода
<td class="hideANDseek" width="30"><?php echo $sku; ?></td>
Сообщение отредактировал Sliapy: 02 August 2013 - 15:47
Отправлено 02 August 2013 - 15:51
В самый верх файла, после
defined('_JEXEC') or die('Restricted access');добавьте приведенный код
$arr = $item->getElements(); foreach($arr as $value){ if($value->config->type == 'jbpriceadvance'){ $basic = $value->getElementData()->basic; $sku = $basic['sku']; } }А в самой таблице уже делайте вместо приведенного Вами куска кода
<td class="hideANDseek" width="30"><?php echo $sku; ?></td>
Спасибо за ответ! Попробовал - почему-то в переменная $sku передает пустоту.
Сообщение отредактировал Shpagin: 02 August 2013 - 15:51
Отправлено 02 August 2013 - 15:52
Сбросьте все содержимое файла (не забывайте про кнопку "Код" форума).
Отправлено 02 August 2013 - 15:53
<?php defined('_JEXEC') or die('Restricted access'); $arr = $item->getElements(); foreach($arr as $value){ if($value->config->type == 'jbpriceadvance'){ $basic = $value->getElementData()->basic; $sku = $basic['sku']; } } ?> <tr class="table-row item_<?php echo $item->id;?>"> <td class="hideANDseek" width="30"><?php echo $sku; ?></td> <td><?php echo $this->renderPosition('title'); ?></td> <td ><?php echo $this->renderPosition('image'); ?></td> <td class="hideANDseek" width="90"><?php echo $this->renderPosition('gorod'); ?></td> <td class="hideANDseek"><?php echo $this->renderPosition('metro'); ?></td> <td class="hideANDseek"><?php echo $this->renderPosition('adres'); ?></td> <td class="hideANDseek" width="110"><?php echo $this->renderPosition('ploshad'); ?></td> <td class="hideANDseek" width="80"><?php echo $this->renderPosition('etazh'); ?></td> <td width="110"><?php echo $this->renderPosition('price'); ?></td> </tr>
вот тут это выводит:
http://mnp-realty.ru/apartments
Отправлено 02 August 2013 - 15:59
Это поле у Вас заполнено точно? Приведенный код берет артикул отсюда.
Я проверил все описанное лично на демо-сайте и у меня работает.
Сообщение отредактировал Sliapy: 02 August 2013 - 16:01