Исходное сообщение тут https://support.webasyst.ru/fo...
Если в шаблоне одновременно вызвать один за другим хелперы $wa->loginForm(), а после $wa->signupForm, то при открытии страницы система упадёт с фатальной ошибкой.
Это происходит из-за кэширования Smarty шаблонов с одинаковым названием (хотя и находящихся в разных директориях).
Оба шаблона form.html инклюдят inline файл confirmation_block.inc.html. При этом:
- у loginForm есть статический метод класса inputName
- у signupForm такого метода нет, но есть кастомная smarty-функция, определённая в коде шаблона confirmation_block.inc.html
Поскольку при вызове хелпера loginForm confirmation_block.inc.html уже отренедерился один раз, то при вызове signupForm этот блок выбирается из кэша и пытается выполнить `{$renderer->getInputName('confirmation_code')}` из шаблона от loginForm, что приводит к фатальной ошибке.
Минимальный фикс:
- переименовать wa-system/signup/templates/confirmation_block.inc.html в wa-system/signup/templates/wa_signup_confirmation_block.inc.html
- в wa-system/signup/templates/form.html изменить соответствующий {include file="..."}
Хотя я бы, честно говоря, всем шаблонам добавил бы какие-то префиксы типа wa_signup_... , wa_frontend_login_... и т.п.
0 комментариев