コード例 #1
0
ファイル: MainController.php プロジェクト: barricade86/raui
 public function actionUpdate($id)
 {
     $this->setActiveMenu('add_ad');
     $model = $this->loadModelUserAd($id);
     if (issetModule('bookingcalendar')) {
         $model = $model->with(array('bookingCalendar'));
     }
     $this->performAjaxValidation($model);
     if (isset($_GET['type'])) {
         $model->type = HApartment::getRequestType();
     }
     if (isset($_POST[$this->modelName])) {
         $originalActive = $model->active;
         $model->attributes = $_POST[$this->modelName];
         if ($model->type != Apartment::TYPE_BUY && $model->type != Apartment::TYPE_RENTING) {
             // video, panorama, lat, lon
             HApartment::saveOther($model);
         }
         $model->scenario = 'savecat';
         $model->owner_active = Apartment::STATUS_ACTIVE;
         if (issetModule('tariffPlans') && issetModule('paidservices')) {
             $return = TariffPlans::checkAllowUserActivateAd(Yii::app()->user->id, true, '>=');
             if ($return === false) {
                 $model->owner_active = Apartment::STATUS_INACTIVE;
             }
         }
         $isUpdate = Yii::app()->request->getPost('is_update');
         $model->isAjaxLoadOnUpdate = $isUpdate;
         if ($isUpdate) {
             $model->save(false);
         } elseif ($model->validate()) {
             if (param('useUseradsModeration', 1)) {
                 $model->active = Apartment::STATUS_MODERATION;
             } else {
                 $model->active = Apartment::STATUS_ACTIVE;
             }
             if ($model->save(false)) {
                 if ($model->owner_active == Apartment::STATUS_INACTIVE) {
                     $this->redirect(array('/usercpanel/main/index'));
                 } else {
                     $this->redirect(array('/apartments/main/view', 'id' => $model->id));
                 }
             }
         } else {
             $model->active = $originalActive;
         }
     }
     HApartment::getCategoriesForUpdate($model);
     if ($model->active == Apartment::STATUS_DRAFT) {
         Yii::app()->user->setState('menu_active', 'apartments.create');
         $this->render('create', array('model' => $model, 'supportvideoext' => ApartmentVideo::model()->supportExt, 'supportvideomaxsize' => ApartmentVideo::model()->fileMaxSize));
         return;
     }
     $this->render('update', array('model' => $model, 'supportvideoext' => ApartmentVideo::model()->supportExt, 'supportvideomaxsize' => ApartmentVideo::model()->fileMaxSize));
 }