Exemplo n.º 1
0
 /**
  * Displays a User model.
  * @param integer $id
  * @param boolean $followed
  * @return mixed
  */
 public function actionView($id, $followed = null)
 {
     // If I'm trying to view myself then redirect to index
     $myId = \Yii::$app->user->id;
     if ($myId == $id) {
         return $this->redirect(['index']);
     }
     $model = $this->findModel($id);
     $votedUpAPIsArray = array_filter(explode(',', $model->votes_up_apis));
     $votedUpAPIsArrayInt = array_map('intval', $votedUpAPIsArray);
     $votedUpAPIsQuery = Apis::find()->where(['id' => $votedUpAPIsArrayInt]);
     $votedUpAPIsDataProvider = new ActiveDataProvider(['query' => $votedUpAPIsQuery, 'sort' => false, 'pagination' => ['pageSize' => 5]]);
     $votedDownAPIsArray = array_filter(explode(',', $model->votes_down_apis));
     $votedDownAPIsArrayInt = array_map('intval', $votedDownAPIsArray);
     $votedDownAPIsQuery = Apis::find()->where(['id' => $votedDownAPIsArrayInt]);
     $votedDownAPIsDataProvider = new ActiveDataProvider(['query' => $votedDownAPIsQuery, 'sort' => false, 'pagination' => ['pageSize' => 5]]);
     $votedUpObjectsArray = array_filter(explode(',', $model->votes_up_objects));
     $votedUpObjectsArrayInt = array_map('intval', $votedUpObjectsArray);
     $votedUpObjectsQuery = Objects::find()->where(['id' => $votedUpObjectsArrayInt]);
     $votedUpObjectsDataProvider = new ActiveDataProvider(['query' => $votedUpObjectsQuery, 'sort' => false, 'pagination' => ['pageSize' => 5]]);
     $votedDownObjectsArray = array_filter(explode(',', $model->votes_down_objects));
     $votedDownObjectsArrayInt = array_map('intval', $votedDownObjectsArray);
     $votedDownObjectsQuery = Objects::find()->where(['id' => $votedDownObjectsArrayInt]);
     $votedDownObjectsDataProvider = new ActiveDataProvider(['query' => $votedDownObjectsQuery, 'sort' => false, 'pagination' => ['pageSize' => 5]]);
     $votedUpCommentsArray = array_filter(explode(',', $model->votes_up_comments));
     $votedUpCommentsArrayInt = array_map('intval', $votedUpCommentsArray);
     $votedUpCommentsQuery = Comments::find()->where(['id' => $votedUpCommentsArrayInt]);
     $votedUpCommentsDataProvider = new ActiveDataProvider(['query' => $votedUpCommentsQuery, 'sort' => false, 'pagination' => ['pageSize' => 5]]);
     $votedDownCommentsArray = array_filter(explode(',', $model->votes_down_comments));
     $votedDownCommentsArrayInt = array_map('intval', $votedDownCommentsArray);
     $votedDownCommentsQuery = Comments::find()->where(['id' => $votedDownCommentsArrayInt]);
     $votedDownCommentsDataProvider = new ActiveDataProvider(['query' => $votedDownCommentsQuery, 'sort' => false, 'pagination' => ['pageSize' => 5]]);
     $followedUsers = $model->getFollowees();
     $followedUsersDataProvider = new ActiveDataProvider(['query' => $followedUsers, 'sort' => false, 'pagination' => ['pageSize' => 5]]);
     $followedApis = $model->getFollowingApis();
     $followedApisDataProvider = new ActiveDataProvider(['query' => $followedApis, 'sort' => false, 'pagination' => ['pageSize' => 5]]);
     $followUserUser = FollowUserUser::findOne(['follower' => $myId, 'followee' => $id]);
     $doIFollow = false;
     if ($followUserUser != null) {
         $doIFollow = true;
         $followUserUser->last_seen = date("Y-m-d H:i:s");
         $followUserUser->changed_photo = false;
         $followUserUser->changed_linkedin = false;
         $followUserUser->changed_github = false;
         $followUserUser->created_api = null;
         $followUserUser->changed_upvotes_apis = null;
         $followUserUser->changed_downvotes_apis = null;
         $followUserUser->save();
     }
     $followers = FollowUserUser::find(['followee' => $id])->count();
     $this->view->params['followed'] = $followed;
     return $this->render('view', ['model' => $model, 'votedUpAPIsDataProvider' => $votedUpAPIsDataProvider, 'votedDownAPIsDataProvider' => $votedDownAPIsDataProvider, 'votedUpObjectsDataProvider' => $votedUpObjectsDataProvider, 'votedDownObjectsDataProvider' => $votedDownObjectsDataProvider, 'votedUpCommentsDataProvider' => $votedUpCommentsDataProvider, 'votedDownCommentsDataProvider' => $votedDownCommentsDataProvider, 'followedUsersDataProvider' => $followedUsersDataProvider, 'followedApisDataProvider' => $followedApisDataProvider, 'doIFollow' => $doIFollow, 'followers' => $followers]);
 }
Exemplo n.º 2
0
 /**
  * Returns ActiveRecords for FollowUserApi based on my $id (This is what APIs I follow)
  * @param integer $id
  * @return ActiveDataProvider
  */
 public function getAllUserChangesForWhatIFollow($id)
 {
     $query = FollowUserUser::find();
     $query->where(['and', ['follower' => $id], ['or', ['changed_photo' => 1], ['changed_linkedin' => 1], ['changed_github' => 1], ['not', ['created_api' => null]], ['not', ['changed_upvotes_apis' => null]], ['not', ['changed_downvotes_apis' => null]]]]);
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     return $dataProvider;
 }