如何在PrestaShop的帮助列表类中添加自定义按钮操作?
你好,我正在为PrestaShop 1.6开发新的支付插件。我通过帮助列表类列出了插件发出的所有付款请求。是否有一种方法可以添加自定义按钮操作和操纵mu列表中的每一行?我寻找一个没有成功的解决方案 谢谢你的帮助!干杯 这是我的管理控制类如何在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
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 methodaddRowAction
non PaymentCore method..@htmlbrewery是的,您需要一个扩展ModuleAdminController
@Drot的管理员控制器类。谢谢您的帮助。我试试看。:)我尝试了所有方法——在这个类中声明扩展了ModuleAdminController
的类,我声明了processTest
和displayTestLink
方法,但我的自定义操作不会显示在带有查看和编辑按钮的下拉菜单中。你知道为什么不行吗?我错在哪里?@htmlbrewery编辑您的问题并向我们展示您的控制器代码。我将编写扩展AdminController的类,对吗?Becouse methodaddRowAction
non PaymentCore method..@htmlbrewery是的,您需要一个扩展ModuleAdminController
@Drot的管理员控制器类。谢谢您的帮助。我试试看。:)我尝试了所有方法——在这个类中声明扩展了ModuleAdminController
的类,我声明了processTest
和displayTestLink
方法,但我的自定义操作不会显示在带有查看和编辑按钮的下拉菜单中。你知道为什么不行吗?我哪里错了?@htmlbrewery编辑您的问题并向我们显示您的控制器代码。