MURA CMS:如何以编程方式添加页面

时间:2018-02-14 11:01:40

标签: coldfusion mura

那么,我能说什么呢?如何在MURA CMS中以编程方式添加页面?优选版本6.1。

我正在构建一个需要在站点管理器中创建几个页面的插件。我想在'plugin / plugin.cfc'组件的'install'方法中添加这个例程。

我一直无法在线找到任何指针,这或许意味着无法解决此特定问题。但是,我生活在希望之中。

提前感谢大家对此问题的任何帮助。

1 个答案:

答案 0 :(得分:2)

当您向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-objects/content-bean/找到。虽然概念和语法仍适用于旧版本,但自v6.1以来,已添加了一些处理Mura内容对象的新方法。我也强烈建议尽快升级,因为v7.1即将发布(截至2018年2月)。

也就是说,只有两个必填字段/属性是titleparentid。这是能够满足您需求的基本代码:

// 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其他属性(如前面链接中所定义)。

干杯!