Index: branches/unlabeled/unlabeled-1.55.2/core/kernel/session/session.php =================================================================== diff -u -r7874 -r7924 --- branches/unlabeled/unlabeled-1.55.2/core/kernel/session/session.php (.../session.php) (revision 7874) +++ branches/unlabeled/unlabeled-1.55.2/core/kernel/session/session.php (.../session.php) (revision 7924) @@ -366,9 +366,9 @@ $this->CookieName = $cookie_name; } - function InitStorage() + function InitStorage($special) { - $this->Storage =& $this->Application->recallObject('SessionStorage'); + $this->Storage =& $this->Application->recallObject('SessionStorage.'.$special); $this->Storage->setSessionTimeout($this->SessionTimeout); } @@ -380,7 +380,7 @@ if ($this->CookiesEnabled) $_COOKIE['cookies_on'] = 1; $this->Checkers = Array(); - $this->InitStorage(); + $this->InitStorage($special); $this->Data =& new Params(); $tmp_sid = $this->GetPassedSIDValue(); @@ -389,10 +389,10 @@ if( !(defined('IS_INSTALL') && IS_INSTALL) ) { $expired_sids = $this->DeleteExpired(); - if( ( $expired_sids && in_array($tmp_sid,$expired_sids) ) || ( $tmp_sid && !$check ) ) - { + if ( ( $expired_sids && in_array($tmp_sid,$expired_sids) ) || ( $tmp_sid && !$check ) ) { $this->SetSession(); $this->Application->HandleEvent($event, 'u:OnSessionExpire'); + return ; } } @@ -650,6 +650,15 @@ break; } $this->Storage->StoreSession($this); + + if ($this->Application->IsAdmin() || $this->Special == 'admin') { + $this->StoreVar('admin', 1); + } + + if ($this->Special != '') { + // front-session called from admin or otherwise, then save it's data + $this->SaveData(); + } } /**