00001 <?php
00002
00019 lt_include( PLOG_CLASS_PATH."class/config/properties.class.php" );
00020
00024 define( "TEXT_HTML_CONTENT_TYPE", "text/html" );
00025 define( "TEXT_XML_CONTENT_TYPE", "text/xml" );
00026
00030 define( "DEFAULT_VIEW_CHARSET", "iso-8859-1" );
00031
00036 define( "VIEW_DEFAULT_START_PAGE", 1 );
00037
00041 define( "VIEW_DEFAULT_PAGE_PARAMETER", "page" );
00042
00056 class View
00057 {
00058
00059 var $_params;
00060 var $_contentType;
00061 var $_headers;
00062 var $_charset;
00063 var $_request;
00064
00068 function View()
00069 {
00070
00071
00072 $this->_params = new Properties();
00073
00074
00075 $this->_contentType = TEXT_HTML_CONTENT_TYPE;
00076 $this->_charset = DEFAULT_VIEW_CHARSET;
00077 $this->_headers = Array();
00078
00079
00080 $this->setValue( "formIsError", false );
00081
00082 $this->setValue( "formIsSuccess", false );
00083
00084
00085
00086
00087 $this->addHeaderResponse( "HTTP/1.0 200 OK" );
00088
00089
00090 $this->_request = new Request( HttpVars::getRequest());
00091 }
00092
00100 function setValue( $name, $value )
00101 {
00102
00103 $this->_params->setValue( $name, $value );
00104 }
00105
00112 function getValue( $name )
00113 {
00114 return $this->_params->getValue( $name );
00115 }
00116
00123 function setContentType( $contentType )
00124 {
00125 $this->_contentType = $contentType;
00126 }
00127
00133 function setCharset( $charset )
00134 {
00135 $this->_charset = $charset;
00136 }
00137
00144 function addHeaderResponse( $headerString )
00145 {
00146 array_push( $this->_headers, $headerString );
00147
00148 return true;
00149 }
00150
00160 function setHeaders( $headers = Array())
00161 {
00162 $this->_headers = $headers;
00163 }
00164
00171 function sendContentType()
00172 {
00173
00174 $header = "Content-Type: ".$this->_contentType.";charset=".$this->_charset;
00175 header( $header );
00176
00177 return true;
00178 }
00179
00186 function setErrorMessage( $message )
00187 {
00188 $this->setValue( "viewErrorMessage", $message );
00189 $this->setError( true );
00190
00191 return true;
00192 }
00193
00201 function setError( $error = true )
00202 {
00203 $this->setValue( "viewIsError", $error );
00204
00205 return true;
00206 }
00207
00215 function setSuccess( $success = true )
00216 {
00217 $this->setValue( "viewIsSuccess", $success );
00218
00219 return true;
00220 }
00221
00229 function setSuccessMessage( $message )
00230 {
00231 $this->setValue( "viewSuccessMessage", $message );
00232 $this->setSuccess( true );
00233
00234 return true;
00235 }
00236
00246 function setSessionValue( $param, $value )
00247 {
00248 $session = HttpVars::getSession();
00249
00250
00251 if( !is_array( $session ))
00252 return false;
00253
00254 $viewName = get_class( $this );
00255 $keyName = "{$viewName}_{$param}";
00256 $session["$keyName"] = $value;
00257 HttpVars::setSession( $session );
00258
00259 return true;
00260 }
00261
00270 function getSessionValue( $param, $defaultValue = "" )
00271 {
00272 $session = HttpVars::getSession();
00273
00274
00275 if( !is_array( $session ))
00276 return false;
00277
00278 $viewName = get_class( $this );
00279 $keyName = "{$viewName}_{$param}";
00280
00281 if(isset($session[$keyName]) && !empty($session[$keyName]) ){
00282 return $session[$keyName];
00283 } else{
00284 return $defaultValue;
00285 }
00286 }
00287
00288
00295 function getCurrentPageFromRequest()
00296 {
00297 static $request;
00298 if( $request == null )
00299 $request = new Request( HttpVars::getRequest() );
00300
00301
00302 $page = $request->getValue( VIEW_DEFAULT_PAGE_PARAMETER );
00303
00304
00305 lt_include( PLOG_CLASS_PATH."class/data/validator/integervalidator.class.php");
00306 $val = new IntegerValidator();
00307 if( !$val->validate( $page ))
00308 $page = VIEW_DEFAULT_START_PAGE;
00309
00310 return $page;
00311 }
00312
00322 function render()
00323 {
00324
00325 foreach( $this->_headers as $header )
00326 header( $header );
00327
00328 $this->sendContentType();
00329 }
00330 }
00331 ?>