00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 if (!class_exists('cakesession')) {
00028 uses('session');
00029 }
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 class SessionHelper extends CakeSession {
00041
00042
00043
00044
00045
00046 var $helpers = null;
00047
00048
00049
00050
00051
00052 var $__active = true;
00053
00054
00055
00056
00057
00058 function __construct($base = null) {
00059 if (Configure::read('Session.start') === true) {
00060 parent::__construct($base, false);
00061 } else {
00062 $this->__active = false;
00063 }
00064 }
00065
00066
00067
00068
00069
00070 function activate($base = null) {
00071 $this->__active = true;
00072 }
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084 function read($name = null) {
00085 if ($this->__active === true && $this->__start()) {
00086 return parent::read($name);
00087 }
00088 return false;
00089 }
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 function check($name) {
00100 if ($this->__active === true && $this->__start()) {
00101 return parent::check($name);
00102 }
00103 return false;
00104 }
00105
00106
00107
00108
00109
00110
00111
00112
00113 function error() {
00114 if ($this->__active === true && $this->__start()) {
00115 return parent::error();
00116 }
00117 return false;
00118 }
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129 function flash($key = 'flash') {
00130 if ($this->__active === true && $this->__start()) {
00131 if (parent::check('Message.' . $key)) {
00132 $flash = parent::read('Message.' . $key);
00133
00134 if ($flash['layout'] == 'default') {
00135 if (!empty($flash['params']['class'])) {
00136 $class = $flash['params']['class'];
00137 } else {
00138 $class = 'message';
00139 }
00140 $out = '<div id="' . $key . 'Message" class="' . $class . '">' . $flash['message'] . '</div>';
00141 } elseif ($flash['layout'] == '' || $flash['layout'] == null) {
00142 $out = $flash['message'];
00143 } else {
00144 $view =& ClassRegistry::getObject('view');
00145 list($tmpVars, $tmpTitle) = array($view->viewVars, $view->pageTitle);
00146 list($view->viewVars, $view->pageTitle) = array($flash['params'], '');
00147 $out = $view->renderLayout($flash['message'], $flash['layout']);
00148 list($view->viewVars, $view->pageTitle) = array($tmpVars, $tmpTitle);
00149 }
00150 echo($out);
00151 parent::del('Message.' . $key);
00152 return true;
00153 }
00154 }
00155 return false;
00156 }
00157
00158
00159
00160
00161
00162
00163 function valid() {
00164 if ($this->__active === true && $this->__start()) {
00165 return parent::valid();
00166 }
00167 }
00168
00169
00170
00171
00172
00173
00174
00175 function write() {
00176 trigger_error(__('You can not write to a Session from the view', true), E_USER_WARNING);
00177 }
00178
00179
00180
00181
00182
00183
00184 function id() {
00185 return parent::id();
00186 }
00187
00188
00189
00190
00191
00192
00193
00194
00195 function __start() {
00196 if (!parent::started()) {
00197 parent::start();
00198 }
00199 return true;
00200 }
00201 }
00202 ?>