我是prestashop的新手(版本1.6),我对链接有一些问题。 我想添加另一个带有额外参数的登录链接,以便我可以从连接页面隐藏注册部分。 所以在nav.tpl中,我添加了额外的参数:
$link->getPageLink('my-account', true, NULL, ['params' => 'myTest'])|escape:'html':'UTF-8'}
当我点击该链接时,它完全消失,并且在AuthController(initContent)Tools:getValue('params')
中返回null。我不知道如何解决这个问题。谢谢
答案 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'] : ''));
那应该在登录页面上保留其他查询参数。