Antidischarge News - Сохраняем данные новости при неудачном вводе капчи

Хак был навеян
вопросом пользователя
о проверке кода безопасности на ajaxе.
Вспомнив как я сталкивался с добавлением новостей с покон веков в дле, будучи еще публикатором какого то вареза на локалке моего провайдера я добавлял новости, и тут зловещий движок смеялся надо мной, что я не правильно ввел каптчу и стирал в ноль моя запись, ужас... :)
Это действительно грусть и печаль, когда ты пишешь текст новости [тогда я и взял в привычку копировать его до отправки] и возможно случайно неверно ввел код и тут на... пусто... жесть...
Спасает опера от этого, но не все же на ней сидят, так что если вас тоже раздражает это, решаем вместе:
Начав изучать код я понял, что тут простой заменой пару строчек кода не обойдется, и надо перенести код, инструкцию поэтому писать было бы очень заковыристо, так что покажу как я сделал это на примере структуры файла:
так выглядит штатный engine/modules/addnews.php:

и вот что я сделал:

+ еще несколько условий и заполнение инпутов отправлеными значениями, в результате получается файл:
с многими комментариями внутри для ясности.
В результате работы этого файла, при неверном вводе кода безопасности или других ошибках получаем не обычный месадж с кнопкой вернуться назад, а полноценную форму с заполненными вами до этого полями и ошибкой сверху:

Для вывода ошибки - в шаблон addnews.tpl в нужное вам место вставьте {errors}.
Хак сохраняет абсолютно ВСЕ введенные данные, вплоть до значений доп полей.
Версия DLE: 9.6-8 (Для более ранних версий пусть целсофт сам решает эту проблему)
Автор: Dmitry Dark5ider
Как всегда - спасибо за интерес, будут вопросы - пишите.
Источник:Dmitry Dark5ider, DLE