Автор Тема: Размещение модуля корзины покупатели в собственном хуке  (Прочитано 1584 раз)

03 Июня 2014, 18:25:17
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем добрый день!

Сегодня во второй раз в жизни влез в PrestaShop, и наткнулся на такой вопрос.

Я создал собственный хук по названием headerCart. Добавил его в БД, добавил во фронтконтроллер, в админке он отображается. Мне теперь надо взять корзину покупателя (AJAX) и впихнуть ее в созданный мною HOOK, чтобы отображалась там, где мне это надо. Как это сделать? :)
03 Июня 2014, 19:19:59
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 13642
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Смотрите модуль blockcart. Там все есть. Определение хука, определение переменных в шаблоне и самого шаблона для блока корзины.
04 Июня 2014, 15:16:40
Ответ #2
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А не подскажете что именно отвечает за расположение модуля? Я еще не успел разобраться со всем кодом.
04 Июня 2014, 16:20:16
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 105584
  • Репутация: +39547/-0
    • Просмотр профиля
    • Webstudio UwK
За расположение блока на странице отвечают хуки.
Hooks prestashop
Cоздание интернет сайтов Webstudio UwK
05 Июня 2014, 12:12:26
Ответ #4
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
За расположение блока на странице отвечают хуки.
Hooks prestashop

Виталий, я разобрался с тем, что модули выводятся через хуки. Проблема вот в чем:
1) Я создал собственный хук под названием headerCart
2) Расположил, не знаю пока верно или нет, его в шапке {$HOOK_headerCart}3) Через расположение модулей в админке он в мой созданный хук не перемещается, поэтому я залез в файл modules/blockcart/blockcart.php
4) Я вижу название хука в админке, и модуль расположен в хуке displayTop, но его нет в коде файла blockcart.php, там есть следующее:

public function hookTop($params)
{
$params['blockcart_top'] = true;
return $this->hookRightColumn($params);
}

public function hookDisplayNav($params)
{
$params['blockcart_top'] = true;
return $this->hookTop($params);
}

Я еще не совсем разобрался, но насколько я понимаю с первого взгляда, первый выводит blockcart_top в правой колонке, а второй в каком-то hookTop, который мне тоже не понятно за что отвечает.

Вот именно тут я не понимаю, как мне добавить функцию для вывода модуля blockcart в моем хуке headerCart.

Я перепробовал много вариантов, в том числе пытался менять код указанный выше на мой хук, и потом из раздела модулей делал сброс, чтобы изменения вступили в силу, но у меня либо ничего не происходило, либо фронтофис полностью переставал работать.

Вооот, я еще заметил только что в функции install есть какие-то registerHook.

public function install()
{
if (
parent::install() == false
|| $this->registerHook('top') == false
|| $this->registerHook('header') == false
|| $this->registerHook('actionCartListOverride') == false
|| Configuration::updateValue('PS_BLOCK_CART_AJAX', 1) == false
|| Configuration::updateValue('PS_BLOCK_CART_XSELL_LIMIT', 12) == false)
return false;
return true;
}

я впихнул в registerHook свой хук, в админке появилась теперь корзина в моем хуке, как теперь хук вывести?))
05 Июня 2014, 12:59:30
Ответ #5
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22220
  • Репутация: +17111/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
05 Июня 2014, 14:26:11
Ответ #6
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все я уже добавил в модули registerHook и функции для отображения, и вывел через {hook h="headerCart"} . И все работает. Тема закрыта пожалуй.