Сообщение #2 zyxer » 26.12.2019, 14:08
Я так понимаю вы использовали шорткод в виде переменной, когда в модуле вы каком-то экстендере создали переменную в которой лежит HTML код, и выводите её. Этот метод плох тем, что такая переменная создается еще в момент сбора системы (до вызова метода контроллера текущего роута), а капча создается прямо из tpl файла, вот и получается что до момента её валидации она уже создаётся новая.
Более предпочтительный метод работы с шорткодами, это объявить smarty плагин, и в клиентском коде выводить не {$my_modue_block}, а {my_modue_block}
документация по плагинам в модулях
Я так понимаю вы использовали шорткод в виде переменной, когда в модуле вы каком-то экстендере создали переменную в которой лежит HTML код, и выводите её. Этот метод плох тем, что такая переменная создается еще в момент сбора системы (до вызова метода контроллера текущего роута), а капча создается прямо из tpl файла, вот и получается что до момента её валидации она уже создаётся новая.
Более предпочтительный метод работы с шорткодами, это объявить smarty плагин, и в клиентском коде выводить не {$my_modue_block}, а {my_modue_block} [url=https://github.com/OkayCMS/Okay3/blob/master/docs/smarty_plugins.md#smarty-%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D1%8B-%D0%B2-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%85]документация по плагинам в модулях[/url]
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS