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

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

как в плагине получить переменные товара по его ID ?

 (Прочитано 409 раз)
0 Пользователей и 1 Гость смотрят эту тему.
alexshab
Осваиваюсь на форуме
***

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

Сообщений: 53


« : 05.11.2016, 15:32:45 »

Доброго времени суток!

Пытаюсь подружить плагин JoomShopping Xmap c плагином Product_canonical, чтобы в Xmap были только канонические urlы товаров.
В плагине Product_canonical есть строка в которой определяется основная категория для товара:
$maincategory_id = $product->getCategory();
здесь весь код плагина:
Показать текстовый блок
Но в плагине JoomShopping для Xmap такой переменной нет.
Есть текущая категория - $row->category_id и id товара - $params['Itemid']
Вот основной код функции, которая отвечает формирование списка ссылок:
Показать текстовый блок
Подскажите, пожалуйста. Как мне, кроме текущeго id категории получить id основной, что бы поставить условие в цикле, для формирования списка.
Что-то типа if ( $row->category_id==$row->getCategory() )
Я уже экспериментировал, например, если в цикле поставить условие if ($row->category_id=='11')
то, в списке Xmap товары будут только в 11-й категории.
Вот, только $row->getCategory() - не работает.
Записан
dmitry_stas
Профи
********

Репутация: +925/-6
Offline Offline

Сообщений: 9770



« Ответ #1 : 05.11.2016, 15:37:08 »

$product = JTable::getInstance('Product', 'jshop');
$product->load($params['Itemid']);
if ($row->category_id == $product->getCategory()) {
    ////
}
Записан
alexshab
Осваиваюсь на форуме
***

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

Сообщений: 53


« Ответ #2 : 05.11.2016, 16:24:40 »

Спасибо!
Только, я там немного ошибся, id товара в цикле будет не - $params['Itemid']
а - $row->product_id
т.е. окончательный код условия
Код:
$product = JTable::getInstance('Product', 'jshop');
$product->load($row->product_id);
if ($row->category_id == $product->getCategory()) {
И, почему-то, не канонические ссылки вылезли в другом месте - ниже, в списке товаров производителя.
По-этому я цикл товаров производителя отключил.
Теперь, все Ок - список Xmap, прочистился.
+1))
Записан
Biss
Завсегдатай
*****

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

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



« Ответ #3 : 06.04.2017, 16:55:21 »

Тот же вопрос. Подскажите как написать, пожалуйста. Плагин должен получить название товара в карточке товара
Записан
dmitry_stas
Профи
********

Репутация: +925/-6
Offline Offline

Сообщений: 9770



« Ответ #4 : 06.04.2017, 20:02:39 »

какой именно плагин? уже написан?
Записан
Biss
Завсегдатай
*****

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

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



« Ответ #5 : 06.04.2017, 20:12:29 »

Да, это vrvote , находится в группе контент
Записан
dmitry_stas
Профи
********

Репутация: +925/-6
Offline Offline

Сообщений: 9770



« Ответ #6 : 06.04.2017, 21:32:44 »

если проблема получить product_id - то в карточке товара это
Код:
$product_id = JFactory::getApplication()->input->getInt('product_id');
Записан
Biss
Завсегдатай
*****

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

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



« Ответ #7 : 07.04.2017, 11:51:15 »

Не, наверно не то, напишу подробно.
В плагин добавил микроразметку aggregateRating
Для валидности кода Google требует обьект отзыва (название товара)
я сделал так (это выводит ид товара)
Код:
<meta property="v:itemreviewed" content="'.$params.'" >
а если пробую
Код:
<meta property="v:itemreviewed" content="'.$product->name.'" >
то ничего не выводит, то есть плагин должен сначала получить переменную этот самый 'name'
« Последнее редактирование: 07.04.2017, 11:54:39 от Biss » Записан
dmitry_stas
Профи
********

Репутация: +925/-6
Offline Offline

Сообщений: 9770



« Ответ #8 : 07.04.2017, 12:07:45 »

ну так а
Код:
$product = JTable::getInstance('Product', 'jshop');
$product->load(ID товара);
вы сделали?
Записан
Biss
Завсегдатай
*****

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

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



« Ответ #9 : 07.04.2017, 12:59:41 »

Получилось вывести только ид, а имя

Код:
$product = JTable::getInstance('product', 'jshop');
$product_id = JRequest::getInt('product_id');
Код:
<meta property="v:itemreviewed" content="'.$product_id.'" >
Записан
dmitry_stas
Профи
********

Репутация: +925/-6
Offline Offline

Сообщений: 9770



« Ответ #10 : 07.04.2017, 13:15:06 »

Цитировать
$product->load(ID товара);
Записан
Biss
Завсегдатай
*****

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

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



« Ответ #11 : 07.04.2017, 13:37:38 »

Код:
$product = JTable::getInstance('product', 'jshop');
$product->load(ID);

<meta property="v:itemreviewed" content="'.$product->name.'" >
не выводит
Записан
dmitry_stas
Профи
********

Репутация: +925/-6
Offline Offline

Сообщений: 9770



« Ответ #12 : 07.04.2017, 15:42:24 »

$product->{'name_ru-RU'}
Записан
Biss
Завсегдатай
*****

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

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



« Ответ #13 : 07.04.2017, 16:23:52 »

Спасибо, получилось.
Код:
$product = JTable::getInstance('product', 'jshop');
$product_id = JRequest::getInt('product_id');
$product->load($product_id);
$product->name = $product->{'name_ru-RU'};

<meta property="v:itemreviewed" content="'.$product->name.'" >
Записан
Страниц: [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