Index: branches/5.3.x/core/kernel/session/session.php
===================================================================
diff -u -N -r15483 -r15578
--- branches/5.3.x/core/kernel/session/session.php (.../session.php) (revision 15483)
+++ branches/5.3.x/core/kernel/session/session.php (.../session.php) (revision 15578)
@@ -1,6 +1,6 @@
Data->AddParams( $this->Storage->LoadData() );
}
- function PrintSession($comment = '')
+ /**
+ * Returns information about session contents
+ *
+ * @param bool $include_optional
+ * @return array
+ * @access public
+ */
+ public function getSessionData($include_optional = true)
{
- if (defined('DEBUG_MODE') && $this->Application->isDebugMode() && kUtil::constOn('DBG_SHOW_SESSIONDATA')) {
- // dump session data
- $this->Application->Debugger->appendHTML('SessionStorage [' . ($this->RecallVar('admin') == 1 ? 'Admin' : 'Front-End') . '] ('.$comment.'):');
- $session_data = $this->Data->GetParams();
- ksort($session_data);
+ $session_data = $this->Data->GetParams();
+ ksort($session_data);
+
+ foreach ($session_data as $session_key => $session_value) {
+ if ( kUtil::IsSerialized($session_value) ) {
+ $session_data[$session_key] = unserialize($session_value);
+ }
+ }
+
+ if ( !$include_optional ) {
+ $optional_keys = array_keys($this->OptionalData);
+
foreach ($session_data as $session_key => $session_value) {
- if (kUtil::IsSerialized($session_value)) {
- $session_data[$session_key] = unserialize($session_value);
+ if ( in_array($session_key, $optional_keys) ) {
+ unset($session_data[$session_key]);
}
}
+ }
+
+ return $session_data;
+ }
+
+ /**
+ * Returns real session data, that was saved
+ *
+ * @param Array $session_data
+ * @return Array
+ * @access protected
+ */
+ protected function _getRealSessionData($session_data)
+ {
+ $data_keys = array_keys($session_data);
+ $optional_keys = array_keys($this->OptionalData);
+ $real_keys = array_diff($data_keys, $optional_keys);
+
+ if ( !$real_keys ) {
+ return Array ();
+ }
+
+ $ret = Array ();
+
+ foreach ($real_keys as $real_key) {
+ $ret[$real_key] = $session_data[$real_key];
+ }
+
+ return $ret;
+ }
+
+ function PrintSession($comment = '')
+ {
+ if ( defined('DEBUG_MODE') && $this->Application->isDebugMode() && kUtil::constOn('DBG_SHOW_SESSIONDATA') ) {
+ // dump session data
+ $this->Application->Debugger->appendHTML('SessionStorage [' . ($this->RecallVar('admin') == 1 ? 'Admin' : 'Front-End') . '] (' . $comment . '):');
+
+ $session_data = $this->getSessionData();
$this->Application->Debugger->dumpVars($session_data);
- if (!$this->RecallVar('admin')) {
+ if ( !$this->RecallVar('admin') ) {
// dump real keys (only for front-end)
- $data_keys = array_keys($session_data);
- $optional_keys = array_keys($this->OptionalData);
- $real_keys = array_diff($data_keys, $optional_keys);
+ $real_session_data = $this->_getRealSessionData($session_data);
- if ($real_keys) {
- $ret = '';
- foreach ($real_keys as $real_key) {
- $ret .= '[' . $real_key . '] = [' . $session_data[$real_key] . ']
';
- }
-
- $this->Application->Debugger->appendHTML('Real Keys:
' . $ret);
+ if ( $real_session_data ) {
+ $this->Application->Debugger->appendHTML('Real Keys:');
+ $this->Application->Debugger->dumpVars($real_session_data);
}
}
}
- if (defined('DEBUG_MODE') && $this->Application->isDebugMode() && kUtil::constOn('DBG_SHOW_PERSISTENTDATA')) {
+ if ( defined('DEBUG_MODE') && $this->Application->isDebugMode() && kUtil::constOn('DBG_SHOW_PERSISTENTDATA') ) {
// dump persistent session data
- if ($this->Storage->PersistentVars) {
+ if ( $this->Storage->PersistentVars ) {
$this->Application->Debugger->appendHTML('Persistant Session:');
$session_data = $this->Storage->PersistentVars;
ksort($session_data);
foreach ($session_data as $session_key => $session_value) {
- if (kUtil::IsSerialized($session_value)) {
+ if ( kUtil::IsSerialized($session_value) ) {
$session_data[$session_key] = unserialize($session_value);
}
}