作者:sitex
项目:foru
public function getExpertQuery(Users $user)
{
if (!$this->query) {
$this->query = $user->getModelsManager()->createBuilder()->columns(['p.categories_id', 'COUNT(*)'])->from(['r' => 'Phosphorum\\Models\\PostsReplies'])->join('Phosphorum\\Models\\Posts', null, 'p')->where('r.users_id = ?0 AND r.accepted = "Y"')->notInWhere('p.categories_id', $this->getNoBountyCategories())->groupBy('p.categories_id')->having('COUNT(*) >= 10')->getQuery();
}
return $this->query;
}
作者:Blk
项目:foru
/**
* Check whether the user can have the badge
*
* @param Users $user
* @return boolean
*/
public function canHave(Users $user)
{
$noBountyCategories = $this->getNoBountyCategories();
$conditions = 'categories_id NOT IN (' . join(', ', $noBountyCategories) . ') AND accepted_answer = "Y"';
$posts = $user->getPosts(array($conditions, 'order' => 'created_at DESC'));
foreach ($posts as $post) {
$ownReply = $post->countReplies(array("accepted = 'Y' AND users_id = ?0", 'bind' => array($user->id)));
if ($ownReply) {
return true;
}
}
return false;
}
作者:phalco
项目:foru
/**
* Check whether the user can have the badge
*
* @param Users $user
* @return boolean
*/
public function canHave(Users $user)
{
$ids = [];
$noBountyCategories = $this->getNoBountyCategories();
$conditions = 'categories_id NOT IN (' . join(', ', $noBountyCategories) . ') AND number_views >= 10000';
$posts = $user->getPosts([$conditions, 'columns' => 'id', 'order' => 'created_at DESC']);
foreach ($posts as $post) {
$have = UsersBadges::count(['users_id = ?0 AND badge = ?1 AND type = "P" AND code1 = ?2', 'bind' => [$user->id, $this->getName(), $post->id]]);
if (!$have) {
$ids[] = $post->id;
}
}
return $ids;
}
作者:phalco
项目:foru
/**
* Check whether the user can have the badge
*
* @param Users $user
* @return boolean
*/
public function canHave(Users $user)
{
$ids = [];
$noBountyCategories = $this->getNoBountyCategories();
$conditions = '(IF(votes_up IS NULL, 0, votes_up) - IF(votes_down IS NULL, 0, votes_down)) >= 5';
$replies = $user->getReplies([$conditions, 'columns' => 'id, posts_id', 'order' => 'created_at DESC']);
foreach ($replies as $reply) {
$have = UsersBadges::count(['users_id = ?0 AND badge = ?1 AND type = "C" AND code1 = ?2', 'bind' => [$user->id, $this->getName(), $reply->id]]);
if (!$have) {
$ids[] = [$reply->posts_id, $reply->id];
}
}
return $ids;
}
作者:kjmtru
项目:phalcon-ti
/**
* Check whether the user can have the badge
*
* @param Users $user
* @return boolean
*/
public function canHave(Users $user)
{
$ids = array();
$noBountyCategories = $this->getNoBountyCategories();
$conditions = 'categories_id NOT IN (' . join(', ', $noBountyCategories) . ') AND
(IF(votes_up IS NULL, 0, votes_up) - IF(votes_down IS NULL, 0, votes_down)) >= 5';
$posts = $user->getPosts(array($conditions, 'columns' => 'id', 'order' => 'created_at DESC'));
foreach ($posts as $post) {
$have = UsersBadges::count(array('users_id = ?0 AND badge = ?1 AND type = "P" AND code1 = ?2', 'bind' => array($user->id, $this->getName(), $post->id)));
if (!$have) {
$ids[] = $post->id;
}
}
return $ids;
}
作者:atsuyi
项目:foru
/**
* Process users badges
*/
public function process()
{
$badges = $this->getBadges();
foreach (Users::find() as $user) {
$this->processUserBadges($user, $badges);
}
}
作者:woyifan
项目:foru
/**
* Sends the digest
*/
public function send()
{
$lastMonths = new \DateTime();
$lastMonths->modify('-6 month');
$parameters = array('modified_at >= ?0 AND digest = "Y" AND notifications <> "N"', 'bind' => array($lastMonths->getTimestamp()));
$users = array();
foreach (Users::find($parameters) as $user) {
if ($user->email && strpos($user->email, '@') !== false && strpos($user->email, '@users.noreply.github.com') === false) {
$users[trim($user->email)] = $user->name;
}
}
$fromName = $this->config->mail->fromName;
$fromEmail = $this->config->mail->fromEmail;
$url = $this->config->site->url;
$subject = 'Top Stories from Phosphorum ' . date('d/m/y');
$lastWeek = new \DateTime();
$lastWeek->modify('-1 week');
$order = 'number_views + ' . '((IF(votes_up IS NOT NULL, votes_up, 0) - ' . 'IF(votes_down IS NOT NULL, votes_down, 0)) * 4) + ' . 'number_replies + IF(accepted_answer = "Y", 10, 0) DESC';
$parameters = array('created_at >= ?0 AND deleted != 1 AND categories_id <> 4', 'bind' => array($lastWeek->getTimestamp()), 'order' => $order, 'limit' => 10);
$e = $this->escaper;
$content = '<html><head></head><body><p><h1 style="font-size:22px;color:#333;letter-spacing:-0.5px;line-height:1.25;font-weight:normal;padding:16px 0;border-bottom:1px solid #e2e2e2">Top Stories from Phosphorum</h1></p>';
foreach (Posts::find($parameters) as $post) {
$user = $post->user;
if ($user == false) {
continue;
}
$content .= '<p><a style="text-decoration:none;display:block;font-size:20px;color:#333;letter-spacing:-0.5px;line-height:1.25;font-weight:normal;color:#155fad" href="' . $url . '/discussion/' . $post->id . '/' . $post->slug . '">' . $e->escapeHtml($post->title) . '</a></p>';
$content .= '<p><table width="100%"><td><table><tr><td>' . '<img src="https://secure.gravatar.com/avatar/' . $user->gravatar_id . '?s=32&r=pg&d=identicon" width="32" height="32" alt="' . $user->name . ' icon">' . '</td><td><a style="text-decoration:none;color:#155fad" href="' . $url . '/user/' . $user->id . '/' . $user->login . '">' . $user->name . '<br><span style="text-decoration:none;color:#999;text-decoration:none">' . $user->getHumanKarma() . '</span></a></td></tr></table></td><td align="right"><table style="border: 1px solid #dadada;" cellspacing=5>' . '<td align="center"><label style="color:#999;margin:0px;font-weight:normal;">Created</label><br>' . $post->getHumanCreatedAt() . '</td>' . '<td align="center"><label style="color:#999;margin:0px;font-weight:normal;">Replies</label><br>' . $post->number_replies . '</td>' . '<td align="center"><label style="color:#999;margin:0px;font-weight:normal;">Views</label><br>' . $post->number_views . '</td>' . '<td align="center"><label style="color:#999;margin:0px;font-weight:normal;">Votes</label><br>' . ($post->votes_up - $post->votes_down) . '</td>' . '</tr></table></td></tr></table></p>';
$content .= $this->markdown->render($e->escapeHtml($post->content));
$content .= '<p><a style="color:#155fad" href="' . $url . '/discussion/' . $post->id . '/' . $post->slug . '">Read more</a></p>';
$content .= '<hr style="border: 1px solid #dadada">';
}
$textContent = strip_tags($content);
$htmlContent = $content . '<p style="font-size:small;-webkit-text-size-adjust:none;color:#717171;">';
$htmlContent .= PHP_EOL . 'This email was sent by Phalcon Framework. Change your e-mail preferences <a href="' . $url . '/settings">here</a></p>';
foreach ($users as $email => $name) {
try {
$message = new \Swift_Message('[Phalcon Forum] ' . $subject);
$message->setTo(array($email => $name));
$message->setFrom(array($fromEmail => $fromName));
$bodyMessage = new \Swift_MimePart($htmlContent, 'text/html');
$bodyMessage->setCharset('UTF-8');
$message->attach($bodyMessage);
$bodyMessage = new \Swift_MimePart($textContent, 'text/plain');
$bodyMessage->setCharset('UTF-8');
$message->attach($bodyMessage);
if (!$this->transport) {
$this->transport = \Swift_SmtpTransport::newInstance($this->config->smtp->host, $this->config->smtp->port, $this->config->smtp->security);
$this->transport->setUsername($this->config->smtp->username);
$this->transport->setPassword($this->config->smtp->password);
}
if (!$this->mailer) {
$this->mailer = \Swift_Mailer::newInstance($this->transport);
}
$this->mailer->send($message);
} catch (\Exception $e) {
echo $e->getMessage(), PHP_EOL;
}
}
}
作者:phalco
项目:foru
public function onConstruct()
{
$lastThreads = $this->modelsManager->createBuilder()->from(['p' => 'Phosphorum\\Models\\Posts'])->groupBy("p.id")->join('Phosphorum\\Models\\Categories', "r.id = p.categories_id", 'r')->join('Phosphorum\\Models\\Users', "u.id = p.users_id", 'u')->columns(['p.title as title_post', 'p.id as id_post', 'p.slug as slug_post', 'r.name as name_category', 'u.name as name_user'])->where('p.deleted = 0')->orderBy('p.created_at DESC')->limit(3)->getQuery()->execute();
/** @var Simple $lastMember */
$lastMember = Users::find(['order' => 'created_at DESC', 'limit' => 1, 'columns' => 'login']);
$login = null;
if ($lastMember->valid()) {
$login = $lastMember->getFirst()->login;
}
$this->view->setVars(['app_name' => $this->config->get('site')->name, 'app_version' => VERSION, 'threads' => Posts::count(), 'last_threads' => $lastThreads, 'users' => Users::count(), 'users_latest' => $login, 'actionName' => $this->dispatcher->getActionName(), 'controllerName' => $this->dispatcher->getControllerName()]);
}
作者:atsuyi
项目:foru
public function statsAction()
{
$this->view->threads = Posts::count();
$this->view->replies = Posts::sum(array('column' => 'number_replies'));
$this->view->votes = Posts::sum(array('column' => 'votes_up + votes_down'));
$this->view->users = Users::count();
$this->view->karma = Users::sum(array('column' => 'karma'));
$this->view->notifications = Notifications::count();
$this->view->unotifications = ActivityNotifications::count();
$this->view->views = Posts::sum(array('column' => 'number_views'));
$this->view->irc = IrcLog::count();
}
作者:phalco
项目:foru
/**
* Votes for a poll option
*
* @param int $id Post ID
* @param int $option Option ID
* @return Response
*/
public function voteAction($id = 0, $option = 0)
{
$response = new Response();
if (!$this->checkTokenGetJson('post-' . $id)) {
$csrfTokenError = ['status' => 'error', 'message' => 'This post is outdated. Please try to vote again.'];
return $response->setJsonContent($csrfTokenError);
}
if (!($post = Posts::findFirstById($id))) {
$contentNotExist = ['status' => 'error', 'message' => 'Poll does not exist'];
return $response->setJsonContent($contentNotExist);
}
if (!($user = Users::findFirstById($this->session->get('identity')))) {
$contentlogIn = ['status' => 'error', 'message' => 'You must log in first to vote'];
return $response->setJsonContent($contentlogIn);
}
if (!($option = PostsPollOptions::findFirstById($option))) {
$optionNotFound = ['status' => 'error', 'message' => 'Please select one option from the list below'];
return $response->setJsonContent($optionNotFound);
}
if ($post->isParticipatedInPoll($user->id)) {
$contentAlreadyVote = ['status' => 'error', 'message' => 'You have already voted this post'];
return $response->setJsonContent($contentAlreadyVote);
}
$pollVote = new PostsPollVotes();
$pollVote->posts_id = $post->id;
$pollVote->users_id = $user->id;
$pollVote->options_id = $option->id;
if (!$pollVote->save()) {
foreach ($pollVote->getMessages() as $message) {
/** @var \Phalcon\Mvc\Model\Message $message */
$contentError = ['status' => 'error', 'message' => $message->getMessage()];
return $response->setJsonContent($contentError);
}
}
if ($post->users_id != $user->id) {
$post->user->increaseKarma(Karma::SOMEONE_DID_VOTE_MY_POLL);
$user->increaseKarma(Karma::VOTE_ON_SOMEONE_ELSE_POLL);
}
if (!$post->save()) {
foreach ($post->getMessages() as $message) {
/** @var \Phalcon\Mvc\Model\Message $message */
$contentErrorSave = ['status' => 'error', 'message' => $message->getMessage()];
return $response->setJsonContent($contentErrorSave);
}
}
$viewCache = $this->getDI()->getShared('viewCache');
$viewCache->delete('post-' . $post->id);
$viewCache->delete('poll-votes-' . $post->id);
$viewCache->delete('poll-options-' . $post->id);
$contentOk = ['status' => 'OK'];
return $response->setJsonContent($contentOk);
}
作者:kjmtru
项目:phalcon-ti
public function karmaAction()
{
foreach (Users::find() as $user) {
if ($user->karma === null) {
$parametersNumbersPost = array('users_id = ?0', 'bind' => array($user->id));
$numberPosts = Posts::count($parametersNumbersPost);
$parametersNumberReplies = array('users_id = ?0', 'bind' => array($user->id));
$numberReplies = PostsReplies::count($parametersNumberReplies);
$user->karma = $numberReplies * 10 + $numberPosts * 5;
$user->votes = intval($user->karma / 50);
$user->save();
}
}
}
作者:huoyb
项目:foru
/**
* Allow to change your user settings
*/
public function settingsAction()
{
$usersId = $this->session->get('identity');
if (!$usersId) {
$this->flashSession->error('You must be logged first');
$this->response->redirect();
return;
}
$user = Users::findFirstById($usersId);
if (!$user) {
$this->flashSession->error('The user does not exist');
$this->response->redirect();
return;
}
if ($this->request->isPost()) {
if (!$this->checkTokenPost()) {
$this->response->redirect();
return;
}
$user->timezone = $this->request->getPost('timezone');
$user->notifications = $this->request->getPost('notifications');
$user->theme = $this->request->getPost('theme');
$user->digest = $this->request->getPost('digest');
if ($user->save()) {
$this->session->set('identity-theme', $user->theme);
$this->session->get('identity-timezone', $user->timezone);
$this->flashSession->success('Settings were successfully updated');
$this->response->redirect();
return;
}
} else {
$this->tag->displayTo('timezone', $user->timezone);
$this->tag->displayTo('notifications', $user->notifications);
$this->tag->displayTo('theme', $user->theme);
$this->tag->displayTo('digest', $user->digest);
}
$this->tag->setTitle('My Settings');
$this->tag->setAutoEscape(false);
$this->gravatar->setSize(64);
$this->view->setVars(['user' => $user, 'timezones' => $this->di->getShared('timezones'), 'numberPosts' => Posts::count(['users_id = ?0 AND deleted = 0', 'bind' => [$user->id]]), 'numberReplies' => PostsReplies::count(['users_id = ?0', 'bind' => [$user->id]])]);
}
作者:kjmtru
项目:phalcon-ti
/**
* Check whether the user can have the badge
*
* @param Users $user
* @return boolean
*/
public function canHave(Users $user)
{
return $user->countPosts('accepted_answer = "Y"') >= 1;
}
作者:foxman20
项目:foru
$title = $faker->company;
$category = new Categories();
$category->name = $title;
$category->description = $faker->sentence;
$category->slug = Tag::friendlyTitle($title);
$category->number_posts = 0;
$category->no_bounty = 'N';
$category->no_digest = 'N';
if (!$category->save()) {
$database->rollback();
die(join(PHP_EOL, $category->getMessages()));
}
$log->info('Category: ' . $category->name);
}
for ($i = 0; $i <= 50; $i++) {
$user = new Users();
$user->name = $faker->name;
$user->login = $faker->userName;
$user->email = $faker->email;
$user->timezone = $faker->timezone;
if (!$user->save()) {
$database->rollback();
die(join(PHP_EOL, $user->getMessages()));
}
$log->info('User: ' . $user->name);
}
$database->commit();
$categoryIds = Categories::find(['columns' => 'id'])->toArray();
$userIds = Users::find(['columns' => 'id'])->toArray();
$database->begin();
for ($i = 0; $i <= 500; $i++) {
作者:woyifan
项目:foru
public function afterCreate()
{
/**
* Register a new activity
*/
if ($this->id > 0) {
/**
* Register the activity
*/
$activity = new Activities();
$activity->users_id = $this->users_id;
$activity->posts_id = $this->id;
$activity->type = Activities::NEW_POST;
$activity->save();
/**
* Notify users that always want notifications
*/
$notification = new PostsNotifications();
$notification->users_id = $this->users_id;
$notification->posts_id = $this->id;
$notification->save();
/**
* Notify users that always want notifications
*/
$toNotify = [];
foreach (Users::find(['notifications = "Y"', 'columns' => 'id']) as $user) {
if ($this->users_id != $user->id) {
$notification = new Notifications();
$notification->users_id = $user->id;
$notification->posts_id = $this->id;
$notification->type = 'P';
$notification->save();
$toNotify[$user->id] = $notification->id;
}
}
/**
* Update the total of posts related to a category
*/
$this->category->number_posts++;
$this->category->save();
/**
* Queue notifications to be sent
*/
$this->getDI()->getQueue()->put($toNotify);
}
}
作者:woyifan
项目:foru
/**
* Check whether the user can have the badge
*
* @param Users $user
* @return boolean
*/
public function canHave(Users $user)
{
return $user->countReplies() >= 10;
}
作者:kjmtru
项目:foru
/**
* Shows the latest notifications for the current user
*/
public function notificationsAction($offset = 0)
{
$usersId = $this->session->get('identity');
if (!$usersId) {
$this->flashSession->error('You must be logged first');
return $this->response->redirect();
}
$user = Users::findFirstById($usersId);
if (!$user) {
$this->flashSession->error('The user does not exist');
return $this->response->redirect();
}
$this->view->user = $user;
$this->view->notifications = ActivityNotifications::find(['users_id = ?0', 'bind' => [$usersId], 'limit' => 128, 'order' => 'created_at DESC']);
$this->tag->setTitle('Notifications');
}
作者:kjmtru
项目:phalcon-ti
/**
* This implements an inbound webhook from MandrillApp to reply to posts using emails
*
*/
public function mailReplyAction()
{
$response = new Response();
if ($this->request->isPost()) {
if (!isset($this->config->mandrillapp->secret)) {
return $response;
}
if ($this->config->mandrillapp->secret != $this->request->getQuery('secret')) {
return $response;
}
$events = @json_decode($this->request->getPost('mandrill_events'), true);
if (!is_array($events)) {
return $response;
}
foreach ($events as $event) {
if (!isset($event['event'])) {
continue;
}
$type = $event['event'];
if ($type != 'inbound') {
continue;
}
if (!isset($event['msg'])) {
continue;
}
$msg = $event['msg'];
if (!isset($msg['dkim'])) {
continue;
}
if (!isset($msg['from_email'])) {
continue;
}
if (!isset($msg['email'])) {
continue;
}
if (!isset($msg['text'])) {
continue;
}
$content = $msg['text'];
if (!trim($content)) {
continue;
}
$user = Users::findFirstByEmail($msg['from_email']);
if (!$user) {
continue;
}
$email = $msg['email'];
if (!preg_match('#^reply-i([0-9]+)-([0-9]+)@phosphorum.com$#', $email, $matches)) {
continue;
}
$post = Posts::findFirst($matches[1]);
if (!$post) {
continue;
}
if ($post->deleted) {
continue;
}
/**
* Process replies to remove the base message
*/
$str = array();
$firstNoBaseReplyLine = false;
foreach (array_reverse(preg_split('/\\r\\n|\\n/', trim($content))) as $line) {
if (!$firstNoBaseReplyLine) {
if (substr($line, 0, 1) == '>') {
continue;
} else {
$firstNoBaseReplyLine = true;
}
}
if (preg_match('/^[0-9]{4}\\-[0-9]{2}\\-[0-9]{2} [0-9]{2}:[0-9]{2} GMT([\\-\\+][0-9]{2}:[0-9]{2})? ([^:]*):$/u', $line)) {
continue;
}
if (preg_match('/^On [A-Za-z]{3} [0-9]{1,2}, [0-9]{4} [0-9]{1,2}:[0-9]{2} [AP]M, ([^:]*):$/u', $line)) {
continue;
}
$str[] = $line;
}
$content = join("\r\n", array_reverse($str));
/**
* Check if the question can have a bounty before add the reply
*/
$canHaveBounty = $post->canHaveBounty();
/**
* Only update the number of replies if the user that commented isn't the same that posted
*/
if ($post->users_id != $user->id) {
$post->number_replies++;
$post->modified_at = time();
$post->user->increaseKarma(Karma::SOMEONE_REPLIED_TO_MY_POST);
$user->increaseKarma(Karma::REPLY_ON_SOMEONE_ELSE_POST);
$user->save();
}
$postReply = new PostsReplies();
$postReply->post = $post;
$postReply->users_id = $user->id;
//.........这里部分代码省略.........
作者:Rudianasaj
项目:foru
/**
* Accepts a reply as correct answer
*/
public function acceptAction($id = 0)
{
$response = new Response();
/**
* Find the post using get
*/
$postReply = PostsReplies::findFirstById($id);
if (!$postReply) {
$contentNotExist = array('status' => 'error', 'message' => 'Post reply does not exist');
return $response->setJsonContent($contentNotExist);
}
$user = Users::findFirstById($this->session->get('identity'));
if (!$user) {
$contentLogIn = array('status' => 'error', 'message' => 'You must log in first to vote');
return $response->setJsonContent($contentLogIn);
}
if ($postReply->accepted == 'Y') {
$contentAlready = array('status' => 'error', 'message' => 'This reply is already accepted as answer');
return $response->setJsonContent($contentAlready);
}
if ($postReply->post->deleted) {
$contentDeleted = array('status' => 'error', 'message' => 'Post associated to the reply is deleted');
return $response->setJsonContent($contentDeleted);
}
if ($postReply->post->accepted_answer == 'Y') {
$contentAlreadyAnswer = array('status' => 'error', 'message' => 'This post already has an accepted answer');
return $response->setJsonContent($contentAlreadyAnswer);
}
if ($postReply->post->users_id != $user->id && $user->moderator != 'Y') {
$contentCorrect = array('status' => 'error', 'message' => 'You can\'t accept this answer as correct');
return $response->setJsonContent($contentCorrect);
}
if ($postReply->post->users_id != $postReply->users_id) {
$postReply->post->user->karma += Karma::SOMEONE_ELSE_ACCEPT_YOUR_REPLY;
$postReply->post->user->votes_points += Karma::SOMEONE_ELSE_ACCEPT_YOUR_REPLY;
$points = 30 + intval(abs($user->karma - $postReply->user->karma) / 1000);
$parametersBounty = array('users_id = ?0 AND posts_replies_id = ?1', 'bind' => array($postReply->users_id, $postReply->id));
$postBounty = PostsBounties::findFirst($parametersBounty);
if ($postBounty) {
$points += $postBounty->points;
}
$postReply->user->karma += $points;
$postReply->user->votes_points += $points;
if ($postReply->users_id != $user->id && $postReply->post->users_id != $user->id) {
$user->karma += Karma::SOMEONE_ELSE_ACCEPT_YOUR_REPLY;
$user->votes_points += Karma::SOMEONE_ELSE_ACCEPT_YOUR_REPLY;
}
}
$postReply->accepted = 'Y';
$postReply->post->accepted_answer = 'Y';
if ($postReply->save()) {
if (!$user->save()) {
foreach ($user->getMessages() as $message) {
$contentError = array('status' => 'error', 'message' => $message->getMessage());
return $response->setJsonContent($contentError);
}
}
}
if ($user->id != $postReply->users_id) {
$activity = new ActivityNotifications();
$activity->users_id = $postReply->users_id;
$activity->posts_id = $postReply->post->id;
$activity->posts_replies_id = $postReply->id;
$activity->users_origin_id = $user->id;
$activity->type = 'A';
$activity->save();
}
$contentOk = array('status' => 'OK');
return $response->setJsonContent($contentOk);
}
作者:Blk
项目:foru
public function onConstruct()
{
$last_threads = $this->modelsManager->createBuilder()->from(array('p' => 'Phosphorum\\Models\\Posts'))->groupBy("p.id")->join('Phosphorum\\Models\\Categories', "r.id = p.categories_id", 'r')->join('Phosphorum\\Models\\Users', "u.id = p.users_id", 'u')->columns(array('p.title as title_post', 'p.id as id_post', 'p.slug as slug_post', 'r.name as name_category', 'u.name as name_user'))->orderBy('p.created_at DESC')->limit(3)->getQuery()->execute();
$users = Users::find()->getLast();
$this->view->setVars(['threads' => Posts::count(), 'last_threads' => $last_threads, 'users' => Users::count(), 'users_latest' => $users->login, 'actionName' => $this->dispatcher->getActionName()]);
}