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));
}