Как получить переменные $product в шаблоне пользовательского модуля в Prestashop 1.7

Как получить переменные $product в шаблоне пользовательского модуля в Prestashop 1.7

02.07.2019 02:45:36 Просмотров 75 Источник

Im борется с пользовательским модулем. Я хочу использовать переменную $product в пользовательском шаблоне модуля.

Это работает на каждой странице продукта, но не в категории, и домашняя страница дает мне ошибку отладки

Notice: Undefined index: product

любить

{$product.name}

Когда я заворачиваю его, как

 {foreach from=$products item="product"}
     {$product.name}
 {/foreach} 

тогда переменные $product работают, но я хочу только показать переменную, сопоставленную с продуктом.

Есть идеи?

Ive реализовал функции продукта из ps_specials со всеми необходимыми интерфейсами, такими как

 $products = $this->getSpecialProducts();

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

 return false;

Направьте меня, как получить переменную $product на страницах home и category (в файле пользовательского шаблона из пользовательского модуля в {hook h= 'displayProductListReviews' product=$product})


Редактировать.

Моя функция выглядит прямо сейчас

 public function hookDisplayProductListReviews($params){

    $templateFile = 'test.tpl';
    $products = $this->getSpecialProducts($params['product']);
    $this->context->smarty->assign(
        array(
            'products' => $products,
        )); 
    return $this->fetch('module:'.$this->name.'/'.$templateFile);
}

до сих пор так хорошо, потому что с

{foreach from=$products item=product} {$product->name} {/foreach}

я могу напечатать $product - >name, но...

Как использовать его без цикла foreach, который печатает имена всех продуктов, собранных в функции getSpecialProducts (из модуля ps_specials)?

У вопроса есть решение - Посмотреть?

Ответы - Как получить переменные $product в шаблоне пользовательского модуля в Prestashop 1.7 / How to get $product variables in custom module template in Prestashop 1.7

Marcin Jaworski

02.07.2019 05:14:32

Вы должны это сделать

public function hookDisplayProductListReviews($params){
    $products = $this->getSpecialProducts($params['product']);
}

При использовании {hook h='displayProductListReviews' product=$product}) product=$product будет в вывода $params, вы можете использовать print_r($params);die(); , чтобы посмотреть, что именно находится в этой переменной

https://stackoverflow.com/questions/56851731/how-to-get-product-variables-in-custom-module-template-in-prestashop-1-7/56854477#comment100293073_56854477
Привет. Твоя идея была правильной. Я отредактировал свой вопрос. Может быть, вы можете направить меня больше?
Закрыть X