我正在使用SilverStripe(版本3.1.6)和高级工作流插件。
我的网站主要是基于数据对象构建的。 我已经在.yml文件中分配了对象和模型管理员,如文档中所述:
MyObject:
extensions:
- WorkflowApplicable
MyObjectAdmin:
extensions:
- AdvancedWorkflowExtension
我还在对象的工作流程选项卡中分配工作流程。 我正在使用模板审核并批准工作流程。
虽然我在编辑页面时看到了启动工作流程的按钮,但该按钮不会显示在数据对象上。我是否需要在对象级别添加代码,或修改模板工作流以使用数据对象? 谢谢!
答案 0 :(得分:1)
我已经在这个模块上做了很多工作,但很少做任何与工作流和DataObjects相关的工作 - 但是 - 我记得你需要让自定义DataObjects"工作流感知" ,请在mysite/_config/config.yml
MyCustomeDataObject:
extensions:
- WorkflowApplicable
...然后运行dev/build
。
答案 1 :(得分:1)
如果你已经覆盖了DataObject中的getCMSFields()方法但是你没有使用scaffolding(通过调用fields = parent :: getCMSFields()),你需要确保调用'updateCMSFields'以便WorkflowApplicable扩展可以做它的事
public function getCMSFields(){
$fields = new FieldList();
...
$this->extend('updateCMSFields', $fields);
return $fields;
}
答案 2 :(得分:1)
我很高兴地宣布编写此插件的真棒SilverStripe团队解决了这个问题(在同一天!!!)
这些更改现在是主分支的一部分,因此我假设没有其他人会遇到此问题。