Форум русской поддержки Joomla!® CMS
04.12.2016, 14:17:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Вывести текущую категорию в карточке товара

 (Прочитано 410 раз)
0 Пользователей и 1 Гость смотрят эту тему.
koshsh
Давно я тут
****

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 275



« : 21.11.2014, 14:40:41 »

Здравствуйте, довольно простая задачка, но нормального решения не нашел, возможно плохо искал.
Нашел такую конструкцию:

Код:
$table_product = JTable::getInstance('product', 'jshop');
            $table_product->load($product->product_id);
            $table_category = JTable::getInstance('category', 'jshop');
            $table_category->load($table_product->getCategory());
            $category_name = $table_category->getName();
            echo $category_name;

Хоть и генерит лишние запросы, но вроде название категории выводит. Однако нашел баг, если товар назначен нескольким категориям то выводится первая по списку, что портит всю малину...

Подскажите какие есть еще решения?
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3568


« Ответ #1 : 21.11.2014, 14:51:47 »

Так, наверное
Код
$table_category = JTable::getInstance('category', 'jshop');
$table_category->load($this->category_id);
$category_name = $table_category->getName();
echo $category_name;
 
Записан
dmitry_stas
Профи
********

Репутация: +795/-4
Offline Offline

Сообщений: 7740



« Ответ #2 : 21.11.2014, 14:57:30 »

Цитировать
Нашел такую конструкцию:

по шаловливым ручкам бы за такое... Azn в 3 раза больше запросов чем нужно...
 
а кстати если плагином сделать, то вообще без дополнительных запросов можно обойтись
Записан
koshsh
Давно я тут
****

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 275



« Ответ #3 : 21.11.2014, 15:01:41 »

Так, наверное
Код
$table_category = JTable::getInstance('category', 'jshop');
$table_category->load($this->category_id);
$category_name = $table_category->getName();
echo $category_name;
 

Спасибо, работает!
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3568


« Ответ #4 : 21.11.2014, 15:32:12 »

а кстати если плагином сделать, то вообще без дополнительных запросов можно обойтись
Точно, в $controller->display() $category->name уже есть.
Записан
dmitry_stas
Профи
********

Репутация: +795/-4
Offline Offline

Сообщений: 7740



« Ответ #5 : 21.11.2014, 15:45:20 »

угу. там вся $category есть. в onBeforeCheckProductPublish поймать, а в onBeforeDisplayProductView во $view засунуть
Записан
Biss
Завсегдатай
*****

Репутация: +64/-0
Offline Offline

Пол: Мужской
Сообщений: 659



« Ответ #6 : 11.10.2015, 14:46:05 »

Понадобилось тоже вывести название категории в карточку. По всей видимости плагина не придумали? Можно поступить как предложил robert ? Я попробовал, работает, но может что-то изменилось с тех пор, тема устарела немного ?
Записан
dmitry_stas
Профи
********

Репутация: +795/-4
Offline Offline

Сообщений: 7740



« Ответ #7 : 11.10.2015, 14:51:52 »

все по прежнему
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet