仅显示某些 Web 应用项目的 Web 应用程序
Web Apps to display only certain web app items
假设我们有一个 Web 应用程序,它有一个名为 Location
的下拉字段,其中包含墨尔本、阿德莱德、悉尼等选项
是否可以在页面上创建一个带有 Web 应用程序模块的新页面,以仅显示具有选择了 "Melbourne" 选项的 Web 应用程序项目的项目?
因为我只想输出在页面上选择了墨尔本选项的网络应用项目。所有其他项目(选择阿德莱德、选择悉尼等的项目)不显示在页面上?它甚至不应该出现在源代码中。
Liquid 可以实现这样的功能吗?我希望我知道更多 Liquid!
因为此刻我所做的只是:
{module_webapps id="123456" filter="all"}
然后只是 display:none;
我不想出现在页面上的项目,但这并不是很理想,因为即使你在页面上看不到它,它仍然可以阅读源代码。
我知道这可以使用分类然后显示带有分类的模块,但我不想使用这种方法。
我已经在 Adobe BC Forums 上回答了这个问题,但对于可能通过 Google 找到这个问题的其他人来说,这里是答案:
您可以在 Liquid 中使用 if 语句执行类似的操作。
这是概念:
<!-- Web App code, change to fit your needs (such as sortType, number per page, etc.) -->
{module_webapps id="123456" filter="all" resultsPerPage="500" sortType="date" collection="location" template=""}
<!-- FOR LOOP TO LOOP OVER THE COLLECTION -->
{% for i in location.items -%}
{% if i.['Location'] == 'Melbourne' -%}
<!-- Now only web app items with the Location set to Melbourne will show below. -->
<!-- Code for your web app item, for example:-->
{{i.name}} - {{i.['Location']}}
{% endif -%}
{% endfor -%}
当然,你不一定要使用集合,你可以将 if 语句放在任何布局中都可以。
您可以创建一个包含墨尔本、阿德莱德、悉尼等项目的新 "Locations" 网络应用程序,而不是在您当前的网络应用程序(我们称之为 "Cherries")中使用下拉字段,而是使用数据新 Locations 网络应用程序的源字段。
然后您的当前页面将是位置网络应用程序详细信息页面,使用您正在查看的任何项目的名称 {{name}}。代码如下所示:
{module_webapps id="Cherries" filter="all" collection="cherries" template=""}
{% for item in cherries.items -%}
{% if item.Location_name == {{name}} -%} {% comment -%} You could also use itemid instead of name here) {% endcomment -%}
...do something...
{% endif -%}
{% endfor -%}
这样您只需在详细信息页面中编写一次代码,而不必在自定义 Web 应用程序字段中对列表值进行硬编码或对各种 if 语句进行硬编码。
假设我们有一个 Web 应用程序,它有一个名为 Location
的下拉字段,其中包含墨尔本、阿德莱德、悉尼等选项
是否可以在页面上创建一个带有 Web 应用程序模块的新页面,以仅显示具有选择了 "Melbourne" 选项的 Web 应用程序项目的项目?
因为我只想输出在页面上选择了墨尔本选项的网络应用项目。所有其他项目(选择阿德莱德、选择悉尼等的项目)不显示在页面上?它甚至不应该出现在源代码中。
Liquid 可以实现这样的功能吗?我希望我知道更多 Liquid!
因为此刻我所做的只是:
{module_webapps id="123456" filter="all"}
然后只是 display:none;
我不想出现在页面上的项目,但这并不是很理想,因为即使你在页面上看不到它,它仍然可以阅读源代码。
我知道这可以使用分类然后显示带有分类的模块,但我不想使用这种方法。
我已经在 Adobe BC Forums 上回答了这个问题,但对于可能通过 Google 找到这个问题的其他人来说,这里是答案:
您可以在 Liquid 中使用 if 语句执行类似的操作。
这是概念:
<!-- Web App code, change to fit your needs (such as sortType, number per page, etc.) -->
{module_webapps id="123456" filter="all" resultsPerPage="500" sortType="date" collection="location" template=""}
<!-- FOR LOOP TO LOOP OVER THE COLLECTION -->
{% for i in location.items -%}
{% if i.['Location'] == 'Melbourne' -%}
<!-- Now only web app items with the Location set to Melbourne will show below. -->
<!-- Code for your web app item, for example:-->
{{i.name}} - {{i.['Location']}}
{% endif -%}
{% endfor -%}
当然,你不一定要使用集合,你可以将 if 语句放在任何布局中都可以。
您可以创建一个包含墨尔本、阿德莱德、悉尼等项目的新 "Locations" 网络应用程序,而不是在您当前的网络应用程序(我们称之为 "Cherries")中使用下拉字段,而是使用数据新 Locations 网络应用程序的源字段。
然后您的当前页面将是位置网络应用程序详细信息页面,使用您正在查看的任何项目的名称 {{name}}。代码如下所示:
{module_webapps id="Cherries" filter="all" collection="cherries" template=""}
{% for item in cherries.items -%}
{% if item.Location_name == {{name}} -%} {% comment -%} You could also use itemid instead of name here) {% endcomment -%}
...do something...
{% endif -%}
{% endfor -%}
这样您只需在详细信息页面中编写一次代码,而不必在自定义 Web 应用程序字段中对列表值进行硬编码或对各种 if 语句进行硬编码。