OpenCart – модуль видео YouTube

29 Мая 2022г. в 04:40

Основная задача любого интернет-магазина – продажа товаров и услуг. Ну а для того, чтобы товар лучше продавался, желательно его красиво преподнести. Этой цели в Опенкарт способствуют множество полей карточки товара: наименование, описание, картинки товара и прочие.

Однако, вполне возможно вы захотите не только показать товар на фотографиях, но и рассказать что-то о нем. В этом случае неплохо было бы иметь возможность добавить к карточке товара видео. В принципе, это вполне можно сделать, добавив видео в поле Описание, где можно воспользоваться соответствующей иконкой.

Но мне такой способ, честно говоря, не очень нравится, поскольку порой может вызывать проблемы, особенно при редактировании товаров. Поэтому, в данной статье мы воспользуемся вот этим модулем.

Модуль представляет из себя единственный файл XML, который мы установим из админки. Переходим в меню Дополнения – Установка дополнений и загружаем полученный файл модификатора.

После успешной установки не забываем сбросить кэш дополнений в меню Дополнения – Менеджер дополнений.

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



Добавим видео и посмотрим на результат:



Как видим, добавленное видео появилось. Но не спешите радоваться. Давайте попробуем перейти на страницу товара, на которой видео не добавлялось. Вверху страницы вы, вполне возможно, увидите такую ошибку:



Модуль не очень качественно написан, поэтому придется поправить ошибку нам. Удалим модуль в меню Дополнения – Менеджер дополнений, после чего снова не забудем почистить кэш дополнений на этой же странице. Теперь откройте файл XML модуля и найдите там следующие строки кода (строки 129-133):

$video_url_arr = parse_url($product_info['video']);
parse_str($video_url_arr['query'],$video_url_params);
$data['video'] = $video_url_params['v'];
$data['video_width'] = $product_info['video_width'];
$data['video_height'] = $product_info['video_height'];
1
2
3
4
5
$video_url_arr = parse_url($product_info['video']);
parse_str($video_url_arr['query'],$video_url_params);
$data['video'] = $video_url_params['v'];
$data['video_width'] = $product_info['video_width'];
$data['video_height'] = $product_info['video_height'];


Замените их такими:

if($product_info['video']){
$video_url_arr = parse_url($product_info['video']);
parse_str($video_url_arr['query'],$video_url_params);
$data['video'] = $video_url_params['v'];
$data['video_width'] = $product_info['video_width'];
$data['video_height'] = $product_info['video_height'];
}
1
2
3
4
5
6
7
if($product_info['video']){
$video_url_arr = parse_url($product_info['video']);
parse_str($video_url_arr['query'],$video_url_params);
$data['video'] = $video_url_params['v'];
$data['video_width'] = $product_info['video_width'];
$data['video_height'] = $product_info['video_height'];
}
Сохраним файл и попробуем установить модуль еще раз. Если вы нигде не ошиблись, тогда модуль не должен вызывать ошибок. К слову, выводимое видео будет не совсем адаптивным. Попробуйте самостоятельно изучить код модуля, найти там код вывода видео и сделать вывод видео адаптивным.