/** * Get sort order * * @param string $sort * @param string $page * @param string $ord * @return array */ public function getSortOrder($sort = null, $page = null, $ord = 'ASC') { $field = 'id'; $order = $ord; $sess = null; if (stripos(php_sapi_name(), 'cli') === false || stripos(php_sapi_name(), 'server') !== false) { $sess = \Pop\Session\Session::getInstance(); } if (null !== $sort) { if (null !== $sess && $page != $sess->lastPage) { if ($sort != $sess->lastSortField) { $field = $sort; $order = $ord; } else { $field = $sess->lastSortField; $order = $sess->lastSortOrder; } } else { $field = $sort; if (null !== $sess && isset($sess->lastSortOrder)) { $order = $sess->lastSortOrder == 'ASC' ? 'DESC' : 'ASC'; } else { $order = $ord; } } } if (null !== $sess) { $sess->lastSortField = $field; $sess->lastSortOrder = $order; $sess->lastPage = $page; } return $field . ' ' . $order; }
/** * Logout a user * * @param \Pop\Session\Session $sess * @return void */ public function logout($sess) { $user = Table\Users::findById($sess->user->id); $session = new Session(); $session->clear($sess->user->sess_id, $sess->user->id, $sess->getId()); $cookie = Cookie::getInstance(['path' => '/']); $cookie->delete('pop_session'); $cookie->delete('pop_session_timeout'); $cookie->delete('pop_timeout_warning'); $cookie->delete('pop_current_width'); if (isset($user->id)) { $user->last_login = date('Y-m-d H:i:s'); $user->last_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null; $user->last_ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null; $user->save(); } unset($sess->user); }