数据对象未显示按钮的Silverstripe Advancedwrokflow
我正在使用SilverStripe(3.1.6版)和advancedworkflow插件 我的网站主要是建立在数据对象上的。 我已在.yml文件中指定了对象和模型管理员,如文档中所述:数据对象未显示按钮的Silverstripe Advancedwrokflow,silverstripe,Silverstripe,我正在使用SilverStripe(3.1.6版)和advancedworkflow插件 我的网站主要是建立在数据对象上的。 我已在.yml文件中指定了对象和模型管理员,如文档中所述: MyObject: extensions: - WorkflowApplicable MyObjectAdmin: extensions: - AdvancedWorkflowExtension 我还在对象的“工作流”选项卡中指定了工作流。 我正在使用模板审阅和批
MyObject:
extensions:
- WorkflowApplicable
MyObjectAdmin:
extensions:
- AdvancedWorkflowExtension
我还在对象的“工作流”选项卡中指定了工作流。
我正在使用模板审阅和批准工作流
当我看到在编辑页面时启动工作流的按钮时,dataobject没有显示该按钮。我是否需要在对象级别添加代码,或修改模板工作流以处理数据对象?
谢谢大家! 我在这个模块上做了很多工作,但很少做任何关于工作流和数据对象的工作-但是-我记得你需要让你的自定义数据对象具有“工作流意识”,请在
mysite/_config/config.yml
MyCustomeDataObject:
extensions:
- WorkflowApplicable
…然后运行
dev/build
如果您已经覆盖了DataObject中的getCMSFields()方法,但没有使用scaffolding(通过调用fields=parent::getCMSFields()),则需要确保调用“updateCMSFields”,以便WorkflowApplied扩展能够完成它的工作
public function getCMSFields(){
$fields = new FieldList();
...
$this->extend('updateCMSFields', $fields);
return $fields;
}
我很高兴地宣布,写这个插件的出色的SilverStripe团队解决了这个问题(在同一天!!!) 有关代码提交信息,请查看:
这些更改现在是主分支的一部分,因此我认为没有其他人会面临此问题。感谢您的及时回答。我已经这样做了,并且运行了dev/build。我还看到了数据库中的变化。但是初始操作按钮仍然丢失…谢谢你。我确实使用了$fields=parent::getCMSFields();对于dataObject#getCMSActions()“需要由solid dataObject重载,以便该dataObject的自定义操作(包括该dataObject的扩展自定义操作)可以添加到EditForm。”因此,您可能需要在自定义dataObject中执行此操作:公共函数getCMSActions(){$actions=parent::getCMSActions();$this->extend('updatecmactions',$actions);返回$actions;}谢谢!您能解释一下该函数中应该包含什么或发送指向该引用的链接吗?这只是dataobject的一般实现。问题出在advancedworkflow加载项中…保存dataobject后,您能看到按钮吗?在advancedworkflow/code/extensions/wrokflowApplieve.php上的代码中挖掘铲斗第135行函数公共函数更新CMActions(FieldList$actions){不是在dataobjects上调用的,而是在pages上调用的。我相信这是添加按钮的函数。这有助于任何人理解这个问题吗?只是提供一个更新:我已经在github中提交了一个问题,并且在加载项中有一个bug。silverstripe的员工非常出色,非常勤奋。他们有很好的支持,并且已经在开发一个fix、 这里有一个问题的链接:@TomerAlmog,看看你在Github上提出的问题,它似乎已经解决了。也许值得你回答你自己的问题,说明问题已经解决,可能是如何解决的(链接到Github中提到的PR中的正确位),也可以将您需要解决问题的任何其他重要部分连接在一起。