Решил настроить у себя регистрацию только по приглашениям: выбрал в компоненте "Регистрация" тип регистрации "по инвайтам", выдавать по 5 инвайтов в день всем пользователям (карма >= 0), нажал "Выдать сейчас", включил показ модуля "Пригласить друга" на главной, ввёл в поле нужный e-mail, нажал "Пригласить!" и… получил письмо от друга, что сообщение о приглашении на сайт ему пришло, на ссылку он нажал, а там просят ввести код приглашения, которого в письме нигде нет
Полез разбираться, и ещё больше удивился: этот код действительно не присылается в шаблоне письма. Возможно, я не понял логики разработчиков, но я так и не нашёл, как заставить всё это работать. Пришлось садиться и дописывать самому😊Изменений я внёс не много, только добавил в модуль ("\modules\mod_invite\module.php") запрос к БД с получением доступного кода регистрации для данного пользователя
$user = $inUser->id;
$code = $inDB->get_field('rb_user_invites', "`is_used` = '0' and `is_sended` = '0' and `owner_id`='$user'", 'code');
вставил проверку, чтобы письмо отправлялось только, если есть свободные приглашения для данного пользователя
if (!$code){
$errors .= $_LANG['ERR_NO_IVITE'].'
';
}
добавил вставку кода в шаблон письма
и установку маркера отправленного приглашения
$inDB->query("UPDATE `cms_user_invites` SET `is_sended` = '1' WHERE `code` = '$code';");
а также условие, чтобы модуль был виден только для залогининых пользователей (смысл в том, чтобы приглашения могли рассылать существующие пользователи, а не кто попало)
if (!$inUser->id){
return false;
}
Естественно, нужно было ещё добавить соответствующие изменения в шаблон письма ("\includes\letters\mail_invite.txt")
и языковой файл ("\languages\ru\modules\mod_invite.php")
$_LANG['ERR_NO_IVITE'] = 'Нет свободных приглашений!';
Думаю, есть смысл внести эти изменения в релиз, потому как без них этот модуль просто бесполезен :)
P.S. Для ленивых добавил ниже архив со всеми изменёнными файлами, можете просто закачать их на сайт, заменив старые (версия InsctantCMS — 1.10.1). Успехов! ;)
PP.S. Впоследствии оказалось, что этот модуль и не предназначен для приглашения к регистрации, а работает просто как кнопка "рассказать другу"😊Однако моя модификация мне всё равно удобнее для работы, так что пользуйтесь, кому понадобиться ;)