public function run() { $session = new CHttpSession(); $session->open(); $surSess = Yii::app()->session->get("favorites"); if (!Yii::app()->user->isGuest) { Yii::import('mod.users.models.UserFavorites'); $modelClass = $this->model; $currentModule = Yii::app()->controller->module->id; echo Html::openTag('div', array('id' => 'fav' . $this->model->id, 'class' => 'favorite')); $modelc = UserFavorites::model()->findAll(array('condition' => '`t`.`user_id`=:userid', 'params' => array(':userid' => Yii::app()->user->getId()))); if (count($modelc) < Yii::app()->settings->get('users', 'favorite_limit')) { if (isset($modelClass)) { $model = UserFavorites::model()->find(array('condition' => '`t`.`user_id`=:userid AND `t`.`model_class`=:model_class AND `t`.`object_id`=:id', 'params' => array(':userid' => Yii::app()->user->getId(), ':model_class' => $modelClass->getModelName(), ':id' => $modelClass->id))); if ($this->view && !isset($model)) { // $view = "add"; $params = array('model' => $this->model, 'mod' => $currentModule); } else { $view = "remove"; $params = array('favorite_id' => $model->id, 'model' => $this->model, 'object_id' => $this->model->id, 'mod' => $currentModule); } } } $this->render($view, $params); echo Html::closeTag('div'); } }
public function run() { if (Yii::app()->request->isAjaxRequest) { $action = $_POST['action']; $request = Yii::app()->request; if ($request->isAjaxRequest && !Yii::app()->user->isGuest) { $modelName = $_POST['model']; $mod = $_POST['mod']; Yii::import("mod.{$mod}.models.*"); if ($action == 'add') { $m = $modelName::model()->findByPk($_POST['id']); if (isset($m)) { $model = new UserFavorites(); $model->object_id = $m->primaryKey; $model->owner_title = $m->getOwnerTitle(); $model->url = $m->getUrl(); $model->model_class = $m->getModelName(); $model->user_id = Yii::app()->user->id; if ($model->save(false, false)) { $this->controller->render('mod.users.widgets.favorites.views.remove', array('favorite_id' => $model->id, 'model' => $m, 'object_id' => $_POST['id'], 'view' => false)); // $this->controller->widget('mod.users.widgets.favorites.FavoritesWidget', array('id' => $model->object_id, 'model' => $m, 'view' => false)); } } } elseif ($action == 'delete') { $id = (int) $_POST['id']; $model = (string) $_POST['model']; $modelFavorite = UserFavorites::model()->findByPk($id); $m = $model::model()->findByPk($modelFavorite->object_id); if (isset($modelFavorite)) { $modelFavorite->delete(); $this->controller->render('mod.users.widgets.favorites.views.add', array('model' => $m, 'view' => true, 'mod' => $mod)); // $this->controller->widget('mod.users.widgets.favorites.FavoritesWidget', array('model' => $m,'view' => true)); } } else { throw new CHttpException(400); } } } else { throw new CHttpException(401); } }