Business Catalyst:检查我们是否在Liquid的根URL上

时间:2016-10-03 23:39:01

标签: liquid business-catalyst

我想使用Liquid标记来测试正在查看的页面是否是主页(但特别是网站的根URL),例如www.mysite.com /

我尝试使用{{globals.get}},因为根据BC Documentation,这应该输出...

  

当前相对路径以及在URL中传递的查询参数。例如,对于URL   http://mtica1.businesscatalyst.com/_s1/s2?a=1&b=2的输出   模块是:

{
    "ID": "/_s1/s2",
    "a": "1",
    "b": "2"
}

[强调我的]

但是,Business Catalyst似乎并未始终如一地处理此Liquid标签。在网站根{{globals.get}}输出{}以及其他系统页面(例如电子商务布局)上,ID将替换为CatalogueID: "xxxxx",其中xxxxx是目录的ID,不是完全是“当前的相对路径”!

毋庸置疑,我无法按预期输出ID: "/"来定位网站根目录。

如何使用Liquid测试用户是否在根URL上?

2 个答案:

答案 0 :(得分:3)

编辑:我在此答案的开头添加了另一个解决方案,但我已经将原始解决方案保留在下方,以便其他人可以看到我经历的流程。

虽然我对下面详述的解决方案没有任何问题,但由于BC中的“空白”没有记录,我宁愿选择一个解决方案,如果BC Dev团队进行更新,也不会有可能被破坏。

新解决方案

您可以使用以下Liquid标记检查您是否是站点根目录:

    {module_pageaddress collection="page" template=""}
    {module_siteUrl collection="site" template=""}

    {% assign fullUrl = 'http://' | append: {{site.siteUrl}} | append: '/' -%}

    {% if page.pageUrl == {{fullUrl}} -%}

        // we are on the site root

    {% else -%}

        // we are not on the site root

    {% endif -%}

以前的解决方案

您可以使用以下Liquid标记测试您是否在站点根目录:

{% if globals.get == blank -%}
    // we are on the root URL - do something
{% else -%}
    // we are not on the root URL
{% endif -%}

此处的“关键”信息是关键字空白

我做了一些测试,发现由于{}而输出{{globals.get}}的唯一页面是根网址。 (注意:我没有对此进行详尽测试 - 如果您找到另一个输出{}的页面,请发表评论

我尝试了{% if globals.get == {} -%},但这只是针对所有网页,因为它们都在{}内有输出。

BC文档没有任何内容,但我发现this document提到了它并且惊讶,惊讶:它有效。

让我们只希望BC Dev团队不会改变阻止这种情况发生的事情。

答案 1 :(得分:-2)

实际上并不正确。 通过模块的系统页面和其他页面也会遇到这种情况。 Globals.get是数据,可以在主页上通过许多不同的内容发生,例如,如果您有谷歌分析或其他第三方跟踪,某些点击通过等等。 不幸的是,以上是一种非常不准确的方法。

你能解释一下你的目标是什么 - 为什么需要这个?