如何在PrestaShop的帮助列表类中添加自定义按钮操作?

如何在PrestaShop的帮助列表类中添加自定义按钮操作?,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,你好,我正在为PrestaShop 1.6开发新的支付插件。我通过帮助列表类列出了插件发出的所有付款请求。是否有一种方法可以添加自定义按钮操作和操纵mu列表中的每一行?我寻找一个没有成功的解决方案 谢谢你的帮助!干杯 这是我的管理控制类 class AdminNameModuleController extends ModuleAdminController { public function __construct() { // Call of the parent constru

你好,我正在为PrestaShop 1.6开发新的支付插件。我通过帮助列表类列出了插件发出的所有付款请求。是否有一种方法可以添加自定义按钮操作和操纵mu列表中的每一行?我寻找一个没有成功的解决方案

谢谢你的帮助!干杯

这是我的管理控制类

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';
    }

}
}

当您定义字段列表数组(可能在构造函数中)时,也可以像这样添加操作按钮

$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
生成一个列表,但我看不到它有任何用途


是一个如何生成列表的示例。对于列表,您需要定义两件事:
table
fields\u list
properties。如果希望有操作,请像示例中那样添加它们。然后,一个
renderList()
方法将为您完成其余的工作。

当您定义字段列表数组(可能在构造函数中)时,也可以像这样添加操作按钮

$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
生成一个列表,但我看不到它有任何用途


是一个如何生成列表的示例。对于列表,您需要定义两件事:
table
fields\u list
properties。如果希望有操作,请像示例中那样添加它们。然后一个
renderList()
方法将为您完成其余的工作。

我将编写一个扩展AdminController的类,对吗?Becouse method
addRowAction
non PaymentCore method..@htmlbrewery是的,您需要一个扩展
ModuleAdminController
@Drot的管理员控制器类。谢谢您的帮助。我试试看。:)我尝试了所有方法——在这个类中声明扩展了
ModuleAdminController
的类,我声明了
processTest
displayTestLink
方法,但我的自定义操作不会显示在带有查看和编辑按钮的下拉菜单中。你知道为什么不行吗?我错在哪里?@htmlbrewery编辑您的问题并向我们展示您的控制器代码。我将编写扩展AdminController的类,对吗?Becouse method
addRowAction
non PaymentCore method..@htmlbrewery是的,您需要一个扩展
ModuleAdminController
@Drot的管理员控制器类。谢谢您的帮助。我试试看。:)我尝试了所有方法——在这个类中声明扩展了
ModuleAdminController
的类,我声明了
processTest
displayTestLink
方法,但我的自定义操作不会显示在带有查看和编辑按钮的下拉菜单中。你知道为什么不行吗?我哪里错了?@htmlbrewery编辑您的问题并向我们显示您的控制器代码。