Автор Тема: Проблема с интеграцией виджетов вконтакте на prestashop 1.6  (Прочитано 51 раз)

30 Ноября 2016, 06:37:57
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго времени суток!
Появилась необходимость добавить виджеты вконтакте (виджет сообщества и комментариев) на prestashop 1.6.0.9. Согласно документации для разработчиков на vk.com с генерировал код для вставки сообщества:
{literal}
<script type="text/javascript" src="//vk.com/js/api/openapi.js?136"></script>
<!-- VK Widget -->
<div id="vk_groups"></div>
<script type="text/javascript">
VK.Widgets.Group("vk_groups", {mode: 3, width: "220"}, № моей группы);
</script>
{/literal}
Добавил в колонку слева, использовав в качестве основы модуль "blockfacebook", шаблон blockfacebook.tpl. Но вместо виджета появился пустой прямоугольник. Тогда попробовал добавить в шаблон админки этого модуля - preview.tpl из папки blockfacebook/views/admin/_configure. Виджет в админке отображается без проблем. Попробовал добавить виджет в другие шаблоны на сайте, но он нигде не отображается кроме как на всплывающей странице быстрого просмотра товаров - product.tpl. Если просто отрываю страницу товара то виджета нет, а если быстрый просмотр, то он есть.
Проблема точно не в кеше, кеш отключен, включена принудительная перекомпиляция, другие изменения в шаблонах отображаются. Пробовал как на сервере так и на локалхосте.
Подскажите, в чем может быть проблема, в какую сторону стоит копать?

Заранее благодарю за совет!!!


30 Ноября 2016, 12:03:37
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85953
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
{literal}<script type="text/javascript" src="//vk.com/js/api/openapi.js?136"></script>{/literal}
<!-- VK Widget -->
<div id="vk_groups"></div>
{literal}<script type="text/javascript">
VK.Widgets.Group("vk_groups", {mode: 3, width: "220"}, № моей группы);
</script>{/literal}
Загрузку openapi.js проверьте. Отключите ККК.
03 Декабря 2016, 10:06:02
Ответ #2
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Загрузку openapi.js проверьте. Отключите ККК.
Помог ваш совет! Причина была во включенной опции ККК - Move JavaScript to the end. Получается нужные мне скрипты отправлялись в футер и работали не корректно. Нашел способ оставить функцию "Move JavaScript to the end" включенной и при этом чтобы необходимые скрипты выполнялись где прописаны. Теперь все ОК, Спасибо!
06 Декабря 2016, 20:29:33
Ответ #3
  • Новичок
  • *
  • Сообщений: 27
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нашел способ оставить функцию "Move JavaScript to the end" включенной и при этом чтобы необходимые скрипты выполнялись где прописаны.

А можно решение в студию?
07 Декабря 2016, 08:44:59
Ответ #4
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
А можно решение в студию?

Для моей версии 1.6.0.9 помогло это решение с переопределением класса media.php https://gist.github.com/hereswhatidid/8c8edef106ee95138b03#file-media-php
этот измененный вариант класса media.php кажется для версий 1.6.1.х, но его я не проверял https://github.com/PrestaShop/PrestaShop/pull/3875/files

В моем случае помогло для интеграции скрипта ВК, но сейчас появилась необходимость использовать скрипт jQuery для ввода номера телефона по маске, так вот сразу не заработало - "jQuery is not defined", а скрипт подключения плагина маски все равно попадает в футер. Если отключить Move JavaScript to the end, то маска работает. В общем нужно еще разбираться...