我有一位客户根据客户要求定期更新其网站类别,并为每个类别添加单一级别的子类别。他使用BC管理员的“网站设置”下的“类别”部分添加这些类别和子类别。
我希望主页左侧有一个类别手风琴菜单,可在单个位置更新网站类别时进行更新。
当您在“类别”菜单上选择特定子类别时,我想要显示使用该子类别标识的Web应用项目列表。
我不想使用下拉列表。
这可能吗?我发现很难找到解决方案。
编辑 - 其他信息
类别菜单有效,谢谢。
我现在需要在页面的中心列显示一个可选择的子类别列表,其中包含以下过程:
在左侧列菜单中选择了类别,并且链接到类别html页面(例如 - category.html)变量被传递到标识所选类别的类别页面和要显示的2列子类别列表。仅列出与新闻稿相关的子类别。所有类别的单一类别页面 - 动态。
从中间列的2列列表中选择子类别。
显示子类别页面(例如subcategory.html),根据从子类别的选择传递的变量,相关的新闻稿显示在中心列的2列子类别列表下的摘要列表中。单个子类别页面 - 动态。
从新闻稿摘要列表中选择特定新闻稿时,会显示新闻稿页面(例如press-release.html)。变量从subcategory.html Press Release选项传递。单一新闻稿页面 - 动态。
3个变量:What category? What subcategory? What Press Release?
问题:显示具有相关新闻稿的2列子类别列表的代码是什么?应将类别ID变量传递给类别HTML页面。类别,子类别和新闻稿页面是动态的,根据传递给页面的变量显示。
类别和子类别是在BC管理员的网站设置>下创建的。类别。
如果其他人了解解决方案,请随时添加您的答案。
答案 0 :(得分:2)
您的问题需要分为几个部分:
我将解决第一部分。下面是一些示例代码,它将生成嵌套的ul
标记以匹配Classification结构:
{module_categorylist id="-1" template="" collection="allCats"}
{% assign oCount = 0 -%}
{% assign thisCatId = "-1" -%}
{% assign parentCatId_L0 = "-1" -%}
<ul>
{% for cat_L0 in allCats.items -%}
{% assign oCount = oCount | plus: 1 -%}
{% if cat_L0.parentId == parentCatId_L0 -%}
<li>
<a href="#{{ cat_L0.id }}">
{{ cat_L0.name }}
</a>
{% assign countedChildren = 0 -%}
{% for catCounter in allCats.items -%}
{% assign oCount = oCount | plus: 1 -%}
{% if catCounter.parentId == cat_L0.id -%}
{% assign countedChildren = countedChildren | plus: 1 -%}
{% endif -%}
{% endfor -%}
{% if countedChildren > 0 -%}
<span>(+)</span>
{% assign parentCatId_L1 = cat_L0.id -%}
{% comment -%} Recursion starts here ... {% endcomment -%}
<ul>
{% for cat_L1 in allCats.items -%}
{% assign oCount = oCount | plus: 1 -%}
{% if cat_L1.parentId == parentCatId_L1 -%}
<li>
<a href="#{{ cat_L1.id }}">
{{ cat_L1.name }}
</a>
{% assign countedChildren = 0 -%}
{% for catCounter in allCats.items -%}
{% assign oCount = oCount | plus: 1 -%}
{% if catCounter.parentId == cat_L1.id -%}
{% assign countedChildren = countedChildren | plus: 1 -%}
{% endif -%}
{% endfor -%}
{% if countedChildren > 0 -%}
<span>(+)</span>
{% assign parentCatId_L2 = cat_L1.id -%}
{% comment -%} Recursion starts here ... {% endcomment -%}
<ul>
{% for cat_L2 in allCats.items -%}
{% assign oCount = oCount | plus: 1 -%}
{% if cat_L2.parentId == parentCatId_L2 -%}
<li>
<a href="#{{ cat_L2.id }}">
{{ cat_L2.name }}
</a>
{% comment -%} Recursion ends here ... {% endcomment -%}
</li>
{% endif -%}
{% endfor -%}
</ul>
{% endif -%}
</li>
{% endif -%}
{% endfor -%}
</ul>
{% endif -%}
</li>
{% endif -%}
{% endfor -%}
</ul>
<p># of classifications: {{ allCats.items | size }}</p>
<p>"operation" count: {{ oCount }}</p>
(我原本希望这可以在卑诗省干净利落地完成,但是module_categorylist
tag不支持自定义模板,以及嵌套{for
循环中的错误行为导致我对正确递归的尝试失败了。 1}}语句。)
以下是输出的示例:
include
至于问题的其他部分,我建议existing solutions嵌套手风琴问题,并注意您可以将module_url
tag与<ul>
<li>
<a href="#14606">Company</a>
<ul>
<li>
<a href="#45412">sub Company</a>
<ul>
<li><a href="#45413">Sub Sub Company</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#14744">Customers</a></li>
<li>
<a href="#45414">Foo</a>
<ul>
<li>
<a href="#45415">Bar</a>
<ul>
<li><a href="#45416">Baz</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#14609">Products</a>
<ul>
<li>
<a href="#22634">Sub Products</a>
<ul>
<li><a href="#45418">More Third Level Products</a></li>
<li><a href="#45409">Third Level Products</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#14075">Root</a></li>
<li><a href="#14610">Solutions</a></li>
</ul>
<p># of classifications: 14</p>
<p>"operation" count: 224</p>
请求结合使用来检索标有给定分类的项目。