public function Gdn_Statistics_Tick_Handler($Sender, $Args) { $Path = Gdn::Request()->Post('Path'); $Args = Gdn::Request()->Post('Args'); parse_str($Args, $Args); $ResolvedPath = trim(Gdn::Request()->Post('ResolvedPath'), '/'); $ResolvedArgs = @json_decode(Gdn::Request()->Post('ResolvedArgs')); $DiscussionID = NULL; $DiscussionModel = new DiscussionModel(); // Gdn::Controller()->SetData('Path', $Path); // Gdn::Controller()->SetData('Args', $Args); // Gdn::Controller()->SetData('ResolvedPath', $ResolvedPath); // Gdn::Controller()->SetData('ResolvedArgs', $ResolvedArgs); // Comment permalink if ($ResolvedPath == 'vanilla/discussion/comment') { $CommentID = GetValue('CommentID', $ResolvedArgs); $CommentModel = new CommentModel(); $Comment = $CommentModel->GetID($CommentID); $DiscussionID = GetValue('DiscussionID', $Comment); } elseif ($ResolvedPath == 'vanilla/discussion/index') { $DiscussionID = GetValue('DiscussionID', $ResolvedArgs, NULL); } elseif ($ResolvedPath == 'vanilla/discussion/embed') { $ForeignID = GetValue('vanilla_identifier', $Args); if ($ForeignID) { // This will be hit a lot so let's try caching it... $Key = "DiscussionID.ForeignID.page.{$ForeignID}"; $DiscussionID = Gdn::Cache()->Get($Key); if (!$DiscussionID) { $Discussion = $DiscussionModel->GetForeignID($ForeignID, 'page'); $DiscussionID = GetValue('DiscussionID', $Discussion); Gdn::Cache()->Store($Key, $DiscussionID, array(Gdn_Cache::FEATURE_EXPIRY, 1800)); } } } if ($DiscussionID) { $DiscussionModel->AddView($DiscussionID); } }
public function Gdn_Statistics_Tick_Handler($Sender, $Args) { $Path = GetValue('Path', $Args); if (preg_match('`discussion\\/(\\d+)`i', $Path, $Matches)) { $DiscussionID = $Matches[1]; } elseif (preg_match('`discussion\\/comment\\/(\\d+)`i', $Path, $Matches)) { $CommentID = $Matches[1]; $CommentModel = new CommentModel(); $Comment = $CommentModel->GetID($CommentID); $DiscussionID = GetValue('DiscussionID', $Comment); } if (isset($DiscussionID)) { $DiscussionModel = new DiscussionModel(); $Discussion = $DiscussionModel->GetID($DiscussionID); $DiscussionModel->AddView($DiscussionID, GetValue('CountViews', $Discussion)); } }