2014-11-17 4 views
0

Привет, я пытаюсь сделать свой первый модуль.Как я могу получить список продуктов в заголовке?

Мне нужно получить копию или тот же массив $ products, когда я нахожусь на странице категории.

У меня этот код.

public function hookHeader($params) 
{ 

    if ('category' == $this->context->controller->php_self){ 

    $products = //Here I need the same products array from this category 

    $this->smarty->assign('products', $products); 
    } 

    return $this->display(__FILE__, 'views/templates/hook/header.tpl'); 
} 

Спасибо!

ответ

0

Попробуйте

$category = new Category (Tools::getValue('id_category'): 
$products = $category->getProducts($this->context->lang->id, 0 99); 

Это будет захватывать 99 продуктов из категории.

Почему вы не можете копировать продукты категории? Просто потому, что они еще не были назначены, когда вы звоните hookHeader, как CategoryController приходит после того

Кроме того, следует знать, что будет отображать содержимое в части, и если вы хотите, чтобы показать, что вы должны использовать hookDisplayTop

Кроме того, в 1.6 вы должны использовать $ this-> context-> smarty :)

+0

Спасибо Nemo за ваш ответ !! – JaviMetal

0

Вы должны:

  1. Проверьте, если список уже доступен в Smarty массиве: error_log(print_r($this->smarty,1));
  2. используйте устройство cateogry-страничный конкретный крюк, который уже проходит множество продуктов для вас (это зависит от того, что вам нужно делать). Если вам нужно добавить что-то в заголовок, это, вероятно, единственный крючок для вас. В противном случае перейдите к Hook.php, найдите метод exec(, добавьте error_log($hook_name) и посмотрите, какие крючки выполняются при открытии страницы категории. Там может быть крючок, который будет соответствовать вашим потребностям.
  3. Используйте статическую функцию Product:: или Category::, чтобы захватить все продукты самостоятельно.