Prestashop 1.6 - 从TPL按钮调用函数

时间:2018-06-12 06:09:10

标签: php prestashop-1.6

我在管理页面中创建了一个按钮,其中包含以下代码。这是我创建的自定义模块,用于从Prestashop后台执行功能。

public function hookDisplayAdminOrder($params) {
    $shipping = 'index.php?controller=AdminShipping&type=refund&id_order='.$params['id_order'].'&token='.Tools::getAdminTokenLite('AdminShipping');
    $this->context->smarty->assign(array(
        'shipping'      => $shipping
    ));
    return $this->display(__FILE__, 'views/templates/admin/link.tpl');
}

按钮显示如下代码:

<div id="Panel" class="panel">
<div class="panel-heading">
    <i class="icon-money"></i>
    Shipping Charges
</div>
<button type="button" class="btn btn-default" name="submitShipLabel" onclick="window.open('{$shipping}','_blank');">Execute</button>

我的主要目的是在点击按钮时执行一项功能。我很少知道如何放置和调用函数。

非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

&lt; ...如果我做对了......&gt;

向网址添加自定义处理程序:

    $shipping = 'index.php?controller=AdminShipping&type=refund&id_order='.$params['id_order'].'&token='.Tools::getAdminTokenLite('AdminShipping').'&customAction=1';

将控制权提前挂钩:

if (Tools::getIsSet('customAction') {
    $this->yourFunction();
}

结果:

public function hookDisplayAdminOrder($params) {

    if (Tools::getIsSet('customAction') {
        $this->yourFunction();
    }
    $shipping = 'index.php?controller=AdminShipping&type=refund&id_order='.$params['id_order'].'&token='.Tools::getAdminTokenLite('AdminShipping').'&customAction=1';
    $this->context->smarty->assign(array(
        'shipping'      => $shipping
    ));
    return $this->display(__FILE__, 'views/templates/admin/link.tpl');
}

public function yourFunction()
{
    //Do something
}