
Данный функционал добавляем в настройки профиля пользователя возможность смены email.

Для смены email пользователю необходимо ввести старый email и новый. Далее на новый email будет получен код подтверждения который нужно ввести в настройки. При каждом запросе генерируется новый проверочный код.



После установки дополнения необходимо добавить строчку для включения данного хука, в файле system/controllers/users/manifest.php
Добавить строку: 'profile_edit_menu'
В итоге содержание файла:
<?php 'admin_dashboard_chart', 'menu_users', 'rating_vote', 'user_notify_types', 'user_privacy_types', 'user_tab_info', 'auth_login', 'user_loaded', 'wall_permissions', 'wall_after_add', 'wall_after_delete', 'sitemap_sources', 'profile_edit_menu' ) );
DONATE!!!
p.s. чуть не забыл: плюсы надо в карму ставить если дополнение вам полезно. тынц
p.s. если чуток доработать, можно проверку сделать сразу по новой и по старой почте.
Еще пару-тройка советов и вариантов и соберу апдейт.
Кто установил эту версию - обновление будет "безболезненным".
Дополнение не изменяет системные файлы (кроме описанной добавленной строчки)
Предлагаю дополнить следующим:
1. Хранить старый е-мейл в базе..
2. Ввести настройку админом времени, в течение которого нельзя повторно менять е-мейл (времени блокировки смены е-мейл). Т.е. пользователь может менять е-мейл один раз в столько-то дней (указываем в настройке).
3. Далее дополнить ещё предупреждающим оповещением (на старый мейл) в течение указанного выше времени блокировки столько-то раз (или лучше указывать дни, когда выслать это предупреждение: высылать на такой-то и такой-то день /на 2-й, 3-й и 7-й/ - указывается в настройках аналогично ). Где сообщается, что "Вы сменили е-мейл ...и т д" - здесь, если было все по желанию пользователя - письмо остается без ответа, если вопреки - пользователь должен написать ответ админу с просьбой восстановления (в письме может быть код - как вариант - админ вставляет код - по нему иденцифицируется и фиксируется откат).
Предвижу вопрос: как такое может быть, если пользователь сам подтвердил смену со старого мейла - очень просто, например, кто-то временно сел за его комп, а сейчас как правило включенный комп означает автоподключение к почте (у большинства).
4. После смены почты держать в админке пользователя сообщение "Вы сменили е-мейл" (с датой изменения и определенное время - время блокировки (см.п.2)
5. И делайте компонент с нормальными языковыми константами для возможности мультиязычности.
3-й и 4-й пункт не понял
с 5-ым пунктом согласен
И от себя добавлю, высылать на старый адрес не код, а ссылку, переходя по которой происходит подтверждение, по типу как это сделано при регистрации и смене пароля. Ещё одна может и бредовая идея - это сделать модерируемую смену почты, т.е. модератор должен подтвердить смену(опционально).
За другие советы спасибо. В ближайшее время "усложнять" дополнение не планируется, в виде проверок на время и установки различного рода ограничений. Основной целью данного дополнения было внедрить данную функцию, т.к. таковой вообще не было.
Либо перезакачать файлы с заменой (Что в принципе в данном случае одно и то же)
Хотелось бы спросить как вынуть вкладку из "Ещё". Там ограничения наверное 6 вкладок. Интересно где это изменяется в базе данных, или в файлах. Шаблон стандартный
Без режима отладки поля нет...
Путь → \system\controllers\users\frontend.php
Добавить после