/** * Function to record activity, ie: a page view. * * @static * */ public static function RecordActivity(){ $request = \PageRequest::GetSystemRequest(); $view = $request->getView(); if(!$view->record) return true; try{ $processingtime = (round(Profiler::GetDefaultProfiler()->getTime(), 3) * 1000); $log = new \UserActivityModel(); $log->setFromArray( [ 'datetime' => microtime(true), 'session_id' => session_id(), 'user_id' => \Core\user()->get('id'), 'ip_addr' => REMOTE_IP, 'useragent' => $request->useragent, 'referrer' => $request->referrer, 'type' => $_SERVER['REQUEST_METHOD'], 'request' => $_SERVER['REQUEST_URI'], 'baseurl' => $request->getBaseURL(), 'status' => $view->error, 'db_reads' => DatamodelProfiler::GetDefaultProfiler()->readCount(), 'db_writes' => (DatamodelProfiler::GetDefaultProfiler()->writeCount() + 1), 'processing_time' => $processingtime, ] ); if(defined('XHPROF_RUN') && defined('XHPROF_SOURCE')){ $log->set('xhprof_run', XHPROF_RUN); $log->set('xhprof_source', XHPROF_SOURCE); } $log->save(); } catch(\Exception $e){ // I don't actually care if it couldn't save. // This could happen if the user refreshes the page twice with in a second. // (and with a system that responds in about 100ms, it's very possible). \Core\ErrorManagement\exception_handler($e); } }