Miva 5.5 - 按子类别过滤

时间:2012-06-07 14:46:34

标签: miva

“伟大的”Miva论坛禁止我注册并提出这个问题。不确定这里是否有任何可以帮助我...

在类别页面上,我需要根据畅销产品,新版本等在列中显示产品。 有子类别设置了类别。产品被分配到一个类别,可能还有一个子类别。

合唱

  • 合唱畅销书
  • 合唱新品

声乐

  • 声乐畅销书
  • 声乐新发行

所有父类别的名称都是一个单词,其子类别添加两个单词。类别页面将显示父类别中的所有产品,我只想过滤列中的每个产品。我试图用一个表达式将添加的两个单词与子类别名称的一部分进行比较。这样,无论您使用哪种父类别,都可以使用相同的代码。看起来像是非常基本但不起作用的东西。

非工作代码示例:

<div class="row">
<h2>Best Sellers</h2>
<mvt:foreach iterator="product" array="products">
<mvt:if expr="'Best '$'Sellers' IN g.category:name">
product display stuff here
</mvt:if>
</mvt:foreach>
</div>

<div class="row">
<h2>New Releases</h2>
<mvt:foreach iterator="product" array="products">
<mvt:if expr="'New '$'Releases' IN g.category:name">
product display stuff here
</mvt:if>
</mvt:foreach>
</div>

2 个答案:

答案 0 :(得分:0)

如果您还没有,可能需要拿起PCI Net Tool Belt。它由Ray Yates编写,并且有很好的文档记录。它是一个Miva Merchant Language Extension module,它可以让你很好地访问SMT不会的Miva Merchant(默认情况下)。

您遇到的问题是您正在查看不存在的变量。你的“范围”已经关闭。变量g.category_code在全局变量上下文中保存类别代码(我认为这可能会使g.category:name感到困惑)。您需要查看LOCAL变量上下文。

您的<mvt:foreach>看起来不错。

尝试更改您的代码:

<mvt:if expr="'Best '$'Sellers' IN g.category:name">

要:

<mvt:if expr="'Best '$'Sellers' IN l.settings:category:name">

甚至:

<mvt:if expr="'Best Sellers' IN l.settings:category:name">

这样你就不必进行不必要的连接。 ;)

答案 1 :(得分:0)

参加派对有点晚了,但我只是想方设法做到这一点并最终使用Emporium Plus Tool Kit。

<mvt:item name="toolkit" param="sassign|bestSellerCategory|best-sellers" />
<mvt:item name="toolkit" param="cxpc|pcount|g.bestSellerCategory" />

用您的类别代码替换畅销书。之后,您可以使用常规foreach来遍历产品

<mvt:foreach iterator="sub_product" array="sub_products">
<a href="/&mvte:sub_product:code;.html">&mvte:sub_product:name;</a>
</mvt:foreach>

重复您需要在一个页面上显示的多个类别。