Вход Регистрация
Файл: silawar.ru/protected/controllers/ChatController.php
Строк: 78
<?php
class ChatController extends Controller {
    public function 
accessRules() {
        return array(
            array(
'deny',
                
'roles' => array('banned'),
                
'deniedCallback' => array(Yii::app()->controller'redirectToHome'),
            ),
            array(
'allow',
                
'actions' => array('index'),
                
'users' => array('@'),
            ),
            array(
'allow',
                
'actions' => array('delete''edit'),
                
'roles' => array('moder'),
            ),
            array(
'deny',
                
'users' => array('*'),
                
'deniedCallback' => array(Yii::app()->controller'redirectToHome'),
            )
        );
    }
    
    public function 
actionIndex($type null) {
        
$user Users::findUser();
        
$model = new Chat('search');
        if (
$type == 'guild' && $user->guild_id) {
            
$model->type $user->guild_id;
        }
        else {
            
$model->type 0;
        }
        
$message = new Chat();

        if (isset(
$_POST['Chat'])) {
            
$message->message $_POST['Chat']['message'];
            if (
$type == 'guild' && $user->guild_id && $_POST['Chat']['type'] && $_POST['Chat']['type'] == $user->guild_id) {
                
$message->type $_POST['Chat']['type'];
            }
            if (
$message->validate()) {
                
$message->save(false);
                echo 
CJSON::encode(array(
                     
'status'=>'success',
                     
'updateList'=>'messages',
                ));
                
Yii::app()->end();
             }
             else {
                
$error CActiveForm::validate($model);
                if(
$error!='[]')
                    echo 
$error;
                
Yii::app()->end();
             }
        }
        
$this->render('index', array(
            
'model' => $model,
            
'user' => $user,
            
'message' => $message,
            
'type' => $type
        
));
    }
    
    public function 
actionEdit($id) {
        
$message $this->loadModel($id);
        
$model = new AdminForm('messageEdit');
        
$model->message $message->message;
        if (isset(
$_POST['AdminForm'])) {
            
$model->attributes $_POST['AdminForm'];
            if (
$model->validate()) {
                if (
$model->message != $message->message) {
                    
$message->id_moder Yii::app()->user->id;
                    
$message->message $model->message;
                    
$message->answer 'отредактировано';
                    if (!
$message->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при работе с сообщением!'));
                    }
                }
                elseif (
$model->answer) {
                    
$message->id_moder Yii::app()->user->id;
                    
$message->answer $model->answer;
                    
$message->answer_type 2;
                    if (!
$message->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при работе с сообщением!'));
                    }
                }
                elseif (
$model->mute) {
                    
$message->id_moder Yii::app()->user->id;
                    
$message->answer '';
                    if (
$model->reason)
                        
$message->answer .= $model->reason.'. ';
                    
$message->answer .= 'Молчание на '.$model->mute.' ч.';
                    
$message->answer_type 3;
                    if (!
$message->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при работе с сообщением!'));
                    }
                    
$user Users::model()->findByPk($message->id_user);
                    
$user->mute_time time()+$model->mute*60*60;
                    if (!
$user->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при работе с пользователем!'));
                    }
                    
                    
$id_dialog Users::checkDialog($message->id_user100);
                    
$mail = new UsersMessages();
                    
$mail->id_dialog $id_dialog;
                    
$mail->id_user 100;
                    
$mail->users $message->id_user;
                    
$mail->message 'Вы получили наказание "Молчание на '.$model->mute.' ч."';
                    if (!
$mail->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при отправке почты!'));
                    }
                }
                echo 
CJSON::encode(array(
                     
'status'=>'success',
                     
'updateList'=>'messages',
                ));
                
Yii::app()->end();
             }
             else{
                
$error CActiveForm::validate($model);
                if(
$error!='[]')
                    echo 
$error;
                
Yii::app()->end();
             }
        }
        
$this->renderPartial('edit', array(
            
'model'=>$model,
            
'message'=>$message,
        ));
    }
    
    public function 
actionDelete($id) {
        if (
Yii::app()->getRequest()->getIsPostRequest()) {
            
$model $this->loadModel($id);
            
$model->delete();
            echo 
"true";
            
Yii::app()->end();
        } else {
            throw new 
CHttpException(400Yii::t('layout''Неверный запрос'));
        }
    }
    
    public function 
loadModel($id) {
        
$model Chat::model()->findByPk($id);
        if (
$model === null) {
            throw new 
CHttpException(404Yii::t('layout''Страница не найдена!'));
        }
        return 
$model;
    }
}
Онлайн: 2
Реклама