添加静态页面

此功能允许存储静态页面的HTML内容,并在用户界面的特定部分显示指向这些页面的链接:

  • HTML内容存储在GN数据库的新表中。

  • 到页面的链接可以根据与每个页面相关联的“部分”列表显示在GN的GUI的不同点上。在这个PR是介绍了支持显示顶部工具栏和页脚的链接。

  • 每页可分为3种状态:

    • HIDDEN :对管理员可见。

    • PRIVATE :对登录用户可见。

    • PUBLIC :对所有人可见。

  • 页面可以添加到不同的页面部分。目前实施的部分是 TOP (主页面顶部菜单)和 FOOTER (主页的页脚)。

  • 只有管理员可以编辑页面并在中查看页面 HIDDEN 状态。

  • 内容的创建和管理是通过API完成的。

    ../_images/pages-api.png

一些限制:

  • 无法将自定义CSS应用于页面。

  • 任何外部图像都必须从外部加载。

API用法示例

在执行以下示例之前,请参见 使用curl的CSRF调用示例 有关CSRF令牌(而不是 "X-XSRF-TOKEN: e934f557-17a3-47f2-8e6b-bdf1a3c90a97" 在示例中使用)和请求中的cookies。

在顶部菜单栏中加载页面

在这个例子中,我们要上传一个文件 contactus.html 并将其链接到顶部菜单中:

  1. 使用POST方法加载内容 /api/pages/ ,必填字段为:

    • 语言(3个字母,如“eng”、“ita”、“fra”…)

    • pageId(页面的标识符/链接描述)

    • 格式(如果链接与页面关联,则必须为链接)

    • 内容:数据(包含页面内容的文件)或链接(指向另一个页面的URL)。不可能同时定义两者。

$ curl -X POST "http://localhost:8080/geonetwork/srv/api/pages/?language=eng&pageId=contactus&format=LINK" -H "accept: */*" -H "Content-Type: multipart/form-data" -H "X-XSRF-TOKEN: e934f557-17a3-47f2-8e6b-bdf1a3c90a97" -d contactus.html

此时,页面已创建但不可见,因为它处于隐藏状态,并且未在页面的任何部分显式加载,除了不可见的草稿(以后可以将其添加到具有编辑器界面的页面)。对于支持的每种UI语言,都应该执行类似的请求。

  1. 要将链接与顶栏关联,必须使用POST方法 /api/pages/{{language}}/{{pageId}}/{{section}}TOP 节的值。

$ curl -X POST "http://localhost:8080/geonetwork/srv/api/pages/eng/contactus/TOP" -H "accept: */*" -H "X-XSRF-TOKEN: 7cfa1a0d-3335-4846-8061-a5bf176687b5"  --user admin:admin -b /tmp/cookie

从分区中删除页面

从分区删除页面 /api/pages/{{language}}/{{pageId}}/{{section}}

curl -X DELETE "http://localhost:8080/geonetwork/srv/api/pages/eng/contactus?format=LINK" -H "accept: */*" -H "X-XSRF-TOKEN: 7cfa1a0d-3335-4846-8061-a5bf176687b5"  --user admin:admin -b /tmp/cookie

更改页面状态

可以使用PUT方法更改页面的状态 /api/pages/{{language}}/{{pageId}}/{{status}} 其中status可以假定这些值:

  • PUBLIC -对每个用户可见

  • PUBLIC_ONLY -对未登录的用户可见

  • PRIVATE -对登录用户可见

  • HIDDEN -对任何人隐藏

API中的其他方法是更改/删除页面并获取页面列表或特定页面的信息。