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)); }