类别左侧手风琴菜单

时间:2015-03-06 21:40:48

标签: business-catalyst

我有一位客户根据客户要求定期更新其网站类别,并为每个类别添加单一级别的子类别。他使用BC管理员的“网站设置”下的“类别”部分添加这些类别和子类别。

我希望主页左侧有一个类别手风琴菜单,可在单个位置更新网站类别时进行更新。

当您在“类别”菜单上选择特定子类别时,我想要显示使用该子类别标识的Web应用项目列表。

我不想使用下拉列表。

这可能吗?我发现很难找到解决方案。

编辑 - 其他信息

类别菜单有效,谢谢。

我现在需要在页面的中心列显示一个可选择的子类别列表,其中包含以下过程:

  1. 在左侧列菜单中选择了类别,并且链接到类别html页面(例如 - category.html)变量被传递到标识所选类别的类别页面和要显示的2列子类别列表。仅列出与新闻稿相关的子类别。所有类别的单一类别页面 - 动态。

  2. 从中间列的2列列表中选择子类别。

  3. 显示子类别页面(例如subcategory.html),根据从子类别的选择传递的变量,相关的新闻稿显示在中心列的2列子类别列表下的摘要列表中。单个子类别页面 - 动态。

  4. 从新闻稿摘要列表中选择特定新闻稿时,会显示新闻稿页面(例如press-release.html)。变量从subcategory.html Press Release选项传递。单一新闻稿页面 - 动态。

  5. 3个变量:What category? What subcategory? What Press Release?

    问题:显示具有相关新闻稿的2列子类别列表的代码是什么?应将类别ID变量传递给类别HTML页面。类别,子类别和新闻稿页面是动态的,根据传递给页面的变量显示。

    类别和子类别是在BC管理员的网站设置>下创建的。类别。

    如果其他人了解解决方案,请随时添加您的答案。

1 个答案:

答案 0 :(得分:2)

您的问题需要分为几个部分:

  • 让BC呈现合适的HTML
  • 从该HTML
  • 创建嵌套的'accordion'
  • 根据所选分类更改页面内容

我将解决第一部分。下面是一些示例代码,它将生成嵌套的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> 请求结合使用来检索标有给定分类的项目。