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'];
}
Сохраним файл и попробуем установить модуль еще раз. Если вы нигде не ошиблись, тогда модуль не должен вызывать ошибок. К слову, выводимое видео будет не совсем адаптивным. Попробуйте самостоятельно изучить код модуля, найти там код вывода видео и сделать вывод видео адаптивным.