/** * 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]); }
/** * 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; }