Advertisement:

Author Topic: Предлагать смену пароля при первом входе. Как?  (Read 5483 times)

Offline Suntechnic

  • Newbie
  • *
  • Posts: 9
Сабж.
Пользователи регистрируются админом и приглашаются на форум. Как при первом входе предложить им сменить пароль?
Есть мод?
Если нет, подскажите:
1 Как детектировать первый вход?
2 Где в SMF принято складывать свой кастомный функционал? Есть какой-то файл который инклюдится всегда и не затирается обновлениями?

Online digger

  • Full Member
  • ***
  • Posts: 691
  • Gender: Male
    • realdigger on GitHub
    • SMF Russian Community
Quote
2 Где в SMF принято складывать свой кастомный функционал? Есть какой-то файл который инклюдится всегда и не затирается обновлениями?
Изучайте хуки http://wiki.simplemachines.org/smf/Integration_hooks
В /Sources/ кладите свой файл и хуком подключайте в загрузку.

Offline Suntechnic

  • Newbie
  • *
  • Posts: 9
Простите, не уверен что могу разобраться. Можно пример? Куда размещать саму функцию хука?

Online digger

  • Full Member
  • ***
  • Posts: 691
  • Gender: Male
    • realdigger on GitHub
    • SMF Russian Community
Простите, не уверен что могу разобраться. Можно пример? Куда размещать саму функцию хука?
Любой мод работающий на хуках скачайте и используйте в качестве примера.

Offline Suntechnic

  • Newbie
  • *
  • Posts: 9
В том-то и проблема, что я не пойму какой.
Несколько скачал первых попавшихся, но даже не понял используют они хуки или нет.

Вот есть вызов call_integration_hook('integrate_register', array(&$regOptions, &$theme_vars)); в Subs-Members.php.
Это как я понимаю инициализация события на которое я должен подписаться.
Как мне туда врезаться? Где подписаться на этот вызов?

Offline Suntechnic

  • Newbie
  • *
  • Posts: 9
Мне по  сути сейчас надо задавать real_name при регистрации.
Я пока тупо врезался так (ибо время не ждет):
Code: [Select]
if (isset($_POST['real_name'])) {
$regOptions['register_vars']['real_name'] = $_POST['real_name'];
}
сразу после call_integration_hook('integrate_register', array(&$regOptions, &$theme_vars));

Теперь бы понять как по человечески это оформить...

Online digger

  • Full Member
  • ***
  • Posts: 691
  • Gender: Male
    • realdigger on GitHub
    • SMF Russian Community
Возьмите этот пример, там все понятно должно быть http://custom.simplemachines.org/mods/index.php?mod=3456
В hooks.php вешаются функции-обработчики на нужные хуки и подключаются свои файлы.
Через integrate_pre_include подключается свой файл с функциями-обработчиками.
Для регистрации вам нужен хук integrate_register, когда он сработает в функцию обработчик передастся массив &$regOptions и можно будет его значениями там манипулировать.

Online digger

  • Full Member
  • ***
  • Posts: 691
  • Gender: Male
    • realdigger on GitHub
    • SMF Russian Community
И можно было просто средствами админки отключить опцию "Разрешить пользователям изменять отображаемое имя", а вместо нее добавить дополнительное поле профиля "ФИО" и для него уже можно штатными средствами задать, как и где его отображать, требовать при регистрации и прочее.

Offline Suntechnic

  • Newbie
  • *
  • Posts: 9
О, Спасибо!!! Теперь ясно.
Где тут в карму можно плюсовать?

Offline Suntechnic

  • Newbie
  • *
  • Posts: 9
И можно было просто средствами админки отключить опцию "Разрешить пользователям изменять отображаемое имя", а вместо нее добавить дополнительное поле профиля "ФИО" и для него уже можно штатными средствами задать, как и где его отображать, требовать при регистрации и прочее.
Не, в том-то и проблема, что мне была нужна возможность устанавливать имя при регистрации. Запрещать изменение не надо было.

Но пока я все это сделал, клиент уже этого не хочет. Он хочет при регистрации задавать имя которое будет только улетать пользователю в уведомлении, но не будет отображаться на форуме... Вот думаю.