Ejemplo n.º 1
0
 public function actionAdd()
 {
     $this->pageTitle = Yii::t('titles', 'HOLES_ADD');
     $this->layout = '//layouts/header_blank';
     $model = new Holes();
     $model->USER_ID = Yii::app()->user->id;
     if (isset($_POST['Holes'])) {
         $model->attributes = $_POST['Holes'];
         if ($model->USER_ID === 0 || $model->USER_ID === null) {
             $users = UserGroupsUser::model()->findAllByAttributes(array(), "email=:email", array(":email" => $_POST['Holes']['EMAIL']));
             if (count($users) == 0) {
                 $umodel = new UserGroupsUser('autoregistration');
                 $umodel->username = $_POST['Holes']['EMAIL'];
                 $umodel->name = $_POST['Holes']['FIRST_NAME'];
                 $umodel->last_name = $_POST['Holes']['LAST_NAME'];
                 $umodel->email = $_POST['Holes']['EMAIL'];
                 $umodel->password = $this->randomPassword();
                 if ($umodel->save()) {
                     $model->USER_ID = $umodel->primaryKey;
                 }
             } else {
                 $model->USER_ID = $users[0]->id;
             }
         }
         $model->DATE_CREATED = strtotime($_POST['Holes']['DATE_CREATED']);
         if (!$model->DATE_CREATED) {
             $model->DATE_CREATED = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
         }
         if ($model->DATE_CREATED < time() - 7 * 86400) {
             $model->addError("DATE_CREATED", Yii::t('template', 'DATE_CANT_BE_PAST', array('{attribute}' => $model->getAttributeLabel('DATE_CREATED'))));
         }
         $model->PREMODERATED = Yii::app()->user->level > 50 ? 1 : 0;
         $model->ROAD_TYPE = $_POST['Holes']['ROAD_TYPE'];
         $tran = $model->dbConnection->beginTransaction();
         if ($model->validate(null, false)) {
             if ($model->save() && $model->savePictures()) {
                 $tran->commit();
                 if ($model->PREMODERATED && $model->ROAD_TYPE == 'highway') {
                     $this->sendMailToUkrautodor($model);
                 }
                 $this->redirect(array('view', 'id' => $model->ID));
             }
         }
     } else {
         //выставляем центр на карте по координатам IP юзера
         $request = new CHttpRequest();
         $geoIp = new EGeoIP();
         $geoIp->locate($request->userHostAddress);
         //echo ($request->userHostAddress);
         if ($geoIp->latitude) {
             $model->LATITUDE = $geoIp->latitude;
         } else {
             $model->LATITUDE = Yii::app()->params['latitude'];
         }
         if ($geoIp->longitude) {
             $model->LONGITUDE = $geoIp->longitude;
         } else {
             $model->LONGITUDE = Yii::app()->params['longitude'];
         }
         $model->DATE_CREATED = time();
     }
     $this->render('holeform', array('model' => $model));
 }