public function changeState($state){ switch($state){ case _ADMINPAGE::ANNOUNCEMENTS: $this->_CurrState = new adminstate_announcements(); break; case _ADMINPAGE::MESSAGES_LIST: $this->_CurrState = new adminstate_messages_list(); break; case _ADMINPAGE::MESSAGES_VIEW: $this->_CurrState = new adminstate_messages_view(); break; case _ADMINPAGE::MESSAGES_WRITE: $this->_CurrState = new adminstate_messages_write(); break; case _ADMINPAGE::USERS_VIEW: $this->_CurrState = new adminstate_users_view(); break; case _ADMINPAGE::USERS_CREATE: $this->_CurrState = new adminstate_users_create(); break; case _ADMINPAGE::USERS_MANAGE: $this->_CurrState = new adminstate_users_manage(); break; case _ADMINPAGE::USERS_LOGS: $this->_CurrState = new adminstate_users_logs(); break; case _ADMINPAGE::LOGIN_LOGS: $this->_CurrState = new adminstate_login_logs(); break; case _ADMINPAGE::PAGES_CREATE: if (_SESSION::GetCanCDOther() && _SESSION::GetCanCDSelf()){ $this->_CurrState = new adminstate_pages_create_both(); } else if (_SESSION::GetCanCreateSelf()){ $this->_CurrState = new adminstate_pages_create_self(); } else if (_SESSION::GetCanCreateOther()){ $this->_CurrState = new adminstate_pages_create_other(); } break; case _ADMINPAGE::PAGES_WRITE: $this->_CurrState = new adminstate_pages_write(); break; case _ADMINPAGE::PAGES_MANAGE: if (_SESSION::GetCanCDOther() && _SESSION::GetCanCDSelf()){ $this->_CurrState = new adminstate_pages_manage_both(); } else if (_SESSION::GetCanCreateSelf()){ $this->_CurrState = new adminstate_pages_manage_self(); } else if (_SESSION::GetCanCreateOther()){ $this->_CurrState = new adminstate_pages_manage_other(); } break; case ERROR_MUSTBELOGGEDIN: $this->_CurrState = new error_MustBeLoggedIn(); break; case 0: default: $this->_CurrState = new error_UnknownAction(); break; } }