Phosphorum\Controllers\UsersController::viewAction PHP Метод

viewAction() публичный Метод

Shows the user profile
public viewAction ( integer $id, string $username )
$id integer User id
$username string User name
    public function viewAction($id, $username)
    {
        $user = $id ? Users::findFirstById($id) : Users::findFirstByLogin($username);
        if (!$user) {
            $user = Users::findFirstByName($username);
        }
        if (!$user) {
            $this->flashSession->error('The user does not exist');
            $this->response->redirect();
            return;
        }
        $this->view->setVar('user', $user);
        $parametersNumberPosts = ['users_id = ?0 AND deleted = 0', 'bind' => [$user->id]];
        $this->view->setVar('numberPosts', Posts::count($parametersNumberPosts));
        $parametersNumberReplies = ['users_id = ?0', 'bind' => [$user->id]];
        $this->view->setVar('numberReplies', PostsReplies::count($parametersNumberReplies));
        $parametersActivities = ['users_id = ?0', 'bind' => [$user->id], 'order' => 'created_at DESC', 'limit' => 15];
        $this->view->setVar('activities', Activities::find($parametersActivities));
        $users = Users::find(['columns' => 'id', 'conditions' => 'karma != 0', 'order' => 'karma DESC']);
        $ranking = count($users);
        foreach ($users as $position => $everyUser) {
            if ($everyUser->id == $user->id) {
                $ranking = $position + 1;
                break;
            }
        }
        $this->view->setVars(['ranking' => $ranking, 'total_ranking' => count($users), 'avatar' => $this->gravatar->getAvatar($user->email)]);
        $this->tag->setTitle('Profile - ' . $this->escaper->escapeHtml($user->name));
    }