可用的 Liquid 对象
备注
从 2022 年 10 月 12 日起,Power Apps 门户更名为 Power Pages。 详细信息请参阅:Microsoft Power Pages 现已正式发布(博客)
不久后我们将迁移 Power Apps 门户文档并将其与 Power Pages 文档合并在一起。
Liquid 对象包含将动态内容输出到页面的属性。 例如,page 对象有一个称为 title 的属性,可用于输出当前页面的标题。
若要按名称访问对象属性,请使用句点 (.)。 要呈现模板中的对象的属性,请使用 {{ and }} 括住它。
重要
为了避免可能的跨网站脚本 (XSS) 问题,每次使用 Liquid 对象读取由用户提供的不受信任的数据时,请始终使用转义筛选器对数据进行 HTML 编码。
{{ page.title }}
也可以通过使用字符串名称和 [] 访问对象属性。 此格式在动态确定所需属性或属性名称包含字符、空格、特殊字符等情况下很有用,在这些情况下,在语法中使用句点 (.) 将导致无效。
{{ page[title] }}
{% assign attribute_name = Name with spaces %}
{{ object[attribute_name] }}
下列对象可以任何位置在所有模板中使用和访问。
对象 | 描述 |
---|---|
实体 | 允许您按 ID 加载任何 Power Apps 表。 详细信息: 实体 |
现在 | 在模板呈现时,将引用当前 UTC 时间的日期/时间对象。 注释:此值由门户 Web 应用缓存,不会每次刷新。 详细信息: 日期筛选器 |
页面 | 引用当前门户请求页面。 page 对象提供对类似于当前页面的导航痕迹、当前页面的标题或 URL、基础 Power Apps 记录的任何其他属性或相关实体等内容的访问。 详细信息: 页面 |
参数 | 请求参数的便捷快捷方式。 详细信息: 请求 |
请求 | 包含有关当前 HTTP 请求的信息。 详细信息: 请求 |
设置 | 允许您按名称加载任何网站设置。 详细信息: 设置 |
站点地图 | 允许访问门户站点地图。 详细信息: 站点地图 |
网站标记 | 允许您按名称加载任何网站标记。 详细信息: 网站标记 |
片段 | 允许您按名称加载任何内容片段。 详细信息: 片段 |
用户 | 引用当前门户用户,允许对基础 Power Apps 联系人记录的所有属性的访问。 如果没有用户登录,此变量将为 null。 详细信息: 用户 |
Web 链接 | 允许您按名称或 ID 加载任何 Web 链接集。 详细信息: weblinks |
网站 | 引用门户网站记录,允许对门户的 Power Apps 网站 (adx_website) 记录的所有属性的访问。 详细信息: 网站 |
广告
提供访问和呈现广告的功能。
ads 对象允许您选择特定的广告或广告位置:
<div>
{% assign ad = ads[Ad Name] %}
<h4>{{ ad.title }}</h4>
<a href={{ ad.redirect_url }}>
<img src={{ ad.image.url }} alt={{ ad.image.alternate_text }} />
</a>
</div>
Ads 属性
属性 | 说明 |
---|---|
placements | 返回 adplacements 对象。 |
[广告名称或 id] | 可以按其名称或属性访问广告。 {% assign ad = ads[Ad Name] %} {% assign ad = ads["da8b8a92-2ee6-476f-8a21-782b047ff460"] %} |
广告位置属性
属性 | 说明 |
---|---|
[广告位置名称或 id] | 可以按其名称或 ID 属性访问任何 adplacement。{% assign placement = ads.placements[Placement Name or Id] %} {% assign placement = ads.placements[2423d713-abb3-44c3-8a7d-c445e16fccad] %} |
广告位置属性
广告展示位置是一个表对象,此对象具有相同的常规属性以及下列属性。
属性 | 描述 |
---|---|
广告 | 返回与位置关联的广告对象集合。 迭代标记和数组筛选器可以与此集合一起使用。 |
客户 | 返回广告位置的名称字段。 |
placement_url | 可用于检索由模板完全呈现的广告位置的 URL。 |
random_url | 可用于从由模板完全呈现的位置检索随机广告的 URL。 |
广告属性
备注
广告是一个表对象,具有所有相同属性,除了下面列出的属性之外。
属性 | 说明 |
---|---|
ad_url | 可用于检索由模板完全呈现的广告的 URL。 |
副本 | 返回广告的副本字段。 |
图像 | 返回广告的图像对象(如果有)。 |
客户 | 返回广告的名称字段。 |
open_in_new_window | 如果 redirect_url 指定的 URL 应在新窗口中打开,返回 true。 |
redirect_url | 通过选择广告将把用户重定向到的 URL。 |
广告图像属性
属性 | 说明 |
---|---|
alternate_text | 返回将显示在标记的 alt 属性中的文本。 |
height | 返回图像的高度(像素) |
URL | 返回图像的 URL 源。 |
width | 返回图像的宽度(像素) |
博客
提供访问和呈现博客和博客文章的功能。
blogs 对象允许您选择特定的博客或博客文章。
{% assign posts = blogs.posts | paginate: 0,4 %}
<div class=content-panel panel panel-default>
<div class=panel-heading>
{% assign sitemarker = sitemarkers["Blog Home"] %}
{% assign snippet = snippets[Home Blog Activity Heading] %}
<a class=pull-right href={{sitemarker.url}}> All Blogs </a>
<h4>
<a class=feed-icon fa fa-rss-square href={{ blogs.feedpath }} />
{{ snippet.adx_value }}
</h4>
</div>
<ul class=list-group>
{% for post in posts.all %}
<li class=list-group-item >
<a class=user-avatar href={{ post.author_url }}>
<img src={{ post.user_image_url }} />
</a>
<h4 class=list-group-item-heading>
<a href={{ post.app_relative_path }}>{{ post.title }}</a>
</h4>
<div class=content-metadata>
<abbr class=timeago>{{ post.publish_date }}</abbr>
–
<a href={{ post.author_url }}> {{ post.author_name }} </a>
–
<a href={{ post.application_path }}#comments>
<span class=fa fa-comment aria-hidden=true></span> {{ post.comment_count }}
</a>
</div>
</li>
{% endfor %}
</ul>
</div>
blogs 对象
博客对象允许您访问门户中的所有特定博客,或访问门户中的所有博客文章。
下表说明与 blogs 对象关联的属性。
属性 | 说明 |
---|---|
公告 | 返回包含门户中所有博客文章的 blogposts 对象。 |
[博客名称或 id] | 可以按其名称或 ID 属性访问任何博客。 |
{% assign blog = blogs["Blog Name"] %}
{% assign blog = blogs["da8b8a92-2ee6-476f-8a21-782b047ff460"] %} |
blog 对象
blog 对象允许您处理单个博客,使您可以访问该博客的文章。
下表说明与 blog 对象关联的各个属性。
属性 | 说明 |
---|---|
公告 | 返回包含博客的所有博客文章的 blogposts 对象。 |
客户 | 博客的名称。 |
title | 博客的标题。 |
URL | 博客的 URL。 |
blogposts 对象
blogposts 对象允许您访问博客文章对象的集合。 您可以预订博客文章,并使用 Liquid 筛选器实现分页:
{% assign blogposts = blogs.posts | order\_by “adx\_name”, “desc” | paginate: 0,4 | all %}
其他可能的选项:
blogs.posts.all
(获取所有博客文章)blogs.posts | from\_index: 0 | take: 2
下表说明与 blogposts 对象关联的各个属性。
属性 | 说明 |
---|---|
所有 | 返回集合中的所有 blogposts 对象 |
blogpost 对象
引用单个博客文章。
下表说明与 blogpost 对象关联的各个属性。
属性 | 描述 |
---|---|
url | 博客的 URL。 |
内容 | 返回博客的内容字段。 |
作者 | 返回文章的作者(即联系人表对象)。 |
标题 | 博客的标题。 |
comment_count | 返回指定博客评论数量计数的整数值。 |
publish_date | 博客发布的日期。 |
实体
注意
为避免潜在的跨站脚本 (XSS) 问题,无论何时使用实体 Liquid 对象读取不可信用户提供的数据,请始终使用转义筛选器对字符串数据进行 HTML 编码。
备注
Dataverse 的一些命名约定已经改变,例如,Dataverse 实体现在称为表。 名称更改不适用于 Liquid 对象。 Liquid 实体对象将继续称为实体。
允许您按 ID 加载任何 Power Apps 表。 如果表存在,表对象将返回。 如果具有指定 ID 的表未找到,null 将返回。
{% assign account = entities.account['936DA01F-9ABD-4d9d-80C7-02AF85C822A8'] %}
{% if account %}
{{ account.name | escape }} ({{ account.statecode.label | escape }})
{% endif %}
{% assign entity_logical_name = 'contact' %}
{% assign contact = entities[entity_logical_name][request.params.contactid] %}
{% if contact %}
{{ contact.fullname | escape }} ({{ contact.parentcustomerid.name | escape }})
{% endif %}
Entity
实体对象提供对 Power Apps 表记录的属性的访问。
属性 | 描述 |
---|---|
编号 | 表的 GUID ID,作为字符串。 例如,936DA01F-9ABD-4d9d-80C7-02AF85C822A8 |
logical_name | 表的 Power Apps 逻辑名称。 |
备注 | 加载与表关联的任何注释(批注),顺序从旧到新 (createdon)。 注意作为注释对象返回。 |
权限 | 加载表的表权限声明结果。 结果作为权限对象返回。 |
URL | 返回表的 Power Apps 表内容管理系统 URL 路径。 如果表在当前网站没有有效的 URL,返回 null。 通常,这将只返回已集成到门户 CMS 的某些表类型的值 ,除非您在您的应用程序中自定义了 URL 提供程序。 |
[属性或关系名称] | 您可以按逻辑名称访问 Power Apps 表的任何属性。 {{ entity.createdon }}{% assign attribute_name = 'name' %}{{ entity[attribute_name] }} 大多数表属性值直接映射到 Liquid 类型:“两个选项”字段映射到布尔值,文本字段到字符串,数字/货币字段到数字,日期/时间字段到日期对象。 但是,某些属性类型作为对象返回:
{{ page.adx_webpage_entitylist.adx_name }} 在关系是反身(即自引用)的情况中,反身关系对象将返回。 (否则,结果是模糊的。){{ page.adx_webpage_webpage.referencing.adx_name }} 注意:加载大量相关实体或访问大量一个模板中的关系,可能会对模板呈现性能产生负面影响。 避免加载数组中、循环内每个项目的相关实体。 如有可能,使用 Dataverse 表标记加载实体的集合。 |
关联的表引用
查找属性值作为关联表引用对象返回,具有以下属性。
属性 | 描述 |
---|---|
编号 | 引用表的 GUID ID,作为字符串。 例如,936DA01F-9ABD-4d9d-80C7-02AF85C822A8 |
logical_name | 引用表的 Power Apps 逻辑名称。 |
客户 | 引用表的主名称属性。 |
备注
注释是提供对注释记录的属性和关系的访问的表对象。 除了表对象的所有属性外,注释还具有以下额外的属性。
属性 | 说明 |
---|---|
documentbody | 加载注释记录的 documentbody 属性,作为 Base64 编码的字符串。 由于此属性的内容可能很大,因此不加载注释属性的其余部分,仅按需加载。 注意:使用 documentbody 属性可能对模板呈现性能产生负面影响,应小心执行。 尽可能使用 url 属性提供注释附件的链接。 |
URL | 返回内置门户批注附件处理程序的 URL 路径。 如果用户具有权限,且注释已附加文件,此 URL 的请求将下载注释文件附件。 |
备注
选项集值
选项集/选择列表属性值作为关联表引用对象返回,具有以下属性。
属性 | 说明 |
---|---|
标签 | 选项集/选择列表属性值的本地化标签。 例如,Active |
值 | 选项集/选择列表属性值的整数值。 例如,0 |
表权限
表权限对象提供对表的聚合权限声明结果的访问。
属性 | 描述 |
---|---|
can_append | 如果当前用户具有将记录追加到该记录的关系的权限,返回 true。 否则,返回 false。 |
can_append_to | 如果当前用户具有将此记录追加到另一个表的关系的权限,返回 true。 否则,返回 false。 |
can_create | 如果当前用户具有创建此表类型的新记录的权限,返回 true。 否则,返回 false。 |
can_delete | 如果当前用户具有删除该记录的权限,返回 true。 否则,返回 false。 |
can_read | 如果当前用户具有阅读该记录的权限,返回 true。 否则,返回 false。 |
can_write | 如果当前用户具有更新该记录的权限,返回 true。 否则,返回 false。 |
rules_exist | 如果该对象表示的权限结果是显式定义的权限规则的结果,返回 true。 如果是缺少显式定义权限时的默认结果,返回 false。 |
反身关系
尝试加载实体中的反身(即自引用关系)关系作为具有以下属性的对象返回。
属性 | 说明 |
---|---|
is_reflexive | 返回 true。 可以用于测试关系返回的对象是否是反身关系对象。 |
referenced | 返回指定关系的引用实体的数组。 |
referencing | 返回指定关系的引用表。 如果引用表不存在,返回 null。 如果关系为多对多 (N:N),返回引用实体的数组。 |
entitylist
在 Power Apps Dataverse 表标记内使用了实体列表对象。 它可以提供对特定列表所有属性的访问。
备注
属性
备注
属性 | 说明 |
---|---|
create_enabled | 如果为列表配置了新记录创建,将返回 true。 否则,返回 false。 |
create_url | 为列表的创建链接/按钮返回已配置的 URL 路径。 |
detail_enabled | 如果为列表配置了单个记录的详细信息视图,将返回 true。 否则,返回 false。 |
detail_id_parameter | 构造记录详细信息视图 URL 时,将返回用于记录 ID 的查询字符串参数名称。 有关使用 Liquid 筛选器构造 URL 的详细信息,请参阅 URL 筛选器。 例如,id |
detail_label | 为列表的详细信息视图链接/按钮返回已配置的本地化标签。 |
detail_url | 为列表的详细信息视图链接/按钮返回已配置的 URL 路径。 |
empty_list_text | 当列表视图未返回结果时,返回要显示的已配置本地化文本。 |
enable_entity_permissions | 如果已为此列表启用表权限筛选,将返回 true。 否则,返回 false。 |
entity_logical_name | 返回此列表显示的记录的 Power Apps 表逻辑名称。 例如,contact |
filter_account_attribute_name | 返回用于查找客户的属性逻辑名称,该名称将用于按当前门户用户的上级单位来筛选结果记录。 例如,accountid |
filter_apply_label | 返回将高级属性筛选器应用到列表结果所用的链接/按钮的已配置本地化标签。 |
filter_definition | 返回列表的 JSON 属性筛选器定义。 有关如何使用 metafilters Liquid 筛选器处理此定义的详细信息,请参阅列表筛选器。 |
filter_enabled | 如果为列表启用了高级属性筛选,将返回 true。 否则,返回 false。 |
filter_portal_user_attribute_name | 返回用于查找联系人的属性逻辑名称,该名称将用于按当前门户用户的联系人来筛选结果记录。 例如,contactid |
filter_website_attribute_name | 返回用于查找 adx_website 的属性逻辑名称,该名称将用于按当前门户网站来筛选结果记录。 例如,adx_websiteid |
language_code | 返回用于选择此列表的所有本地化标签的 Power Apps 整数语言代码。 |
page_size | 返回列表的已配置结果页面大小。 |
primary_key_name | 返回此列表显示的记录的主键属性逻辑名称。 |
search_enabled | 如果已为此列表启用搜索,将返回 true。 否则,返回 false。 |
search_placeholder | 返回列表搜索字段占位符的已配置本地化文本。 |
search_tooltip | 返回列表搜索工具提示的已配置本地化文本。 |
视图 | 以列表视图对象的形式返回列表的可用视图。 |
[属性逻辑名称] | 您可以按逻辑名称访问列表 (adx_entitylist) Power Apps 记录的任何属性,操作方式与表对象相同。 例如,{{ entitylist.adx_name }} |
列表视图属性
属性 | 描述 |
---|---|
列 | 以列表视图列对象的形式返回视图列。 |
entity_logical_name | 返回视图中包含的记录的 Power Apps 表逻辑名称。 例如,contact |
编号 | 返回视图的 GUID ID。 |
language_code | 返回用于选择视图的所有本地化标签(列标题等)的 Power Apps 整数语言代码。 |
客户 | 返回视图的 Power Apps 显示名称。 |
primary_key_logical_name | 返回视图中包含的记录的 Power Apps 表主键逻辑名称。 例如,contactid |
sort_expression | 返回视图的默认排序表达式。 例如,name ASC、createdon DESC |
列表视图列属性
属性 | 描述 |
---|---|
attribute_type | 以字符串形式返回列的 Power Apps 属性类型名称。 例如,Lookup、Picklist、String、Boolean、DateTime |
logical_name | 返回列的 Power Apps 属性逻辑名称。 例如,createdon |
姓名 | 返回列的本地化 Power Apps 显示名称。 例如,Created On |
sort_ascending | 返回用于按升序将列排序的排序表达式字符串。 例如,createdon ASC |
sort_descending | 返回用于按降序将列排序的排序表达式字符串。 例如,createdon DESC |
sort_disabled | 如果禁用列的排序,将返回 true。 否则,返回 false。 |
sort_enabled | 如果启用列的排序,将返回 true。 否则,返回 false。 |
width | 以像素形式返回列的已配置宽度。 |
entityview
entityview 对象在 entityview 标记中使用,为视图以及视图结果记录提供对元数据的访问。
属性
属性 | 描述 |
---|---|
列 | 以表视图列对象的形式返回视图列。 |
entity_permission_denied | 如果对视图结果的访问由于当前用户的表权限不足被拒绝,返回 true。 如果授予对视图结果的阅读访问权限,返回 false。 |
entity_logical_name | 视图结果记录的 Power Apps 表逻辑名称。 例如,contact |
first_page | 视图结果第一页的页码。 这将为 1,除非不返回结果,这种情况下它将是 null。 |
编号 | 定义此 entityview 的 Power Apps 视图的 GUID ID。 |
language_code | 用于加载当前视图的本地化标签的 Power Apps 整数语言代码。 |
last_page | 视图结果最后一页的页码。 如果未返回结果,则将为 null。 |
名称 | 用于定义此 entityview 的 Power Apps 视图名称,如“有效联系人”。 |
next_page | 视图结果下一页的页码。 如果结果没有下一页面,这将为 null。 |
页 | 视图结果当前页面的页码。 |
页面 | 返回包含当前视图的所有结果页面的页码数组。 |
page_size | 当前视图每个页面返回的结果的数量。 |
previous_page | 视图结果下一页的页码。 如果结果没有上一页面,这将为 null。 |
primary_key_logical_name | 此视图的结果表的主键属性的 Power Apps 逻辑名称。 例如,contactid。 |
记录 | 视图的结果记录的当前页面,作为表对象。 |
sort_expression | 视图的默认排序表达式。 例如,nameASC、createdon DESC。 |
total_pages | 视图的结果页面的总数。 |
total_records | 视图的结果总数(所有页面)。 |
事件
提供访问和呈现事件的功能。 events 对象允许您选择特定的事件或所有事件。
events 对象
events 对象允许您访问门户中的所有特定事件,或访问门户中的所有事件(无论哪个事件)。
events 对象拥有以下属性:
属性 | 描述 |
---|---|
occurences | 返回包含门户中所有事件发生的 eventoccurancess 对象 |
[事件名称或 id] | 可以按其名称或 ID 属性访问任何事件。 {% assign event = events["Event Name"] %} {% assign event = events["da8b8a92-2ee6-476f-8a21-782b047ff460"] %} |
event 对象
event 对象允许您处理单个事件,使您可以访问该事件的计划和发生。
event 对象拥有以下属性:
属性 | 描述 |
---|---|
发生次数 | 返回包含事件的所有发生的 eventoccurrences 对象。 |
名称 | 事件的名称。 |
URL | 事件的 URL。 |
eventoccurences 对象
eventoccurrences 对象允许您访问事件发生对象的集合。 您可以对事件发生排序并指定用于检索的发生的日期范围,还可以使用 Liquid 筛选器实现分页
{% assign occurances = event.occurrences.from[today].to[advance_date] %}
请注意
{% assign occurances = event.occurrences.min[today].max[advance_date] %}
也有可能。
以下属性与 eventoccurrences 对象关联
属性 | 说明 |
---|---|
所有 | 返回集合中的所有 eventoccurance 对象。 |
eventoccurence 对象
表示单个事件发生。 以下给出关联的属性:
属性 | 说明 |
---|---|
URL | 发生的 URL。 |
is_all_day_event | 这是全天事件吗? |
start_time | 事件的开始时间。 |
end_time | 事件的结束时间。 |
forloop
包含在 for 循环块中有用的属性。
备注
forloop 只能在 for 标记中使用。
代码
{% for child in page.children %}
{% if forloop.first %}
This is the first child page!
{% else %}
This is child page number {{ forloop.index }}.
{% endif %}
{% endfor %}
输出
This is the first child page!
This is child page number 2.
This is child page number 3.
属性
属性 | 说明 |
---|---|
第一 | 如果是循环的第一个迭代,返回 true。 如果不是第一个迭代,返回 false。 |
索引 | 当前项目在集合中的位置,其中第一个项目具有 1 位置。 |
index0 | 当前项目在集合中的位置,其中第一个项目具有 0 位置。 |
最后一页 | 如果是循环的最后一个迭代,返回 true。 如果不是最后一个迭代,返回 false。 |
length | 返回循环ߝ的迭代数量,即迭代的集合中项目的数量。 |
rindex | 循环中其余项目的数量 (长度 - 索引),其中 1 是最后项目的索引。 |
rindex0 | 循环中其余项目的数量 (长度 - 索引),其中 0 是最后项目的索引。 |
论坛
提供访问和呈现论坛和论坛执行绪的功能。 使用 Liquid 呈现论坛数据的功能已扩展到公告,但若要创建新的公告或执行绪,您必须使用已内置前述功能的 ASP.NET 多步窗体页面模板(例如,默认论坛执行绪和论坛公告页面模板)。
论坛对象允许您选择论坛或论坛执行绪:
<div class=content-panel panel panel-default>
<div class=panel-heading>
<h4>
<span class=fa fa-comments aria-hidden=true></span>
{{ snippets[Home Forum Activity Heading] | default: Forum Activity | h }}
</h4>
</div>
{% for forum in website.forums %}
<ul class=list-group>
<li class=list-group-item>
<div class=row>
<div class=col-sm-6>
<h4 class=list-group-item-heading><a href="{{ forum.url | h }}"> {{ forum.name | h }}</a></h4>
<div class=list-group-item-text content-metadata>{{ forum.adx_description | h }}</div>
</div>
<div class=col-sm-3 content-metadata>{{ forum.thread_count }} threads</div>
<div class=col-sm-3 content-metadata>{{ forum.post_count }} posts</div>
</div>
</li>
</ul>
{% endfor %}
</div>
论坛对象
论坛对象允许您访问门户中的所有特定论坛,或访问门户中的所有论坛执行绪(无论哪个论坛)。
forum 对象允许您处理单个论坛,使您可以访问该论坛的执行绪。
forumthreads 对象允许您访问 forumthread 对象的集合。 使用 liquid 筛选器,您可对论坛执行绪进行排序并实现分页。
{% assign threads = forum.threads | order_by adx_name, desc | paginate: 0,4 | all %}
单个论坛执行绪
forumposts 对象允许您访问 forumpost 对象的集合。
属性
属性 | 说明 |
---|---|
threads | 返回包含门户中所有 forumthread 对象的 forumthreads 对象。 |
所有 | 返回门户中的所有 forum 对象。 注意,website.forums 也是对等项。 |
thread_count | 返回整个网站中执行绪数量计数的整数值。 |
post_count | 返回门户中的文章总数的整数值。 |
[论坛名称或 id] | 可以按其名称或 ID 属性访问任何论坛。 `{% assign forum = forums[Forum Name] %} {% assign forum = forums[da8b8a92-2ee6-476f-8a21-782b047ff460] %} |
forum 对象
属性
备注
属性 | 说明 |
---|---|
threads | 返回包含论坛的所有论坛执行绪的 forumthreads 对象。 |
客户 | 论坛的名称。 |
thread_count | 返回论坛中执行绪数量计数的整数值。 |
post_count | 返回整个论坛中公告数量计数总和的整数值。 |
forumthreads 对象
属性
属性 | 说明 |
---|---|
所有 | 返回集合中的所有 forumthread 对象。 |
forumthread 对象
属性
备注
属性 | 说明 |
---|---|
公告 | 返回包含执行绪的所有论坛公告的 forumposts 对象。 |
author | 返回执行绪的作者(即联系人表对象)。 |
latest_post | 返回执行绪中的最新公告。 |
first_post | 返回执行绪中的第一个公告。 |
post_count | 返回执行绪中公告数量计数的整数值。 |
is_answered | 是否应答执行绪? |
is_sticky | 执行绪是否为粘滞执行绪? |
forumposts 对象
属性
属性 | 说明 |
---|---|
所有 | 返回集合中的所有 forumthread 对象。 |
单个论坛公告
属性
备注
属性 | 说明 |
---|---|
author | 返回文章的作者(即联系人表对象)。 |
content | 公告的内容。 |
is_answer | 此文章是否为执行绪的答案? |
知识
提供对 Power Apps knowledgearticle 和用于在门户中呈现文章和类别的类别表记录的访问权限。
属性
属性 | 说明 |
---|---|
文章 | 返回包含在门户中可用的 knowledgearticle 表记录的文章对象的文章对象。 |
类别 | 返回包含在门户中可用的类别表记录的类别对象的类别对象。 |
文章对象
文章对象允许您访问文章对象的集合。 通过使用 Liquid 筛选器,您可对文章进行排序并实现分页。
{% assign count = count | default: 3 %}
{% assign languagecode = website.selected_language.code %}
{% assign popular_articles = knowledge.articles | popular: count,languagecode %}
{% if popular_articles %}
<div class=list-group>
{% for article in popular_articles %}
<div class=list-group-item clearfix>
<a class=title href={{ article.url | escape }}>{{ article.title | escape }}</a>
<p class=description>{{ article.description | escape }}</p>
</div>
{% endfor %}
</div>
{% endif %}
属性
属性 | 说明 |
---|---|
常用 | 返回包含大多数视图的文章对象的集合。 {% assign popular_articles = knowledge.articles.popular %} |
最近 | 返回包含最新修订日期的文章对象的集合。 {% assign recent_articles = knowledge.articles.recent %} |
主要 | 返回包含最高评分的文章对象的集合。 {% assign top_articles = knowledge.articles.top %} |
筛选器
以下筛选器可以接受页面大小和语言的可选参数。 第一个参数是要检索的数量或记录。 默认页面大小为 5。 第二个参数是要检索特定语言的文章的语言代码。 筛选器可与其他 Liquid 筛选器 结合使用。
{% assign page_size = 5 %}
{% assign language_code = website.selected_language.code %}
{% assign recent_articles = knowledge.articles | recent: page_size, language_code %}
属性 | 说明 |
---|---|
常用 | 返回包含大多数视图的文章对象的集合。 {% assign popular_articles = knowledge.articles \| popular: 10, en-US %} |
最近 | 返回包含最新修订日期的文章对象的集合。 {% assign recent_articles = knowledge.articles \| recent: 5 %} |
主要 | 返回包含最高评分的文章对象的集合。 {% assign top_articles = knowledge.articles \| top: 3, en-US %} |
类别对象
类别对象允许您访问类别对象的集合。 您可以通过使用 Liquid 筛选器对类别排序并实现分页。
{% assign category_url = sitemarkers['Category'].url %}
{% assign count = count | default: 0 %}
{% assign categories = knowledge.categories | top_level: count %}
{% if categories %}
<div class=list-group unstyled>
{% for category in categories %}
<a href={{ category_url | add_query: 'id', category.categorynumber }} class=list-group-item>
{{ category.title }}
</a>
{% endfor %}
</div>
{% endif %}
属性
属性 | 说明 |
---|---|
最近 | 返回包含最新修订日期的类别对象的集合。 |
top_level | 返回没有父类别的类别对象的集合。 |
筛选器
以下筛选器可以接受指示页面大小的可选参数。 默认页面大小为 5。 筛选器可与其他 Liquid 筛选器 结合使用。
{% assign page_size = 5 %}
{% assign recent_categories = knowledge.categories | recent: page_size %}
属性 | 说明 |
---|---|
最近 | 返回包含最新修订日期的类别对象的集合。 您可以提供参数 {% assign recent_categories = knowledge.categories \| recent: 10 %} |
top_level | 返回没有父类别的类别对象的集合。 {% assign root_categories = knowledge.categories \| top_level %} |
文章对象
文章对象允许您使用一个 knowledgearticle 在门户中显示该文章的详细信息。
属性
文章是一个实体 对象,除了下面列出的属性之外,还具有所有相同的属性。
属性 | 说明 |
---|---|
article_public_number | 文章的文章公共编号。 |
comment_count | 指定文章的评论数量计数的整数值。 |
content | 批准文章的内容 |
current_user_can_comment | 返回一个指示当前用户是否可以对文章添加评论的布尔值。 |
is_rating_enabled | 返回一个指示是否对文章启用评级的布尔值。 |
keywords | 文章的关键字。 |
名称 | 文章标题的备选别名。 |
评级 | 文章的十进制评分值。 |
title | 文章的标题。 |
view_count | 文章浏览次数的整数值。 |
类别对象
类别对象允许您使用一个类别在门户中显示其详细信息。
属性
类别是一个实体 对象,除了下面列出的属性之外,还具有所有相同的属性。
属性 | 说明 |
---|---|
categorynumber | 类别的类别编号。 |
名称 | 类别标题的备选别名。 |
标题 | 类别的标题。 |
语言
提供当前语言名称和语言代码(如果启用了多语言支持)。
属性
属性 | 描述 |
---|---|
URL | 前缀为当前语言代码的当前请求 URL。 |
url_substitution | 前缀为当前语言代码、绕过页面输出缓存的当前请求 URL。 |
名称 | 当前语言的标题。 |
代码 | 语言的语言代码。 |
例如,语言下拉列表 Web 模板在多个语言可用时默认使用此 Liquid 对象列出可用语言。
页面
引用当前门户请求页面。 此对象合并站点地图和当前请求实体(通常是网页)的属性。
page 对象提供对类似于当前页面的导航痕迹、当前页面的标题或 URL、基础 Power Apps 记录的任何其他属性或相关实体等内容的访问。
<ul class=breadcrumb>
{% for crumb in page.breadcrumbs %}
<li><a href={{ crumb.url | escape }}>{{ crumb.title | escape }}</a></li>
{% endfor %}
<li class=active>{{ page.title | escape }}</li>
</ul>
<div class=page-header>
<h1>{{ page.title | escape }}</h1>
</div>
<div class=page-copy>
{{ page.adx_copy }}
</div>
<div class=list-group>
{% for child in page.children %}
<a class=list-group-item href={{ child.url | escape }}>
{{ child.title | escape }}
</a>
{% endfor %}
</div>
<!-- Page {{ page.id }} was last modified on {{ page.modifiedon }}. -->
页面属性
备注
属性 | 说明 |
---|---|
breadcrumbs | 返回页面的导航痕迹站点地图节点对象,以站点地图根节点开头,以父项结尾。 |
children | 返回页面的子站点地图节点对象。 |
上级 | 返回页面的父站点地图节点。 如果该页是主页,则父项将为 null。 |
title | 页面的标题。 |
URL | 页面的 URL。 |
[属性或关系名称] | 您可以按逻辑名称访问页面的底层 Power Apps 记录的任何属性。{{ page.createdon }} {% assign attribute_name = 'name' %} {{ page[attribute_name] }} 大多数表属性值直接映射到 Liquid 类型:“两个选项”字段映射到布尔值,文本字段到字符串,数字/货币字段到数字,日期/时间字段到日期对象。 但是,某些属性类型作为对象返回:
{{ page.adx_webpage_entitylist.adx_name }} 在关系是反身(即自引用)的情况中,将返回实体对象。 (否则,结果是模糊的。) {{ page.adx_webpage_webpage.referencing.adx_name }} 注意:加载大量相关实体或访问大量一个模板中的关系,可能会对模板呈现性能产生负面影响。 避免加载数组中、循环内每个项目的相关实体。 如有可能,最好使用 Power Apps Dataverse 表标记加载实体的集合。 |
轮询
提供访问和呈现轮询的功能。
polls 对象允许您选择特定的轮询或轮询位置:
<div>
{% assign poll = polls[Poll Name] %}
<h4>{{ poll.question }}</h4>
{% for option in poll.options %}
<div>
<input type=radio name={{ poll.name }} id={{ option.id }} />
<label for={{ option.id }}>{{ option.answer }}</label>
</div>
{% endfor %}
<button type=button>{{ poll.submit_button_label }}</button>
</div>
Polls 属性
属性 | 说明 |
---|---|
placements | 返回 pollplacements 对象。 |
[轮询名称或 id] | 可以按其名称或 ID 属性访问任何轮询。 {% assign poll = polls[Poll Name] %} {% assign poll = polls["41827a5c-33de-49b8-a0c7-439e6a02eb98"] %} |
轮询位置属性
属性 | 说明 |
---|---|
[轮询位置名称或 id] | 可以按其名称或 ID 属性访问任何轮询位置。{% assign placement = polls.placements[Placement Name or Id] %} {% assign placement = polls.placements[7677c5d4-406e-4b6c-907c-916ac17dba0f] %} |
轮询位置属性
备注
属性 | 说明 |
---|---|
客户 | 返回轮询位置的名称字段。 |
placement_url | 可用于检索由模板完全呈现的轮询位置的 URL。 |
轮询 | 返回与位置关联的轮询对象集合。 迭代标记和数组筛选器可以与此集合一起使用。 |
random_url | 可用于从由模板完全呈现的位置检索随机轮询的 URL。 |
submit_url | 向其提交已完成轮询的 URL。 |
轮询属性
备注
属性 | 说明 |
---|---|
has_user_voted | 如果当前用户(登录或匿名)已在此轮询中投票,则返回“true”。 |
姓名 | 返回轮询的名称字段。 |
选项 | 返回与轮询关联的轮询选项对象集合。 迭代标记和实体可以与此集合一起使用。 |
poll_url | 可用于检索由模板完全呈现的轮询的 URL。 |
问题 | 返回轮询的问题字段。 |
submit_button_label | 返回可用于替代轮询提交按钮标签的字符串。 |
submit_url | 向其提交已完成轮询的 URL。 |
user_selected_option | 返回用户选择的 polloption 对象(如果已投票)。 |
votes | 返回该轮询已制成表格的投票数。 |
轮询选项属性
备注
属性 | 说明 |
---|---|
answer | 返回轮询的答案字段。 |
percentage | 以 0 到 100 的十进制数返回选项轮询中的投票百分比。 |
votes | 返回该选项已制成表格的投票数。 |
请求
包含有关当前 HTTP 请求的信息。
{% assign id = request.params['id'] | escape %}
<a href={{ request.url | add_query: 'foo', 1 | escape }}>Link</a>
备注
- 您可以通过使用 URL 筛选器在 Liquid 中动态构建 URL。
- request.url 中使用的 URL 可以是任何请求的值,它为后续请求缓存。 为了确保 request.url 中的值正确,请考虑使用替代标记,部分 URL(如 ~{WebFile path})或将门户 URL 存储在站点设置中。
- Power Apps 门户发布版本 9.3.8.x 或更高版本将默认为用户和请求 Liquid 对象强制执行转义 Liquid 筛选器。 要禁用此默认配置并允许这些 Liquid 对象而不转义 Liquid 筛选器,请参阅门户站点设置 - Site/EnableDefaultHtmlEncoding。
属性
属性 | 描述 |
---|---|
参数 | 当前请求的指定参数值。 params 是 URL 查询字符串参数、窗体公告参数和 Cookie 的组合。 |
路径 | 当前请求 URL 的路径。 /profile/ |
path_and_query | 当前请求 URL 的路径和查询。 /profile/?foo=1&bar=something |
查询 | 当前请求 URL 的查询部分。 ?foo=1&bar=something |
URL | 当前请求的完整 URL。 https://www.example.com/profile/?foo=1&bar=something |
searchindex
searchindex 对象在 Power Apps Dataverse 表标记内使用,并且提供对查询结果的访问。
{% searchindex query: 'support', page: params.page, page_size: 10 %}
{% if searchindex.results.size > 0 %}
<p>Found about {{ searchindex.approximate_total_hits }} matches:</p>
<ul>
{% for result in searchindex.results %}
<li>
<h3><a href={{ result.url | escape }}>{{ result.title | escape }}</a></h3>
<p>{{ result.fragment }}</p>
</li>
{% endfor %}
</ul>
{% else %}
<p>Your query returned no results.</p>
{% endif %}
{% endsearchindex %}
属性
属性 | 说明 |
---|---|
approximate_total_hits | 返回与索引查询匹配的大概点击总数。 由于搜索索引工作的方式与安全筛选和其他设计因素有关,此数字仅是一个概数,某些情况下,可能无法完全匹配当前用户可用结果的总数。 |
页 | 返回当前查询的页码。 |
page_size | 返回当前查询的最大页面尺寸。 如果希望为当前页返回实际的结果数量(因为这可能小于指定的最大页面大小),请使用 results.size。 |
结果 | 在搜索索引结果对象时,返回查询结果页面。 |
搜索索引结果
属性 | 说明 |
---|---|
实体 | 结果的基础实体。 |
fragment | 结果的相关短文本片段,与使用 <em> HTML 标记突出显示的指定查询匹配的术语。 某些查询类型不支持突出显示的片段,如模糊查询 (~) 和通配符查询 (*)。 这些情况下该属性将为空。 |
编号 | 结果的基本记录的 Power Apps 表 ID,作为字符串。 例如,936DA01F-9ABD-4d9d-80C7-02AF85C822A8 |
logical_name | 结果的基本记录的 Power Apps 表逻辑名称。 例如,adx_webpage |
编号 | 结果的数量,所有结果页,从 1 开始。 例如,第二个结果页的第一个结果,页面大小为 10,此值将为 11。 |
score | 结果的 Lucene 评分,作为浮点值。 结果将按该值排列的顺序返回。 |
title | 结果的标题。 |
URL | 结果的 URL。 这通常ߝ但 —不一定— 是ߝ将当前应用程序的绝对路径,而不是完整 URL。 例如:/articles/article1/ |
设置
允许您按名称加载任何网站设置。 如果未找到具有指定名称的设置,将返回 null。
{{ settings[My Setting] }}
{% assign search_enabled = settings[Search/Enabled] | boolean %}
{% if search_enabled %}
Search is enabled.
{% endif %}
{% assign pagesize = settings['page size'] | integer | default: 10 %}
{% if pagesize > 10 %}
Page size is greater than 10.
{% endif %}
备注
站点地图
允许访问门户站点地图。
<h1>{{ sitemap.root.title }}</h1>
<ul class=breadcrumb>
{% for crumb in sitemap.current.breadcrumbs %}
<li><a href={{ crumb.title }}>{{ crumb.title }}</a></li>
{% endfor %}
<li class=active>{{ sitemap.current.title }}</li>
</ul>
{% for child in sitemap.current.children %}
<a href={{ child.url }}>{{ child.title }}</a>
{% endfor %}
It's also possible to load a site map node by URL path:
{% assign node = sitemap[/content/page1/] %}
{% if node %}
{% for child in node.children %}
<a href={{ child.url }}>{{ child.title }}</a>
{% endfor %}
{% endif %}
站点地图属性
属性 | 说明 |
---|---|
当前 | 返回当前页面的站点地图节点对象。 |
根 | 返回该网站的根(主页)页面的站点地图节点对象。 |
站点地图节点属性
属性 | 说明 |
---|---|
导航痕迹 | 返回节点的导航痕迹站点地图节点对象,以站点地图根节点开头,以父项结尾。 |
子级 | 返回节点的子站点地图节点对象。 |
说明 | 节点的说明/摘要内容。 (此字段可能包含 HTML)。 |
实体 | 返回节点的基础实体。 如果节点没有基础表,此值将为 null。 |
is_sitemap_ancestor | 如果站点地图节点是当前节点的上级节点,返回 true,否则返回 false。 |
is_sitemap_current | 如果站点地图节点是当前节点,返回 true,否则返回 false。 |
父级 | 返回节点的父站点地图节点。 如果节点是根节点,父项将是 null。 |
头衔 | 节点的标题。 |
URL | 节点的 URL。 |
网站标记
允许您按名称加载任何网站标记。 如果网站标记存在,将返回网站标记对象。 如果未找到具有指定名称的网站标记,将返回 null。
{{ sitemarkers[Login].url }}
{% assign my_sitemarker = sitemarkers["My Site Marker"] %}
{% if my_sitemarker %}
<a href={{ my_sitemarker.url }}>{{ my_sitemarker.adx_name }}</a>
{% else %}
Site marker My Site Marker does not exist.
{% endif %}
备注
网站标记属性
属性 | 说明 |
---|---|
URL | 网站标记目标的 URL。 |
[属性逻辑名称] | 您可以按逻辑名称访问网站标记目标 Power Apps 记录的任何属性。 例如,{{ sitemarker.adx_name }} |
片段
允许您按名称加载任何内容片段。 如果未找到具有指定名称的片段,将返回 null。
{{ snippets[Header] }}
{% assign footer = snippets[Footer] %}
{% if footer %}
{{ footer }}
{% else %}
No footer snippet was found.
{% endif %}
tablerowloop
包含在迭代标记循环块中有用的属性。
备注
forloop 只能在迭代标记标记中使用。
属性
属性 | 说明 |
---|---|
Col | 返回当前行的索引,从 1 开始。 |
col0 | 返回当前行的索引,从 0 开始。 |
col_first | 如果当前列是某行中第一列,则返回 true,否则返回 false。 |
col_last | 如果当前列是某行中的最后一列,则返回 true,否则返回 false。 |
第一个 | 如果是循环的第一个迭代,返回 true。 如果不是第一个迭代,返回 false。 |
索引 | 当前项目在集合中的位置,其中第一个项目具有 1 位置。 |
index0 | 当前项目在集合中的位置,其中第一个项目具有 0 位置。 |
最后一页 | 如果是循环的最后一个迭代,返回 true。 如果不是最后一个迭代,返回 false。 |
长度 | 返回循环ߝ的迭代数量,即迭代的集合中项目的数量。 |
Rindex | 循环中其余项目的数量 (长度 - 索引),其中 1 是最后项目的索引。 |
rindex0 | 循环中其余项目的数量 (长度 - 索引),其中 0 是最后项目的索引。 |
用户
引用当前门户用户,允许对基础 Power Apps 联系人记录的所有属性的访问。 如果没有用户登录,此变量将为 null。
用户是实体对象。
{% if user %}
Hello, {{ user.fullname | escape }}!
{% else %}
Hello, anonymous user!
{% endif %}
备注
Power Apps 门户发布版本 9.3.8.x 或更高版本将默认为用户和请求 Liquid 对象强制执行转义 Liquid 筛选器。 要禁用此默认配置并允许这些 Liquid 对象而不转义 Liquid 筛选器,请参阅门户站点设置 - Site/EnableDefaultHtmlEncoding。
属性
除了具有实体对象的所有属性之外,用户还具有以下属性。
属性 | 说明 |
---|---|
角色 | 返回用户所属的角色,作为数组。{% if user.roles contains 'Administrators' %} User is an administrator. {% endif %} 注意:您可以使用 has_role 筛选器来测试各个角色成员资格。 |
basic_badges_url | 返回用于检索用户徽章的服务 URL。 若要呈现用户的徽章,必须包括具有“data-badge”和“data-uri”属性的标记。 要呈现当前用户的徽章: <div data-badge data-uri='{{user.basic_badges_url }}'></div> 要按 ID(可变 userid)呈现用户的徽章: `<div data-badge data-uri='{{user.basic_badges_url |
Web 链接
允许您按名称或 ID 加载任何 weblinks。
如果 Web 链接集存在,Web 链接集对象将返回。 如果具有指定名称或 ID 的 Web 链接集未找到,null 将返回。
<!-- Load web link set by ID -->
{{ weblinks[page.adx_navigation.id].name }}
<!-- Load web link set by name -->
{% assign nav = weblinks[Primary Navigation] %}
{% if nav %}
<h1>{{ nav.title | escape }}</h1>
<ul>
{% for link in nav.weblinks %}
<li>
<a href={{ link.url | escape }} title={{ link.tooltip | escape }}>
{% if link.image %}
<img src={{ link.image.url | escape }} alt={{ link.image.alternate_text | escape }} />
{% endif %}
{{ link.name | escape }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
备注
Web 链接集属性
备注
Web 链接集是一个实体对象,除了下面列出的属性之外,还具有所有相同的属性。
属性 | 说明 |
---|---|
副本 | Web 链接集的 HTML 副本。 |
客户 | Web 链接集的名称。 |
头衔 | Web 链接集的标题。 |
Weblinks | 与 Web 链接集关联的 Web 链接对象的数组。 |
[属性逻辑名称] | 您可以按逻辑名称访问 Web 链接集 Power Apps 记录的任何属性。 例如,{{ weblinkset.createdon }} |
Web 链接属性
备注
Web 链接是一个实体对象,除了下面列出的属性之外,还具有所有相同的属性。
属性 | 说明 |
---|---|
说明 | Web 链接的 HTML 说明。 |
display_image_only | 指示 Web 链接是否应仅作为图像显示而不包含链接文本的布尔属性。 |
display_page_child_links | 指示 Web 链接是否应作为子链接显示指向链接页面的站点地图子页面的链接的布尔属性。 |
图像 | 此链接的 Web 链接图像对象。 如果图像不存在,则此属性将为空。 |
is_external | 指示 Web 链接的目标 URL 是否是到外部网站(而不是到内部门户页面)的布尔属性。 |
is_sitemap_ancestor | 如果 Web 链接的 URL 引用当前站点地图节点的上级节点,返回 true,否则返回 false。 |
is_sitemap_current | 如果 Web 链接的 URL 引用当前站点地图节点,返回 true,否则返回 false。 |
姓名 | Web 链接的名称/标题。 |
Nofollow | 指示 Web 链接是否应标记为 rel=nofollow 的布尔属性。 |
open_in_new_window | 指示选择后 Web 链接是否应该在新浏览器窗口/选项卡中打开的布尔属性。 |
工具提示 | Web 链接的工具提示文本。 |
URL | Web 链接的 URL。 |
Weblinks | 与 Web 链接集关联的子 Web 链接对象的数组。 |
[属性逻辑名称] | 您可以按逻辑名称访问 Web 链接 Power Apps 记录的任何属性。 例如,{{ weblink.createdon }} |
Web 链接图像属性
alternate_text | 图像的替换文本。 |
---|---|
高度 | 包含指定图像高度的整数。 如果未提供高度值,该属性将为空。 |
URL | 图像的 URL。 |
宽度 | 包含指定图像宽度的整数。 如果未提供宽度值,该属性将为空。 |
网站
引用门户网站,允许对门户的 Power Apps 网站 (adx_website) 记录的所有属性的访问。
备注
网站是一个实体对象,具有所有相同属性。
代码
{{ website.adx_name }} ({{ website.id }})
输出
Community Portal (936DA01F-9ABD-4d9d-80C7-02AF85C822A8)
属性
下表列出了此标记的属性,可以使用这些属性替换默认值以避免缓存。
默认值 | 替代项(避免缓存) | 示例 |
---|---|---|
sign_in_url | sign_in_url_substitution | 默认:website.sign_in_url:/en-US/SignIn?returnUrl=%2Fen-US%2F 替代(避免缓存):website.sign_in_url_substitution: /en-US/SignIn?returnUrl=%2Fen-US%2Fsubstitute-page%2F (此示例中的“substitute-page”会替换默认的缓存的 URL。) |
sign_out_url | sign_out_url_substitution | 默认:website.sign_out_url:/en-US/Account/Login/LogOff?returnUrl=%2Fen-US%2F 替代(避免缓存):website.sign_out_url_substitution: /en-US/Account/Login/LogOff?returnUrl=%2Fen-US%2Fsubstitute-page%2F (此示例中的“substitute-page”会替换默认的缓存的 URL。) |