Prestashop - 每个模板的主要类别

时间:2015-06-09 18:44:32

标签: php smarty prestashop prestashop-1.6 smarty3

我正在使用Prestashop进行电子商务网站。在'product.tpl'中我放了以下代码,我(最终)在网站上找到了它,它完全符合我的需求。

{assign var='category' value=Product::getProductCategoriesFull($product->id, $cookie->id_lang)}

{foreach from=$categories key='categoryId' item='category' name='category'}
    <a href="#">{$category['name']}</a>
 {/foreach}

这为我提供了11个主要类别的产品页面。效果很好。 现在我需要在实际列出类别和子类别的页面上放置相同的类别,我正在使用'category.tpl'。该代码不适用于该模板,根本不会加载任何内容。

主要的类别部分实际上应该从网站的每个页面上看到,作为标题的一部分。但我发现Prestashop对包含有问题,这将是PHP的常态。

我试图不使用我一直在寻找的所有“覆盖”。这是太多我不理解的代码。我可以稍微修改代码以在类别模板文件(以及网站上的任何其他模板文件)中工作吗?

1 个答案:

答案 0 :(得分:0)

您的代码段错误,或输入错误:

{assign var='category'

创建变量$category。但是,它立即被覆盖 from=$categories item='category' - &gt;外观创造了它自己的$category

我认为你的意思是{assign var='categories'。无论如何,代码可能仍然有效,因为$categories变量已经在产品页面中可用(每个产品都有一些类别)。

此外,您的第一个语句会抓取指定产品$product->id的类别。同样,$product仅在产品页面中可用(逻辑)。

如果您想独立于页面抓取所有类别,请尝试使用:

{assign var='all_categories' value=Category::getCategories(Context::getContext()->language->id)}
<pre>{$all_categories|@print_r}</pre>