从foreach on prestshop tpl文件中选择项目



我在产品中使用此代码。显示产品类别的TPL文件:

{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat}

<a href="{$link->getCategoryLink({$cat.id_category})}" title="{$cat.name}">{$cat.name}</a>, 

{/foreach}

结果类似如下:名称:升降机,机器,无齿轮,

问题是:我如何选择我想要展示的元素(仅升降机,仅机器或仅无齿轮)??

我需要从foreach元素位置显示一个元素。

你应该只向你的TPL传递你想要显示的类别(计算应该在PHP文件中完成,而不是Smarty)。

如果你想把脏的扔掉

{break}

显示第一个元素后,或者如果您想根据类别的名称显示某个类别只需编辑代码如下:

{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat}
{if $cat.name == "Lifts"}            
<a href="{$link->getCategoryLink({$cat.id_category})}" title="{$cat.name}">{$cat.name}</a>    
{/if}
{/foreach} 

使用if语句?

{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat}
{if $cat.name == 'Machines'}
<a href="{$link->getCategoryLink({$cat.id_category})}" title="{$cat.name}">{$cat.name}</a>, 
{/if}
{/foreach}
{assign var="loop_middle" value=Product::getProductCategoriesFull($product.id_product)|@count/2}
{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat name=foo}
{if $smarty.foreach.foo.last || $smarty.foreach.foo.iteration == $loop_middle|ceil}
<a href="{$link->getCategoryLink({$cat.id_category})}" title="{$cat.name}">{$cat.name}</a>
{/if}
{/foreach}

这将让你显示数组的最后一个元素(最后一个类别):

$smarty.foreach.foo.last

这将让你显示数组的中间元素(中间类别):

$smarty.foreach.foo.iteration == $loop_middle|ceil

最新更新