如何在 PrestaShop 中由 HelpList class 创建的列表中添加自定义按钮操作?

How to add custom button action in list make by HelpList class in PrestaShop?

您好,我正在为 PrestaShop 1.6 开发新的支付插件。我制作了通过 HelpList class 列出我的插件发出的所有付款请求的功能。有没有办法添加自定义按钮操作和操作 mu 列表中的每一行?我搜索了一个没有成功的解决方案。

感谢帮助!干杯!

这是我的管理控制器 class。

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 生成列表,但我没有看到它的任何用法。

Here 是如何生成列表的示例。对于列表,您需要定义两件事:tablefields_list 属性。如果您希望有操作,请像示例中那样添加它们。然后 renderList() 方法将为您完成剩下的工作。