那么,我能说什么呢?如何在 MURA CMS 中以编程方式添加页面?最好是 6.1 版。
我正在构建一个需要在站点管理器中创建几个页面的插件。我想在 'plugin/plugin.cfc' 组件的 'install' 方法中添加这个例程。
我一直无法在网上找到任何指向此问题的指针,这也许意味着无法解决此特定问题。但是,我活在希望中。
提前感谢人们对此提供的任何帮助。
那么,我能说什么呢?如何在 MURA CMS 中以编程方式添加页面?最好是 6.1 版。
我正在构建一个需要在站点管理器中创建几个页面的插件。我想在 'plugin/plugin.cfc' 组件的 'install' 方法中添加这个例程。
我一直无法在网上找到任何指向此问题的指针,这也许意味着无法解决此特定问题。但是,我活在希望中。
提前感谢人们对此提供的任何帮助。
当您将内容添加到 Mura 时,关键是您需要知道parentid
您希望新内容项存在的位置。除此之外,Mura 提供了一种对内容项执行 CRUD 操作的简单方法。您可以在http://docs.getmura.com/v6/back-end/base-mura-objects-beans/loading-beans/了解更多信息(基于您指定的版本)。我还想指出,文档在最新版本中得到了极大的扩展,可以在http://docs.getmura.com/v7/mura-developers/mura-beans-objects/common-bean-找到对象/内容豆/. 虽然概念和语法仍然适用于旧版本,但自 v6.1 起添加了一些用于处理 Mura 内容对象的新方法。我也强烈建议尽快升级,因为 v7.1 也即将发布(截至 2018 年 2 月)。
也就是说,仅有的两个必填字段/属性是title
和parentid
。这是能够执行您需要的操作的基本代码:
// load the parent content item
parentBean = $.getBean('content').loadBy(title='Home');
// you may want to verify the `parentBean` actually exists before proceeding
if ( parentBean.getIsNew() ) {
Throw(message='parentBean does NOT exist!');
}
// v6.1 syntax
newBean = $.getBean('content')
.setValue('title', 'Some Title')
.setValue('parentid', parentBean.getContentID())
.save();
// v7.0+ syntax
newBean = $.getBean('content')
.set('title', 'Some Title')
.set('parentid', parentBean.get('contentid'))
.save();
// after saving, you can check for errors
if ( !StructIsEmpty(newBean.getErrors()) ) {
WriteDump(var=newBean.getErrors(), abort=true);
}
如果需要,您也可以清楚地看到set
其他属性(如前面链接中定义的)。
干杯!