1

我想为安全区创建一个模板,但取决于登录名,取决于标题中出现的徽标。这是否可以使用 Business Catalyst 或者我需要一些其他类型的编码,比如 Javascript 或其他东西?

4

1 回答 1

1

是的,这是完全可能的。您需要确保启用 Liquid,因为这需要 Liquid 才能工作。这是我用来执行此操作的代码。

首先,我们需要知道登录的人属于哪个安全区域并分配信息:

{module_data resource="customers" version="v3" template="" collection="customerInfo" fields="id,firstName,middleName,lastName,company,email1,email2,email3,username,mobilePhone,wholesaler,webAddress" where="\{'$or':\[    \{'email1.value': '{{this.globals.user.email}}'\},\{'email2.value': '{{this.globals.user.email}}'\},\{'email3.value': '{{this.globals.user.email}}'\}\]\}"}

{%assign userInfo = customerInfo.items[0]-%}

然后,我们需要分配客户所属的安全区域:

{module_data resource="customers" subresource="securezones" resourceId="{{userInfo.id}}" version="v3" template="" collection="customerZones"}

{% if customerZones.totalItemsCount > 0 -%}

    {% for item in customerZones.items -%}

        {% case item.zoneId -%}
          {% when '13435' -%}
            {% assign wholesaler = 'True' -%}
          {% when '51' -%}
            {% assign customer = 'True' -%}
          {% else -%}
            {% assign no-portal = 'True' -%}
        {% endcase -%}

    {% endfor -%}

{% endif -%}

在上面的代码中,您会看到以下几行:

{% when '13435' -%}
    {% assign wholesaler = 'True' -%}

13435是安全区域的 ID 。用您的 ID 替换该号码。然后你有:

{% assign wholesaler = 'True' -%}

wholesaler是我分配给此安全区域成员的人的名称。您可以使用任何您喜欢的名称。您可以根据case需要添加任意数量的安全区域。

上面的代码所做的是告诉系统登录的人订阅了哪些安全区域。获得此信息后,您可以运行简单的逻辑检查:

{% if wholesaler == 'True' -%}
    <!-- CONTENT TO SHOW TO MEMBER OF THIS SECURE ZONE -->
{% elsif customer == 'True' -%}
    <!-- CONTENT TO SHOW TO MEMBER OF THIS SECURE ZONE -->
{% else -%}
    <!-- CONTENT TO SHOW TO EVERYONE ELSE -->
{% endif -%}

我应该注意,如果一个人是多个安全区域的成员,那么将显示每个安全区域的内容。

您还可以查看BC 提供的有关执行此操作的文档以获取更多信息。希望这些信息可以帮助指导您正确的方向。

于 2015-05-22T02:24:36.870 回答