链接参数

时间:2017-02-19 13:22:46

标签: php model-view-controller smarty prestashop prestashop-1.6

我是prestashop的新手(版本1.6),我对链接有一些问题。 我想添加另一个带有额外参数的登录链接,以便我可以从连接页面隐藏注册部分。 所以在nav.tpl中,我添加了额外的参数:

$link->getPageLink('my-account', true, NULL, ['params' => 'myTest'])|escape:'html':'UTF-8'}

当我点击该链接时,它完全消失,并且在AuthController(initContent)Tools:getValue('params')中返回null。我不知道如何解决这个问题。谢谢

3 个答案:

答案 0 :(得分:0)

你应该和Smarty合作。

您应该在函数initContent中传递文件AuthController的参数。

编辑:

$this->context->smarty->assign(array(
                'inOrderProcess' => true,
                'PS_GUEST_CHECKOUT_ENABLED' => Configuration::get('PS_GUEST_CHECKOUT_ENABLED'),
                'PS_REGISTRATION_PROCESS_TYPE' => Configuration::get('PS_REGISTRATION_PROCESS_TYPE'),
                'sl_country' => (int)$this->id_country,
                'countries' => $countries
            ));

替代方法 在同一个功能中,您可以进行另一次更改

在prestashop中,您可以使用以下函数使用GET和POST:

$param = (int) (Tools::getValue ('myTest'));

答案 1 :(得分:0)

您传递给getPageLink函数的数组似乎有误,请尝试以下操作:

{$params = ['params' => 'myTest']}
$link->getPageLink('my-account', true, NULL, $params)|escape:'html':'UTF-8'}

答案 2 :(得分:0)

这是因为当FrontController(例如MyAccountController)受到保护时,用户将被重定向到登录页面,并且查询参数将丢失。要解决此问题,请更改/classes/controller/FrontController.php:

Tools::redirect('index.php?controller=authentication'.($this->authRedirection ? '&back='.$this->authRedirection : ''));

收件人:

Tools::redirect('index.php?controller=authentication'.($this->authRedirection ? '&back='.$this->authRedirection.'&'.$_SERVER['QUERY_STRING'] : ''));

那应该在登录页面上保留其他查询参数。