0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 2129 Просмотров
*

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Имеется плагин VM Product Import. Разработчик прекратил поддержку несколько лет назад.
Плагин выводит товар из virtuemarta в статью Joomla используя id товара для идентификации.
Возможно ли изменить плагин с использованием алиаса товара?
Для чего это нужно?
когда я добавляю новые товары, всё нормально им присваиваются новые id и ссылки не меняются.
Но если по какой либо причине, я полностью загружаю в VirtueMart базу товаров заново (с новыми добавленными), то id товаров меняется и ссылки в статьях становятся неверными.
А алиасы не меняются при полной загрузке, т.к. образуются от названия товара.
Прикрепляю код плагина. Не силен в программировании поэтому прошу помощи.
Спойлер
[свернуть]
*

sivers

  • Живу я здесь
  • 2541
  • 348 / 0
Re: Нужна помощь в изменении плагина
« Ответ #1 : 14.04.2021, 13:28:03 »
Для чего это нужно?
Судя по коду, товары можно выводить не только по ID, но и по полю sku (артикул). Попробуйте - может вам и переделывать ничего не надо.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Re: Нужна помощь в изменении плагина
« Ответ #2 : 14.04.2021, 14:01:48 »
Я это тоже видел. Пробовал вместо id указывать алиас.
Не показывает вообще. В настройках плагина тоже нет возможности поменять.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Нужна помощь в изменении плагина
« Ответ #3 : 14.04.2021, 15:01:49 »
Судя по коду, товары можно выводить не только по ID, но и по полю sku (артикул).
Не вижу в коде, по моему sku пустой из параметров плагина. Только запрос в БД по алиасу товара для получения ИД, и потом использовать ИД
Код
   $regex1   = '/{\s?vmimport\s+(.*?)}/i';         
      if(preg_match_all($regex1,$html,$matches, PREG_SET_ORDER))
      {   
         if((isset($matches[0][0]) && !empty($matches[0][0])) && (isset($matches[0][1]) && !empty($matches[0][1]))){
            $findtext = $matches[0][0];
            $pluginParams = $this->params;
            $params_init = array('id' => $matches[0][1],
                         'sku' => '',
*

varX

  • Живу я здесь
  • 2464
  • 141 / 5
  • разработка компонентов
Re: Нужна помощь в изменении плагина
« Ответ #4 : 14.04.2021, 15:14:28 »
Судя по коду, идентификатор товара можно получить из хештега плагина. Как выводится плагин? если что-то типа {vmimport id=1}, тогда попробуйте написать {vmimport sku = мойалиас}. Смотрел бегло, может не будет работать.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Re: Нужна помощь в изменении плагина
« Ответ #5 : 14.04.2021, 16:13:49 »
Выводится он так. В тексте материала Joomla ставится {vmimport 1761}, где цифра это id товара.
Пробовал вместо этого ставить данные из поля product_sku, например {vmimport bigstar-bs-ir02}.
Не показывает ничего.
*

sivers

  • Живу я здесь
  • 2541
  • 348 / 0
Re: Нужна помощь в изменении плагина
« Ответ #6 : 14.04.2021, 16:31:11 »
Пробовал вместо этого ставить данные из поля product_sku, например {vmimport bigstar-bs-ir02}.
Не показывает ничего.
В коде поиск по sku недопилен. Чтоб работало, попробуйте внести правку вот в этот блок:
Код
$product_id = (int)$userparams['id'];
      if($product_id == 0){
         $sku = $userparams['sku'];
Поменяйте там $sku = $userparams['sku']; на $sku = $userparams['id'];
Должно работать, если у вас нет sku, начинающихся цифрой.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Re: Нужна помощь в изменении плагина
« Ответ #7 : 14.04.2021, 16:39:04 »
Ура! Заработало! Огромное спасибо. Вроде работает.
Потестирую дальше.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться