Silverstripe 3.1 - DataExtension中的BetterButtons自定义操作

时间:2014-10-02 20:32:00

标签: silverstripe

有没有办法使用Unclecheese BetterButtons向Member对象添加自定义按钮?我正在使用DataExtension扩展Member对象,我想创建一个BetterButtons自定义操作。

这是我的代码和我收到的错误

private static $better_buttons_actions = array(
        'createAccountPdf'
    );

    public function getBetterButtonsActions(){
    $fields = parent::getBetterButtonsActions();

        if( $this->owner->Accounts()->Count() > 0 ){
            $fields->push(BetterButtonCustomAction::create('createAccountPdf', 'Datenblatt erstellen')->setSuccessMessage('PDF Datenblatt mit Zugangsdaten wurde erstellt.'));
        }

        return $fields;
    }

错误:

Fatal error: Call to undefined method DataObject::getBetterButtonsActions() in /_website/_dev/mysite/code/Extensions/ClientMemberExtension.php on line 128

而不是parent :: getBetterButtonsActions()我还尝试使用$ this-> owner,Member ::,DataObject ::

1 个答案:

答案 0 :(得分:2)

这听起来合乎逻辑,因为您的扩展程序的父级没有名为“getBetterButtonActions”的方法。

从BetterButtonDataObject中的代码我看到已经有一个钩子来更新DataExtension中的ButtonActions。

尝试:

public function updateBetterButtonsActions(&$actions) {
        if( $this->owner->Accounts()->Count() > 0 ){
            $actions->push(BetterButtonCustomAction::create('createAccountPdf', 'Datenblatt erstellen')->setSuccessMessage('PDF Datenblatt mit Zugangsdaten wurde erstellt.'));
        }
}