From 00e7f3eb40c9c198c1cebd37b99bfd65e265cddf Mon Sep 17 00:00:00 2001 From: Dmitriy Simushev Date: Mon, 19 May 2014 07:33:44 +0000 Subject: [PATCH] Add controller's action for user's track --- src/mibew/libs/chat.php | 2 +- .../Mibew/Controller/HistoryController.php | 54 +++++++++++++++ src/mibew/libs/routing.yml | 6 ++ src/mibew/operator/tracked.php | 66 ------------------- .../server_side/users.handlebars | 2 +- 5 files changed, 62 insertions(+), 68 deletions(-) delete mode 100644 src/mibew/operator/tracked.php diff --git a/src/mibew/libs/chat.php b/src/mibew/libs/chat.php index bc30318b..04da9865 100644 --- a/src/mibew/libs/chat.php +++ b/src/mibew/libs/chat.php @@ -585,7 +585,7 @@ function setup_chatview_for_operator(Thread $thread, $operator) $visitor = track_get_visitor_by_thread_id($thread->id); $tracked_link_params = array("visitor" => "" . $visitor['visitorid']); $data['chat']['links']['tracked'] = add_params( - MIBEW_WEB_ROOT . "/operator/tracked.php", + MIBEW_WEB_ROOT . "/operator/history/user-track", $tracked_link_params ); } diff --git a/src/mibew/libs/classes/Mibew/Controller/HistoryController.php b/src/mibew/libs/classes/Mibew/Controller/HistoryController.php index e7c3d67c..8469dcc9 100644 --- a/src/mibew/libs/classes/Mibew/Controller/HistoryController.php +++ b/src/mibew/libs/classes/Mibew/Controller/HistoryController.php @@ -18,7 +18,9 @@ namespace Mibew\Controller; use Mibew\Database; +use Mibew\Http\Exception\BadRequestException; use Mibew\Thread; +use Mibew\Settings; use Symfony\Component\HttpFoundation\Request; /** @@ -269,4 +271,56 @@ class HistoryController extends AbstractController return $this->render('history_user', $page); } + + /** + * Generate content for "history_user_track" route. + * + * @param Request $request + * @return string Rendered page content + */ + public function userTrackAction(Request $request) + { + setlocale(LC_TIME, getstring('time.locale')); + + if (Settings::get('enabletracking') == '0') { + throw new BadRequestException('Tracking is disabled.'); + } + + if ($request->query->has('thread')) { + $thread_id = $request->query->get('thread'); + if (!preg_match("/^\d{1,8}$/", $thread_id)) { + throw new BadRequestException('Wrong thread ID.'); + } + $visitor = track_get_visitor_by_thread_id($thread_id); + if (!$visitor) { + throw new BadRequestException('Wrong thread.'); + } + } else { + $visitor_id = $request->query->get('visitor'); + if (!preg_match("/^\d{1,8}$/", $visitor_id)) { + throw new BadRequestException('Wrong visitor ID.'); + } + $visitor = track_get_visitor_by_id($visitor_id); + if (!$visitor) { + throw new BadRequestException('Wrong visitor.'); + } + } + + $path = track_get_path($visitor); + + $page['entry'] = htmlspecialchars($visitor['entry']); + $page['history'] = array(); + ksort($path); + foreach ($path as $k => $v) { + $page['history'][] = array( + 'date' => date_to_text($k), + 'link' => htmlspecialchars($v), + ); + } + + $page['title'] = getlocal('tracked.path'); + $page['show_small_login'] = false; + + return $this->render('tracked', $page); + } } diff --git a/src/mibew/libs/routing.yml b/src/mibew/libs/routing.yml index aa597080..275ba675 100644 --- a/src/mibew/libs/routing.yml +++ b/src/mibew/libs/routing.yml @@ -34,6 +34,12 @@ history_user: requirements: user_id: .{0,63} +history_user_track: + path: /operator/history/user-track + defaults: + _controller: Mibew\Controller\HistoryController::userTrackAction + _access_check: Mibew\AccessControl\Check\LoggedInCheck + password_recovery: path: /operator/password-recovery defaults: diff --git a/src/mibew/operator/tracked.php b/src/mibew/operator/tracked.php deleted file mode 100644 index ca80345c..00000000 --- a/src/mibew/operator/tracked.php +++ /dev/null @@ -1,66 +0,0 @@ - $v) { - $page['history'][] = array( - 'date' => date_to_text($k), - 'link' => htmlspecialchars($v), - ); -} - -$page['title'] = getlocal("tracked.path"); -$page['show_small_login'] = false; - -$page_style = new PageStyle(PageStyle::getCurrentStyle()); -$page_style->render('tracked', $page); diff --git a/src/mibew/styles/pages/default/templates_src/server_side/users.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/users.handlebars index 1adb95d1..dba681d7 100644 --- a/src/mibew/styles/pages/default/templates_src/server_side/users.handlebars +++ b/src/mibew/styles/pages/default/templates_src/server_side/users.handlebars @@ -98,7 +98,7 @@ agentLink: "{{mibewRoot}}/operator/agent.php", geoLink: "{{geoLink}}", - trackedLink: "{{mibewRoot}}/operator/tracked.php", + trackedLink: "{{mibewRoot}}/operator/history/user-track", banLink: "{{mibewRoot}}/operator/ban.php", inviteLink: "{{mibewRoot}}/operator/invite.php",