Автор Тема: Новый hook + копия модуля.  (Прочитано 39 раз)

12 Сентября 2016, 12:11:41
  • Новичок
  • *
  • Сообщений: 32
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Копирую модуль blockbestsellers.
Устанавливаю. При установке добавляю новый хук.

public function install()
    {
        $this->_clearCache('*');

        if (!parent::install()
            || !$this->registerHook('header')
            || !$this->registerHook('leftColumn')
            || !$this->registerHook('actionOrderStatusPostUpdate')
            || !$this->registerHook('addproduct')
            || !$this->registerHook('updateproduct')
            || !$this->registerHook('deleteproduct')
            || !$this->registerHook('displayHomeTab')
            || !$this->registerHook('displayHomeTabContent')
            || !$this->registerHook('aftercategory')
            || !ProductSale::fillProductSales()
        )
            return false;

        Configuration::updateValue('PS_BLOCK_BESTSELLERS_TO_DISPLAY', 10);

        return true;
    }

В админке он появляется https://yadi.sk/i/fWecXfCmv48T6

В шаблоне вывод делаю так
{hook h="aftercategory" mod="blockbestsellersinside"}
или так
{hook h="aftercategory"}

Но на страницах сайта он так и не появляется.

Что делаю не так?
12 Сентября 2016, 15:03:32
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 13139
  • Репутация: +14553/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Определение функции хука сделали? Шаблон какой он должен выводить?
12 Сентября 2016, 15:06:57
Ответ #2
  • Новичок
  • *
  • Сообщений: 32
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Определение функции хука сделали? Шаблон какой он должен выводить?
Нет наверно. Делал до текущего момента из какого то примера на форуме.
Можешь подсказать как?
12 Сентября 2016, 15:10:04
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 13139
  • Репутация: +14553/-0
  • Сообщество PrestaShop
    • Просмотр профиля
12 Сентября 2016, 15:23:52
Ответ #4
  • Новичок
  • *
  • Сообщений: 32
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
12 Сентября 2016, 15:50:18
Ответ #5
  • Новичок
  • *
  • Сообщений: 32
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Остался вопрос по модулю наверно самому:
 Если в instal убрать лишние хуки
public function install()
{
$this->_clearCache('*');

if (!parent::install()
|| !$this->registerHook('header')
//|| !$this->registerHook('leftColumn')
|| !$this->registerHook('actionOrderStatusPostUpdate')
|| !$this->registerHook('addproduct')
|| !$this->registerHook('updateproduct')
|| !$this->registerHook('deleteproduct')
//|| !$this->registerHook('displayHomeTab')
//|| !$this->registerHook('displayHomeTabContent')
|| !$this->registerHook('aftercategory')
|| !ProductSale::fillProductSales()
)
return false;

Configuration::updateValue('PS_BLOCK_BESTSELLERS_TO_DISPLAY', 10);

return true;
}

То пишет что нету товаров сейчас для отображения.

А если все хуки оставить то новый модуль выводится в левой колонке и на главной, и там где мне нужно.

Методом подбора выявил что на наличие товаров в модуле влияет !$this->registerHook('leftColumn'). Т.е. выведется в левой колонке и там где мне нужно. Вот как  отвязаться от левой колонки в копии модуля. при этом что бы в оригинале все осталось?
12 Сентября 2016, 17:24:47
Ответ #6
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Товары в модуле - функция getBestSellers.
Название leftColumn можно заменить на aftercategory. Или же удалить хуки hookLeftColumn hookRightColumn. Код из hookRightColumn использовать в вашем хуке.
if (!isset(BlockBestSellers::$cache_best_sellers))
BlockBestSellers::$cache_best_sellers = $this->getBestSellers($params);
$this->smarty->assign(array(
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
13 Сентября 2016, 13:34:45
Ответ #7
  • Новичок
  • *
  • Сообщений: 32
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Товары в модуле - функция getBestSellers.
Название leftColumn можно заменить на aftercategory. Или же удалить хуки hookLeftColumn hookRightColumn. Код из hookRightColumn использовать в вашем хуке.
if (!isset(BlockBestSellers::$cache_best_sellers))
BlockBestSellers::$cache_best_sellers = $this->getBestSellers($params);
$this->smarty->assign(array(

спасибо