Автор Тема: Tmmediaparallax не отображается в хуке: DisplayTopColumn  (Прочитано 283 раз)

21 Февраля 2016, 17:50:49
  • Пользователь
  • **
  • Сообщений: 61
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем доброго времени суток. Изъял из шаблона Модуль: tmmediaparallax.
Решил вставить его в стандартный. Для этого прописал в php модуля:
}
public function hookDisplayTopColumn($params){

$this->context->controller->addCSS($this->_path.'css/tm-media-parallax-styles.css');
$this->context->controller->addJS($this->_path.'js/tm-media-parallax.js');
$this->context->controller->addJS($this->_path.'js/device.min.js');

$this->getItems();

$this->context->smarty->assign('base_path', __PS_BASE_URI__);
$this->context->smarty->assign('media_path', 'modules/tmmediaparallax/media/');
$this->context->smarty->assign(
array(
'smooth_scroll_on' => Configuration::get('smooth_scroll_on'),
'smooth_scroll_time' => Configuration::get('smooth_scroll_time'),
'smooth_scroll_distance' => Configuration::get('smooth_scroll_distance'),
)
);

return $this->display(__FILE__, 'tmmediaparallax.tpl');
}
Но модуль не отображается на сайте. Отображается только в хуке header, и то позади других модулей. Помогите исправить эту проблему. Надо чтоб отображался в хуке TopColumn.
21 Февраля 2016, 19:43:53
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 85953
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Чтобы модуль выводился в хуке нужно добавить этот хук в
public function install()
{
if (parent::install() &&
$this->registerHook('displayTopColumn') &&
..........
22 Февраля 2016, 10:00:24
Ответ #2
  • Пользователь
  • **
  • Сообщений: 61
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Чтобы модуль выводился в хуке нужно добавить этот хук в
public function install()
{
if (parent::install() &&
$this->registerHook('displayTopColumn') &&
..........
Добавить в php файл модуля? А код, который я прописал удалять?
22 Февраля 2016, 10:02:54
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 85953
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Код оставить, добавить этот хук в install().
22 Февраля 2016, 12:03:53
Ответ #4
  • Пользователь
  • **
  • Сообщений: 61
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не отображается. Появляется только в хуке #header.
22 Февраля 2016, 12:17:20
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 32991
  • Репутация: +26759/-0
    • Просмотр профиля
Зайдите в Модули > Расположение блоков, проверьте какие модули в хуке displayTopColumn.
Есть там ваш модуль?
Если нет, значит вы не добавили хук в установку в function install() или не переустановили модуль после добавления хука в function install().
22 Февраля 2016, 13:26:27
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 85953
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
1. Изменить установку хука в функции
public function install()заменить
$this->registerHook('displayNav')на
$this->registerHook('displayTop')
2.Изменить или добавить хук, в нем указать шаблон и переменные шаблона.
public function hookDisplayTop($params)
3. Переустановить модуль.

Остается только изменить названия хуков.
23 Февраля 2016, 15:49:30
Ответ #7
  • Пользователь
  • **
  • Сообщений: 61
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все равно модуль не отображается. Зарегистрировал и добавил его практически во все хуки. Самое интересное, что модуль выводится на страницу, а его контент не отображается (изображение за текстом, смотрите скрин).
23 Февраля 2016, 16:04:54
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 2174
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Может ты не заполнил переводы, на сайте сколько языков?
23 Февраля 2016, 16:25:21
Ответ #9
  • Пользователь
  • **
  • Сообщений: 61
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Может ты не заполнил переводы, на сайте сколько языков?
А разве для отображения мультимедийного контента нужно несколько языков на саите?
23 Февраля 2016, 16:54:18
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 2174
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Это завит от модуля, как в нем сделано. Может мультиязычный, а может только один.
23 Февраля 2016, 17:10:20
Ответ #11
  • Пользователь
  • **
  • Сообщений: 61
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это завит от модуля, как в нем сделано. Может мультиязычный, а может только один.
С переводом все нормально. Ничего понять не могу, почему отображается только в header-е!
23 Февраля 2016, 18:08:09
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 2174
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
В модуле зависимостей нет? Может он не работает без конфигуратора темы или другого модуля из этой темы?
24 Февраля 2016, 01:53:08
Ответ #13
  • Пользователь
  • **
  • Сообщений: 61
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В модуле зависимостей нет? Может он не работает без конфигуратора темы или другого модуля из этой темы?
В принципе нет. А местоположение модуля зависит от модуля, к которому мы хотим его приклеить. В моем случае этот модуль: tmhtmlcontent.
24 Февраля 2016, 09:34:13
Ответ #14
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Покажите файл php модуля.
Подключение стилей, javascript должно быть в хуке
public function hookDisplayHeader($params)
{
    $this->context->controller->addCSS($this->_path.'css/tm-media-parallax-styles.css');
    $this->context->controller->addJS($this->_path.'js/tm-media-parallax.js');
    $this->context->controller->addJS($this->_path.'js/device.min.js');
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.