Если у вас задача: Использовать собственный код в контроллере регистрации, то
перегрузить стандартный контроллер можно двумя способами (оба описаны в нашей статье - http://readyscript.ru/text-blog/Kak-pra … yScript/):
1. Перегрузкой маршрута (рекомендуется)
2. Подменой класса (.my.inc.php)
--------------------------------------------------------------------
Если у вас задача - вставить при отправке SMS проверку разрешения от пользователя, то мне кажется вы выбрали оптимальный путь (доработав всего один класс (смс-транспорт) и полностью сохранив возможность обновления):
1. Создали доп. поле стандартными средствами в настройках модуля Пользователь. (насколько я понял)
2. Создали свой транспортный модуль для SMS, который проверяет данное поле. (это все равно нужно было бы делать, т.к. стандартный модуль не делает проверку на разрешение пользователя)
Не совсем понятно в чем костыльность вашего решения? (Возможно задача бы решалась проще, если бы было какое-нибудь событие перед отправкой SMS, которое бы можно было перехватывать и останавливать отправку.)
Или опишите, как бы вы хотели видеть реализацию вашей задачи?