Пример #1
0
	/**
	 * @param $model
	 * @return Follow
	 */
	public function processRequest($model)
	{
            Yii::import('application.modules.users.models.User');
            Yii::import('application.modules.catalog.models.Objects');
		$follow = new Follow;
		if((Yii::app()->request->isPostRequest) && (Yii::app()->request->getPost('Follow')))
		{
			$follow->attributes = Yii::app()->request->getPost('Follow');

			if(!Yii::app()->user->isGuest)
			{
				$follow->name = Yii::app()->user->username;
				$follow->email = Yii::app()->user->email;
			}

			if($follow->validate())
			{
				$pkAttr = $model->getObjectPkAttribute();
				$follow->class_name = $model->getClassName();
				$follow->object_pk = $model->$pkAttr;
				$follow->user_id = Yii::app()->user->isGuest ? 0 : Yii::app()->user->id;
				$follow->save();

				$url = Yii::app()->getRequest()->getUrl();

				if($follow->status==Follow::STATUS_WAITING)
				{
					$url.='#';
					Yii::app()->user->setFlash('messages', 'Успешно подписаны');
                                        
                                        
				}
				elseif($follow->status==Follow::STATUS_APPROVED)
					$url.='#follow_'.$follow->id;

				// Refresh page
				Yii::app()->request->redirect($url, true);
			}
		}
		return $follow;
	}