2014-10-02 41 views
1

有沒有方法可以使用Unclecheese BetterButtons將成員對象添加到成員對象中?我用一個DataExtension擴展成員對象,我想創建一個BetterButtons自定義操作。Silverstripe 3.1 - BetterButtons DataExtension中的自定義動作

這是我的代碼和錯誤,我收到

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 

代替父:: getBetterButtonsActions()我也有$這個 - 試了一下>業主,會員:: ,DataObject ::

回答

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.')); 
     } 
} 
+0

感謝你的嘗試,但它仍然無法正常工作。使用你的代碼,我收到'調用成員函數push()在非對象',如果我添加'$ fields = parent :: getBetterButtonsActions();'或與updateBetterButtonsActions我收到'調用未定義的方法DataExtension :: getBetterButtonsActions()' – invictus 2014-10-15 17:14:43

+0

糟糕,我的壞。我們只有變量$ action可用(定義在函數中),所以試試$ actions-> push ... – wmk 2014-10-16 15:05:04

+0

很棒!謝謝! – invictus 2014-10-22 10:24:06

相關問題