仅显示某些 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 语句进行硬编码。