0

我想使用 DotCMS 的布局即服务 (LaaS) 功能。这种方法记录在 https://dotcms.com/blog/post/more-than-a-headless-cms-layout-as-a-service-in-dotcmshttps://github.com/fmontes /dotcms 页

两篇文章都建议,DotCMS 页面 API 应该在响应中返回一个名为“布局”的字段,例如http://localhost:8080/api/v1/page/json/test-page

test-page是一个使用标准模板的页面。通过标准模板,我的意思是使用“模板设计器”创建的模板,左侧有一个 20% 的侧边栏,一个 100% 宽度的列,两者都包含“空白容器”。

无论我尝试什么,“布局”字段都不是响应的一部分。我得到的是:

{
  "errors": [],
  "entity": {
    "canCreateTemplate": true,
    "containers": ...,
    "numberContents": 2,
    "page": ...,
    "site": ...,
    "template": ...,
    "viewAs": ...  },
  "messages": [],
  "i18nMessagesMap": {},
  "permissions": []
}

我尝试了 DotCMS 版本 5.2.0 和 5.2.3。这可能只是企业版的一个功能吗?

编辑:我的期望:

{
  "errors": [],
  "entity": {
    "canCreateTemplate": true,
    "containers": ...,
    "layout": {
      "width": "responsive",
      "title": "mytemplate1",
      "header": true,
      "footer": true,
      "body": {
        "rows": [
          {
            "columns": [
              {
                "containers": [
                  {
                    "identifier": "b5ea1513-7653-4602-a729-97cd8dd099b6",
                    "uuid": "1582123997023"
                  }
                ],
                "widthPercent": 100,
                "leftOffset": 1,
                "styleClass": null,
                "preview": false,
                "width": 12,
                "left": 0
              }
            ],
            "styleClass": null
          }
        ]
      },
      "sidebar": {
        "containers": [
          {
            "identifier": "b5ea1513-7653-4602-a729-97cd8dd099b6",
            "uuid": "1582123991866"
          }
        ],
        "location": "left",
        "width": "small",
        "widthPercent": 20,
        "preview": false
      }
    }
    ...
4

2 回答 2

1

没关系,我自己找到了答案。

我检查了源代码。里面有com.dotmarketing.portlets.htmlpageasset.business.render.page.HTMLPageAssetRenderedBuilder#build以下一段代码:

        final TemplateLayout layout = template != null && template.isDrawed() && !LicenseManager.getInstance().isCommunity()
                ? DotTemplateTool.themeLayout(template.getInode()) : null;

所以答案是,只有拥有非社区许可证才能使用 DotCMS 推广的 LaaS。

于 2020-02-20T09:18:24.077 回答
0

您的页面需要使用“布局模板”才能从 dotCMS 检索布局 - 使用高级模板将不起作用。

此外,布局是企业版的一部分。确保您有许可证才能使用布局管理器。

于 2020-02-19T23:43:05.450 回答