Ситуация: мне нужно было добавить форму методом POST на страницу CMS. Я создал собственный хук и модуль, успешно отображающий форму. Затем мне нужно отреагировать на ошибки ввода пользователя, например. когда пользователь не вводит адрес электронной почты, мне нужно его обнаружить, снова отобразить всю страницу вместе с формой и с четко указанными «ошибками» в пользовательском вводе.
Проблема: проблема заключается в том, чтобы снова отобразить ВСЕ страницу со связанной информацией (например, об ошибках и т. д.). Когда я добавляю такой код в файл PHP модуля,
return $this->display(__FILE__, 'modulename.tpl');
он (естественно) отображает ТОЛЬКО форму, а не всю страницу CMS с формой.
В случае этого кода,
Tools::redirectLink('cms.php?id_cms=7');
Я не могу передать какую-либо информацию ни с помощью GET, ни с помощью метода POST.
$_POST['test'] = 1;
Tools::redirectLink('cms.php?id_cms=7&test');
Я тоже пробовал присвоить умным переменным
$smarty->assign('test', '1');
(Мне нужно использовать его в файле .tpl, где создается сама форма), но нет способа заставить ее работать.
{if isset($test)}...,
{if isset($smarty.post.test)}...,
{if isset($_POST['test'])}... {* neither of these conditionals end up as true *}
Даже назначение параметра GET URL-адресу не влияет, потому что, как я полагаю, ссылка переписывается на какой-то дружественный URL-адрес, независимо от того, включил ли я другой аргумент или нет. ([SHOPNAME]/cms.php?id_cms=7&test
-> [SHOPNAME]/content/7-cmspage-name
)
У меня вопрос: есть ли способ «перенаправить» или «перезагрузить» текущую страницу (или, возможно, любую страницу в целом) в prestashop вместе с моими собственными данными?
Я как бы объяснил все дело, поэтому я готов услышать лучшее общее решение, чем мое (возможно, я вообще неправильно думаю об этом деле). Это был бы другой возможный ответ.