【问题标题】:How to add custom button action in list make by HelpList class in PrestaShop?如何通过 PrestaShop 中的 HelpList 类在列表中添加自定义按钮操作?
【发布时间】:2017-02-02 08:14:33
【问题描述】:

您好,我正在为 PrestaShop 1.6 开发新的支付插件。我通过 HelpList 类创建了列出我的插件发出的所有付款请求的功能。有没有办法添加自定义按钮操作和操作 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';
    }

}
}

【问题讨论】:

    标签: prestashop prestashop-1.6


    【解决方案1】:

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

    $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() 方法将为您完成剩下的工作。

    【讨论】:

    • 我将编写扩展 AdminController 的类,对吗?因为方法 addRowAction 非 PaymentCore 方法..
    • @htmlbrewery 是的,您需要一个扩展 ModuleAdminController 的管理控制器类。
    • @TheDrot 谢谢大家的帮助。我会尝试。 :)
    • 我什么都试过了——在这个类中声明扩展ModuleAdminController的类我声明processTestdisplayTestLink方法但是我的自定义操作没有显示在下拉菜单中查看和编辑纽扣。任何想法为什么不起作用?我哪里错了?
    • @htmlbrewery 编辑您的问题并向我们展示您的控制器代码。
    猜你喜欢
    • 2014-03-22
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多