【问题标题】:Silverstripe Advancedwrokflow with DataObject not showing button带有 DataObject 的 Silverstripe Advancedwrokflow 未显示按钮
【发布时间】:2015-03-02 19:06:03
【问题描述】:

我正在使用带有高级工作流插件的 SilverStripe(版本 3.1.6)。

我的网站主要建立在数据对象之上。 如文档中所述,我已在 .yml 文件中分配了对象和模型管理员:

MyObject:
    extensions:
        - WorkflowApplicable
MyObjectAdmin:
    extensions:
        - AdvancedWorkflowExtension

我还在对象的工作流选项卡中分配了工作流。 我正在使用模板审核和批准工作流程。

虽然我在编辑页面时看到启动工作流的按钮,但该按钮并未针对数据对象显示。我是否需要在对象级别添加代码,或修改模板工作流以使用数据对象? 谢谢!

【问题讨论】:

  • 保存数据对象后能看到按钮吗?
  • 深入代码,在第 135 行的 advancedworkflow/code/extensions/WrokflowApplicable.php 上,函数 public function updateCMSActions(FieldList $actions) { 不在数据对象上调用,而是在页面上调用。这是添加我相信的按钮的功能。这是否有助于任何人理解问题?
  • 只是给一个更新:我已经在 github 中提交了一个问题,并且插件中有一个错误。 silverstripe 的伙计们很棒而且很勤奋。他们得到了很大的支持,并且已经在努力解决问题。这是该问题的链接:github.com/silverstripe-australia/advancedworkflow/issues/202
  • @TomerAlmog,看看你在 Github 上提出的问题,似乎已经解决了。可能值得您回答自己的问题,说明问题已解决,可能是如何解决的(链接到 Github 中提到的 PR 中的正确位),还与解决问题所需的任何其他重要部分联系在一起.

标签: silverstripe


【解决方案1】:

我已经为这个模块做了很多工作,但很少对工作流和数据对象做任何事情 - 但是 - 我记得你需要让你的自定义数据对象“感知工作流”,在 @987654321 中尝试以下操作@

MyCustomeDataObject:
  extensions:
    - WorkflowApplicable

...然后运行dev/build

【讨论】:

  • 感谢您的及时答复。我已经做到了,并且确实运行了 dev/build。结果,我还看到了数据库中的更改。但初始操作按钮仍然缺失...
【解决方案2】:

如果您在 DataObject 中覆盖了 getCMSFields() 方法但不使用脚手架(通过调用 fields=parent::getCMSFields()),则需要确保调用“updateCMSFields”,以便 WorkflowApplicable 扩展可以做自己的事

public function getCMSFields(){
    $fields = new FieldList();
    ...
    $this->extend('updateCMSFields', $fields);
    return $fields;
}

【讨论】:

  • 谢谢你。我确实使用了 $fields = parent::getCMSFields();
  • dataObject#getCMSActions() 的注释“需要被实体数据对象重载,以便该数据对象的自定义操作,包括该数据对象的扩展自定义操作可以添加到 EditForm。”因此,您可能需要在自定义数据对象中执行此操作: public function getCMSActions(){ $actions = parent::getCMSActions(); $this->extend('updateCMSActions', $actions);返回$动作; }
  • 谢谢!您能否解释一下该函数中应该包含什么或发送指向该参考的链接?
  • 这只是数据对象的一般实现。问题出在高级工作流插件中...
【解决方案3】:

我很高兴地宣布,编写此插件的出色 SilverStripe 团队解决了这个问题(在同一天!!!)

有关代码提交信息,请查看: https://github.com/silverstripe-australia/advancedworkflow/commit/38c5480e6b5c9a6856938ca774f2caf2790a788d

这些更改现在是主分支的一部分,所以我认为没有其他人会遇到这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    相关资源
    最近更新 更多