/** * Save current user to online cache */ public function online() { // Skip when signing in/out to avoid strange Fatal error if (strpos(URI::instance()->string(), 'sign') === 0) { return; } $user = Visitor::instance()->get_user(); $online = new Online_User_Model($_SESSION['session_id']); if (!$online->loaded()) { $online->session_id = $_SESSION['session_id']; } $online->last_activity = $_SESSION['last_activity']; $online->user_id = $user ? $user->id : null; try { $online->save(); } catch (ORM_Validation_Exception $e) { } }