Хак: рассылка инвайтов
В ситуации когда нужно отослать 10 или 20 или 100 инвайтов, после ввода N адреса почты, хочется залесть в код и исправить чтоб можно было вводить кучу адресов, например через точку запятую, а не по одному. Собственно так и родился данный хак.
Итак приступим:
Версия LS 0.3.1
1. Находим файл classes/actions/ActionSettings.class.php
И в нем метод:
И заменяем следующим:
2. Косметическая правка
Файл templates/language/russian.php (Это может быть и другой язык)
Строку:
Заменяем: Строку:
3. Не паримся при массовой рассылке инвайтов. (PROFIT)
Итак приступим:
Версия LS 0.3.1
1. Находим файл classes/actions/ActionSettings.class.php
И в нем метод:
protected function EventInvite() {
if (!USER_USE_INVITE) {
return parent::EventNotFound();
}
$this->sMenuItemSelect='invite';
$this->sMenuSubItemSelect='';
$this->Viewer_AddHtmlTitle($this->Lang_Get('settings_menu_invite'));
if (isset($_REQUEST['submit_invite'])) {
$this->Security_ValidateSendForm();
$bError=false;
if (!$this->ACL_CanSendInvite($this->oUserCurrent) and !$this->oUserCurrent->isAdministrator()) {
$this->Message_AddError($this->Lang_Get('settings_invite_available_no'),$this->Lang_Get('error'));
$bError=true;
}
if (!func_check(getRequest('invite_mail'),'mail')) {
$this->Message_AddError($this->Lang_Get('settings_invite_mail_error'),$this->Lang_Get('error'));
$bError=true;
}
if (!$bError) {
$oInvite=$this->User_GenerateInvite($this->oUserCurrent);
$this->Notify_SendInvite($this->oUserCurrent,getRequest('invite_mail'),$oInvite);
$this->Message_AddNoticeSingle($this->Lang_Get('settings_invite_submit_ok'));
}
}
$this->Viewer_Assign('iCountInviteAvailable',$this->User_GetCountInviteAvailable($this->oUserCurrent));
$this->Viewer_Assign('iCountInviteUsed',$this->User_GetCountInviteUsed($this->oUserCurrent->getId()));
}
И заменяем следующим:
protected function EventInvite() {
if (!USER_USE_INVITE) {
return parent::EventNotFound();
}
$this->sMenuItemSelect='invite';
$this->sMenuSubItemSelect='';
$this->Viewer_AddHtmlTitle($this->Lang_Get('settings_menu_invite'));
if (isset($_REQUEST['submit_invite'])) {
$this->Security_ValidateSendForm();
$bError=false;
if (!$this->ACL_CanSendInvite($this->oUserCurrent) and !$this->oUserCurrent->isAdministrator()) {
$this->Message_AddError($this->Lang_Get('settings_invite_available_no'),$this->Lang_Get('error'));
$bError=true;
}
$mails = explode(';',getRequest('invite_mail'));
foreach ($mails as $mail) {
if (!func_check($mail,'mail')) {
$this->Message_AddError($this->Lang_Get('settings_invite_mail_error'),$this->Lang_Get('error'));
$bError=true;
}
}
if (!$bError) {
foreach ($mails as $mail) {
$oInvite=$this->User_GenerateInvite($this->oUserCurrent);
$this->Notify_SendInvite($this->oUserCurrent,$mail,$oInvite);
}
$this->Message_AddNoticeSingle($this->Lang_Get('settings_invite_submit_ok'));
}
}
$this->Viewer_Assign('iCountInviteAvailable',$this->User_GetCountInviteAvailable($this->oUserCurrent));
$this->Viewer_Assign('iCountInviteUsed',$this->User_GetCountInviteUsed($this->oUserCurrent->getId()));
}
2. Косметическая правка
Файл templates/language/russian.php (Это может быть и другой язык)
Строку:
'settings_invite_mail_notice' => 'На этот e-mail будет высланно приглашение для регистрации',
Заменяем: Строку:
'settings_invite_mail_notice' => 'Вы можете указать несколько e-mail адресов разделенных символом ";"',
3. Не паримся при массовой рассылке инвайтов. (PROFIT)
7 комментариев