1

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

在分类页面上,我需要根据Best Sellers、New Releases等在列中显示产品。有类别设置了子类别。产品被分配到一个类别,可能还有一个子类别。

合唱

  • 合唱畅销书
  • 合唱新专辑

声乐

  • 声乐畅销书
  • 声乐新品

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

示例非工作代码:

<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>
4

2 回答 2

0

如果您还没有,您可能想要拿起 PCI 网络工具带。它是由 Ray Yates 编写的,并且有很好的文档记录。它是一个Miva Merchant 语言扩展模块,它可以让您出色地访问 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">

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

于 2012-06-07T15:02:52.700 回答
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>

根据需要在一页上显示尽可能多的类别重复此操作。

于 2015-03-02T05:45:36.787 回答