Вход Регистрация
Файл: system/controllers/auth/backend/actions/send_invites.php
Строк: 55
<?php

class actionAuthSendInvites extends cmsAction {

    public function 
run($group_id 0$user_id 0) {

        
cmsCore::loadControllerLanguage('users');

        
$form $this->getForm('send_invites');

        
$data = array('groups' => array($group_id));

        if(
$user_id){

            
$user $this->model_users->getUser($user_id);

            if(
$user){
                
$data['user_email'] = $user['email'];
            }

        }

        if (
$this->request->has('submit') || $this->request->has('revoke_invites')) {

            
$data $form->parse($this->requesttrue);

            
$errors $form->validate($this$data);

            if(
$data['user_email']){

                
$user $this->model_users->getUserByEmail($data['user_email']);
                if(!
$user && !$errors){
                    
$errors['user_email'] = ERR_USER_NOT_FOUND;
                }

            }

            if (!
$errors) {

                
// отправка пользователю, фильтрацию не учитываем
                
if($data['user_email']){

                    
$recipients = array($user['id']);

                
// отправка группе
                
} else {

                    if (
$data['groups'] && $data['groups'] != array(0)) {
                        
$this->model_users->filterGroups($data['groups']);
                    }

                    
$this->model_users->filterGtEqual('karma'$data['invites_min_karma']);
                    
$this->model_users->filterGtEqual('rating'$data['invites_min_rating']);

                    if(
$data['invites_min_days']){
                        
$this->model_users->filterDateOlder('date_reg'$data['invites_min_days']);
                    }

                    
$recipients $this->model_users->
                            
filterIsNull('is_locked')->
                            
filterIsNull('is_deleted')->
                            
limit(false)->getUsersIds();

                }

                if (
$recipients) {

                    foreach(
$recipients as $recipient_id){

                        if (
$this->request->has('submit')) {

                            
$this->model->addInvites($recipient_id$data['invites_qty']);

                            
$this->model_messages->addNotice(array($recipient_id), array(
                                
'content' => sprintf(LANG_AUTH_INVITE_SEND_COUNThtml_spellcount($data['invites_qty'], LANG_USERS_INVITES_SPELLCOUNT))
                            ));

                        } else {
                            
$this->model->revokeInvites($recipient_id$data['invites_qty']);
                        }

                    }

                    if (
$this->request->has('submit')) {
                        
cmsUser::addSessionMessage(LANG_AUTH_INVITE_SENDED'success');
                    } else {
                        
cmsUser::addSessionMessage(LANG_AUTH_INVITE_REVOKED'success');
                    }

                    
$this->redirectToAction('send_invites', ($group_id $group_id false));

                }

                if (!
$recipients) {
                    
cmsUser::addSessionMessage(LANG_CP_USER_SEARCH_NOT_FOUND'info');
                }

            }

            if (
$errors) {
                
cmsUser::addSessionMessage(LANG_FORM_ERRORS'error');
            }
        }

        return 
$this->cms_template->render('backend/send_invites', array(
            
'data'   => $data,
            
'form'   => $form,
            
'errors' => isset($errors) ? $errors false
        
));
    }

}
Онлайн: 1
Реклама