【发布时间】:2017-07-11 16:46:19
【问题描述】:
我们有一打左右的自定义 PageBuilder 线框模板供数千个内容页面使用。我们希望将我们所有的内容从旧的线框模板迁移到新的线框模板。我最初考虑通过 SQL 手动更新内容数据库来做到这一点,但我不确定这是否是一种安全的方法。另外,这涉及一些棘手的 SQL,在文本字段中使用编码 xml-embedded-in-xml。真是丑陋的东西。
有人知道最好的方法吗?
【问题讨论】:
标签: ektron
我们有一打左右的自定义 PageBuilder 线框模板供数千个内容页面使用。我们希望将我们所有的内容从旧的线框模板迁移到新的线框模板。我最初考虑通过 SQL 手动更新内容数据库来做到这一点,但我不确定这是否是一种安全的方法。另外,这涉及一些棘手的 SQL,在文本字段中使用编码 xml-embedded-in-xml。真是丑陋的东西。
有人知道最好的方法吗?
【问题讨论】:
标签: ektron
先给点建议……
数以千计的线框似乎很多。这不是对您的话的怀疑,而是大多数 Ektron 客户不需要那么多基于 PageBuilder 的页面的声明。如果您使用 PageBuilder 来创建常规内容页面(HTML 或智能表单),例如新闻稿、博客文章或类似内容,那么您可能需要重新考虑该策略。 PageBuilder 对于大多数作者来说很困难,对于不需要大量布局更改的页面,它可能会导致大量的创作开销以及迁移困难(咳咳……)。深思熟虑。最好将小部件中的内容迁移到智能表单中,使用 ContentType 方法和开发人员普通的旧 .NET WebForms 模板。
现在......我已经有一段时间没有深入研究其中的一些内容了。我也没有任何本地的 Ektron 实例可以玩了,所以请多多包涵。我要在这里传达的大部分内容都是挖掘已经超过 2 年未使用的知识。
正如您所说,PageBuilder 在数据库中表示为 XML。此外,Ektron DB 非常庞大且复杂。进行这两种操作既具有挑战性又具有风险,尤其是在 SQL 方面。因此,如果有一种方法可以在严格操作 XML 的同时避免 SQL 部分,那么这将是我的第一个目标。
还有一点需要注意的是,PageBuilder 只是内容。这意味着您可以使用标准的 Content API 访问 XML 数据(无论哪个适合您的 Ektron 版本,您在上面没有说明...)。我不知道您是否能够创建一个新页面作为 PageBuilder 布局。不过值得一试。
还有一组未记录的 API/方法仅适用于 PageBuilder,您可以使用它们。您可以在工作区中找到 PageBuilder 功能作为用户控件 - 其背后的代码未编译。实际上,当我为 PageBuilder Bootstrap 支持构建第一个原型(最终在 8.7 中预发布并为 9.0 重新设计)时,我实际上使用了这些信息作为参考材料。这些控件应该向您展示更多关于 PageBuilder 的工作原理,并可能帮助您创建小部件实例和分配。
【讨论】: