2017-02-02 13 views
0

Привет, я разрабатываю новый плагин платежей для PrestaShop 1.6. Я сделал функциональность для перечисления всех запросов на оплату, сделанных моим плагином через класс справки. Есть ли способ добавить пользовательское действие кнопки и манипулировать каждой из строк в списке му? Я ищу решение без успеха.Как добавить пользовательское действие кнопки в списке, сделанное классом HelpList в PrestaShop?

Спасибо за помощь! Ура!

Это мой класс Admin Controller.

class AdminNameModuleController extends ModuleAdminController { 

public function __construct() 
{ 

    // Call of the parent constructor method 
    parent::__construct(); 


    // Add actions 
    //$this->addRowAction('view'); 
    //$this->addRowAction('delete'); 
    $this->addRowAction('test'); 
} 

public function initToolbar() 
{ 
    $this->toolbar_btn = array(); 
} 

public function processTest() 
{ 
    // Do your button processing here 
} 

public function displayTestLink($token = null, $id, $name = null) 
{ 
    $tpl = $this->createTemplate('helpers/list/list_action_test.tpl'); 

    $tpl->assign(array(
     'href' => self::$currentIndex.'&token='.$this->token.'& 
        '.$this->identifier.'='.$id.'&test'.$this->table.'=1', 
      'action' => $this->l('Test') 
    )); 

    return $tpl->fetch(); 
} 


public function initProcess() 
{ 

    parent::initProcess(); 

    if (Tools::getValue('test'.$this->table)) 
    { 
     $this->display = 'test'; 
     $this->action = 'test'; 
    } 

} 
} 

ответ

2

Возможно, когда вы определяете массив полей полей (возможно, в конструкторе), вы также можете добавить соответствующие действия.

$this->addRowAction('mybutton'); 

Затем вам нужно установить действие контроллера, если нажимается пользовательская кнопка.

public function initProcess() 
{ 
    if (Tools::getIsset('mybutton'.$this->table)) 
    { 
     $this->action = 'mybutton'; 
    } 
    parent::initProcess(); 
} 

И, наконец, создать метод, который обрабатывает действие.

public function processMybutton() 
{ 
    // Do your button processing here 
} 

Редактировать

Вы сказали, что вы используете HelperList, чтобы создать список, но я не вижу использование этого.

Here - пример создания списка. Для списка вам необходимо определить две вещи: table и fields_list. Если вы хотите иметь действия, добавьте их, как в примере. Тогда метод renderList() сделает все остальное за вас.

+0

Я напишу класс, который расширяет AdminController, верно? Becouse method 'addRowAction' non PaymentCore method. – htmlbrewery

+1

@htmlbrewery Да, вам нужен класс контроллера администратора, который расширяет' ModuleAdminController'. – TheDrot

+0

идеальный ответ, до – Wolfack