Php 如何在Prestashop AdminController中自定义RowAction的操作?
我重写了AdminCartRulesControllerCore,并向AdminCartRulesController添加了一个行操作,效果很好Php 如何在Prestashop AdminController中自定义RowAction的操作?,php,prestashop,Php,Prestashop,我重写了AdminCartRulesControllerCore,并向AdminCartRulesController添加了一个行操作,效果很好 $this->addRowAction('Generate'); 但我不知道如何定义当我按下“Generate”时将调用的操作。我知道可以使用以下方法创建链接: public function displayGeneratetLink($token, $id, $name = null) { return '<a href="#"
$this->addRowAction('Generate');
但我不知道如何定义当我按下“Generate”时将调用的操作。我知道可以使用以下方法创建链接:
public function displayGeneratetLink($token, $id, $name = null) {
return '<a href="#" class="download" title="test"><i class="icon-cloud-upload"></i> ' . ($this->l('Export')) . '</a>';
}
public函数displayGenerateLink($token、$id、$name=null){
返回“”;
}
就我而言,我不需要重定向。我需要一个无需任何重定向即可执行的函数。您可以执行自己的操作列 您应该在
选择中包含行标识符字段:
$this->_select = ' a.id_order AS id_pdf';
然后,您可以将此新字段包括在字段列表中:
$this->fields_list = array(
/*other fields here*/
'id_pdf' => array(
'title' => $this->l('Actions'),
'width' => 35,
'align' => 'center',
'callback' => 'printPDFIcons',
'orderby' => false,
'search' => false,
'remove_onclick' => true)
);
最后,您必须实现printPDFIcons
功能$id_order将是您的标识符,$tr是包含所有行数据的数组:
public function printPDFIcons($id_order, $tr)
{
$route_to_pdf = 'for example: route to a pdf file to download it';
if ($route_to_pdf)
return '<span class="btn-group-action">
<span class="btn-group">
<a class="btn btn-default" target="_blank" title="' . $this->l('Label PDF') . '" href="' . $route_to_pdf . '">
<i class="icon-print"></i>
</a>
</span>
</span>';
else
return '';
}
公共函数打印版本($id\u order,$tr)
{
$route_to_pdf='例如:路由到pdf文件以下载它';
如果($route_to_pdf)
返回'
';
其他的
返回“”;
}
如果要在单击自定义按钮时执行某些操作,则应显示指向自己的AdminController
的链接,并作为action
参数传递一些标识符,如Generate
。然后使用postProcess
函数执行特定代码
祝你好运。你可以做你自己的行动专栏
您应该在选择中包含行标识符字段:
$this->_select = ' a.id_order AS id_pdf';
然后,您可以将此新字段包括在字段列表中:
$this->fields_list = array(
/*other fields here*/
'id_pdf' => array(
'title' => $this->l('Actions'),
'width' => 35,
'align' => 'center',
'callback' => 'printPDFIcons',
'orderby' => false,
'search' => false,
'remove_onclick' => true)
);
最后,您必须实现printPDFIcons
功能$id_order将是您的标识符,$tr是包含所有行数据的数组:
public function printPDFIcons($id_order, $tr)
{
$route_to_pdf = 'for example: route to a pdf file to download it';
if ($route_to_pdf)
return '<span class="btn-group-action">
<span class="btn-group">
<a class="btn btn-default" target="_blank" title="' . $this->l('Label PDF') . '" href="' . $route_to_pdf . '">
<i class="icon-print"></i>
</a>
</span>
</span>';
else
return '';
}
公共函数打印版本($id\u order,$tr)
{
$route_to_pdf='例如:路由到pdf文件以下载它';
如果($route_to_pdf)
返回'
';
其他的
返回“”;
}
如果要在单击自定义按钮时执行某些操作,则应显示指向自己的AdminController
的链接,并作为action
参数传递一些标识符,如Generate
。然后使用postProcess
函数执行特定代码
祝你好运。以下示例是将一个名为“批准”的新操作添加到帮助者列表中:
您可以在管理员控制器的构造函数中添加以下代码行
$this->addRowAction('approve');
public function processApproveAction()
{
--- YOUR CODE HERE ---
}
initProcess()函数应具有以下代码:
public function initProcess()
{
parent::initProcess();
if (Tools::getIsset('approve' . $this->table)) {
$this->action = 'approveAction';
}
}
然后必须在同一控制器中定义一个名为processApproveAction()的函数
$this->addRowAction('approve');
public function processApproveAction()
{
--- YOUR CODE HERE ---
}
希望这能有所帮助。以下示例是将一个名为“批准”的新操作添加到帮助者列表中:
您可以在管理员控制器的构造函数中添加以下代码行
$this->addRowAction('approve');
public function processApproveAction()
{
--- YOUR CODE HERE ---
}
initProcess()函数应具有以下代码:
public function initProcess()
{
parent::initProcess();
if (Tools::getIsset('approve' . $this->table)) {
$this->action = 'approveAction';
}
}
然后必须在同一控制器中定义一个名为processApproveAction()的函数
$this->addRowAction('approve');
public function processApproveAction()
{
--- YOUR CODE HERE ---
}
希望这能有所帮助。PrestaShop版本?PrestaShop 1.6版本PrestaShop版本?PrestaShop 1.6版本感谢您的努力。Bu在我的例子中,我不是在寻找一种不使用任何链接(href)执行操作的方法。感谢您的努力,这很清楚。Bu在我的情况下,我不是在寻找一种不使用任何链接(href)执行操作的方法。您好,感谢您的评论,我尝试了这个方法,但在行操作列表(编辑、删除)中没有看到“aprove”选项。在这种情况下,你生成的帮助列表一定有问题,因为这是我们要做的全部工作,我在我的许多模块中都做过。同样,我看不到新的操作链接,我应该在模块中声明帮助列表吗?嗨,谢谢你的评论,我试过了,但没有看到“aprove”选项在行操作列表中(编辑,删除)。在这种情况下,您生成的帮助器列表一定有问题,因为这是我们要做的全部工作,我在我的许多模块中都做过。在这里,同样,我看不到新的操作链接,我应该在模块中的何处声明帮助器列表?