2014-10-02 2 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() Я также пробовал с $ this-> владелец, член :: , DataObject ::

ответ

2

Это звучит логично, поскольку родительский элемент вашего расширения не имеет метода, называемого «getBetterButtonActions».

Из кода в BetterButtonDataObject Я вижу, что уже есть крючок для обновления ButtonActions в DataExtension.

попробовать:

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

+0

Ой, мой плохой. У нас есть только доступные переменные $ actions (определенные функции int), поэтому попробуйте $ actions-> push ... – wmk

+0

отлично работает! спасибо! – invictus

Смежные вопросы