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