Я создаю модуль recaptcha для фронт-офиса, весь код в порядке, но сообщение об ошибке идет не туда.
Я использую Prestashop 1.7.6.1, сообщение об ошибке печатаетсяв верхней части фронт-офиса, и мне нужно сообщение об ошибке для печати внутри поля формы.
Я установил сообщение об ошибке следующим образом: modules / recaptcha / recaptcha.php
public function hookActionRecaptchaAccountValidation()
{
if (!$this->isValidateRecaptcha()) { // Logic to validate recaptcha
// Set my error message
$context->controller->errors[] = $this->l('It was not possible to validate the reCaptcha.');
}
}
Я переопределяю AuthController, чтобы выполнить мой пользовательский хук, который сделает логику проверки recaptcha, здесь все в порядке, я тоже помещаю этот код, если вам нужно.
class AuthController extends AuthControllerCore
{
public function initContent()
{
if(Tools::isSubmit('submitLogin')){
// Execute my custom hook
Hook::exec('actionRecaptchaAccountValidation');
if(sizeof($this->context->controller->errors)){ // Verify if has error message
$login_form = $this->makeLoginForm()->fillWith(
Tools::getAllValues()
);
$this->context->smarty->assign([
'login_form' => $login_form->getProxy(),
]);
$this->setTemplate('customer/authentication');
FrontController::initContent();
return;
}
}
parent::initContent();
}
}
... Итак, как я могу поставитьсообщение об ошибке внутри поля формы, как в этом примере?
Пожалуйста, проверьте это изображение, где я показываю именно то, что мне нужно. https://i.imgur.com/Syzrf2C.png