public function actionCreate() { Yii::beginProfile('builder_create'); $userId = Yii::app()->user->id; $model = BuilderProfileApi::getBuilderDetails($userId); if ($model) { $this->redirect('/builder/' . $userId); } $model = new UserBuilderProfile(); $model_data = UserApi::getUser($userId); $projectType = new UserBuilderProjectType(); $projecttypes = ''; $modelState = new GeoState(); $locationCity = new UserBuilderLocations(); $locations = ''; $this->performAjaxValidation($model); if (isset($_POST['ajax']) && $_POST['ajax'] === 'builder-form') { echo CActiveForm::validate($model); Yii::app()->end(); } if (isset($_POST['submit'])) { $model->attributes = $_POST['UserBuilderProfile']; $valid = true; $model->user_id = $userId; $valid = $valid && $model->validate(); if (!isset($_POST['project_type_id'])) { $projectType->addError('UserBuilderProjectType', 'Project Type cannot be blank.'); $valid = false; } if (!isset($_POST['city_id'])) { $locationCity->addError('city_id', 'City cannot be blank.'); $valid = false; } if ($valid) { $data = $_POST['UserBuilderProfile']; $data['image'] = $model->image; $imagePath = ImageUtils::uploadImage($model, 'image'); if ($imagePath) { $image = BuilderProfileApi::addImage($userId, $imagePath); if ($image) { $data['image'] = $image; $builder = BuilderProfileApi::createBuilderProfile($userId, $data); $projecttypes = UserBuilderProjectTypeApi::createProjectTypes($builder->id, $_POST['project_type_id']); $locations = UserBuilderLocationsApi::createLocations($builder->id, $_POST['city_id']); ImageUtils::deleteImage($imagePath); if ($builder) { $data = array(); $user = UserApi::getUserById(Yii::app()->user->id); $user ? $data["user"] = $user->id : null; $data["builder"] = $builder->id; EmailApi::sendEmail($user->email_id, "ACTIVITY.BUILDER.CREATE", $data); Yii::app()->user->setFlash('success', 'You are Successfully created Builder Profile.'); $this->redirect('/builder/' . $userId); } } } } } $model->mobile = $model_data['mobile']; $model->telephone = $model_data['telephone']; $model->email = $model_data['email_id']; $this->render('create', array('model' => $model, 'projectType' => $projectType, 'projecttypes' => $projecttypes, 'modelState' => $modelState, 'locationCity' => $locationCity, 'locations' => $locations)); Yii::endProfile('builder_create'); }