练习 - 创建可扩展 Web 模板
本动手实验旨在引入构建和扩展 Liquid 模板的概念。
如果您有可供使用的示例数据,则能够极大提升本练习的效果。 根据您使用的环境,您可能希望安装一些示例数据来帮助练习。 Microsoft Dataverse 为您提供按需添加示例数据的功能。 如果您使用的环境未安装示例数据,请按照添加或删除示例数据文档中的步骤在环境中安装示例数据。
学习目标
这些练习的目标是帮助您学习如何:
- 使用
extend
和block
标记扩展 Liquid 模板。 - 使用
include
标记重用 Liquid 模板。 - 将表权限应用到新模板的结果。
先决条件
在本练习中,您需要确保已在环境中设置以下参数:
- 已预配的 Power Pages 网站。 如果没有可用的 Power Pages 网站,请按照使用 Power Pages 创建站点说明创建一个网站。
- Power Pages Management 应用的访问权限。
简要步骤
若要完成本练习,您需要完成以下简要任务:
通过访问用作布局基块的 Dataverse 数据来创建部分模板。
新建模板扩展两列布局 Web 模板。
覆盖侧面板以包括部分模板。
更改现有网页的模板。
设置表权限以向匿名用户显示数据。
详细步骤
要完成本练习,您需要构建新页面模板,其中包括列出 Dataverse 所有客户的侧面板。
创建部分模板
您的第一项任务是创建部分模板,部分模板不用于呈现页面,但将插入其他模板。
登录 Power Pages 主页。
在右上角选择目标环境。
找到您的网站,展开扩展菜单(省略号),然后选择门户管理以打开 Power Pages Management 应用。
选择 Web 模板。
选择新建。
输入以下值:
名称 - 目录
网站 - 选择当前网站
源 - 输入以下内容:
{% fetchxml accounts %} <fetch> <entity name="account"> <attribute name="name" /> </entity> </fetch> {% endfetchxml %} {% if accounts.global_permission_granted %} <ul> {% for account in accounts.results.entities %} <li>{{ account.name }}</li> {%- endfor -%} </ul> {% else %} <div class="alert alert-warning">You do not have permissions to access the directory.</div> {% endif %}
选择保存并关闭。
扩展现有模板
接下来,新建扩展现有 Liquid 模板的新模板,然后插入之前创建的模板。
选择Web 模板。
选择新建。
输入以下值:
名称 - 目录模板
网站 - 选择当前网站
源 - 输入以下内容:
{% extends "Layout 2 Column Wide Left" %} {% block aside %} <h2>Directory</h2> {% include 'Directory' %} {% endblock %}
选择保存并关闭。
创建页面模板并与该页面关联
在本任务中,您将创建使用新 Web 模板并且包括目录输出的页面模板。
选择页面模板。
选择新建。
输入以下值:
名称 - 目录页面模板
网站 - 选择当前网站
类型 - 选择Web 模板
Web 模板 - 选择目录模板
表名 - 选择网页
可选:向页面内容添加文本元素,然后输入您选择的文本。
选择保存并关闭。
测试初始模板
下一步是测试您的新模板是否有效:
返回到 Power Pages 主页选项卡或打开一个新选项卡。
找到网站,然后选择编辑以打开 Power Pages 设计工作室。
选择同步以同步所做的更改。
选择页面工作区。
选择 + 页面。 在添加页面对话框中,完成以下步骤:
输入目录作为页面名称。
选择自定义布局,然后选择目录页面模板。
选择添加。
空白页面将在右侧面板中显示消息“您无权访问目录”。
添加表权限
警告
向匿名用户授予全局读取权限仅用于说明目的。 请谨慎行事,避免通过授予过多的权限并且未在视图或 FetchXML 表达式中包含适当的筛选器而无意中暴露敏感信息。
按照以下步骤添加表权限。
选择设置工作区,然后选择表权限。
选择 + 新建。
输入以下值:
名称 - 帐户目录
表 - 选择帐户(帐户)表
访问类型 - 选择全局访问
权限 - 选择读取
选择添加角色。
选择匿名用户和经过身份验证的用户。
选择保存。
测试模板
您的最后一项任务是测试新模板:
选择页面工作区,然后选择目录页面。
选择预览 > 桌面。
注意
仅刷新浏览器页面将不足以更新数据。 使用此命令可重新构建站点缓存。
现在页面应该显示并且在右侧面板中包括客户列表。