/**
	 * Renders data and sets headers for proper browser display
	 * 
	 * @param	string $zone	optional
	 * @param	string $type	optional
	 * @param	string $format	optional
	 * @param	bool $return	optional
	 * @return	mixed		returns string if return is true, else it echo's the output
	 */
	public function render( $zone = null, $type = null, $format = null, $return = false )
	{
		if ($zone !== null) {
			$this->zone = $zone;
		}
		if ($type !== null) {
			$this->type = $type;
		}
		if ($format !== null) {
			$this->format = strtolower( $format );
		}
		
		switch ($this->type) {
		case 'd':
			$this->type = 'day';
			break;
		case 'w':
			$this->type = 'week';
			break;
		}

		$this->format = ! empty( $this->formats[$this->format] ) ? $this->format : 'xml';
		$output = null;

		try {
			if (! in_array( $this->type, $this->app->types, true ) || ! in_array( $this->zone, $this->app->zones, true )) {
				throw new InvalidRequestException();
			}
			$output = $this->app->get( $this->zone, $this->type, $this->format );
		} catch ( InvalidRequestException $e ) {
			$err = array( 
				'msg' => 'Missing or invalid request parameters (zone or type)', 
				'code' => 1 
			);
		} catch ( HTTPFetchException $e ) {
			$err = array( 
				'msg' => 'An error has occured contacting third party service', 
				'code' => 2 
			);
		} catch ( Exception $e ) {
			$err = array( 
				'msg' => 'An error has occured', 
				'code' => 3 
			);
		}
		
		if (isset( $e ) && $e instanceof Exception) {
			$output = (string) $this->error( $err, $this->format );
		}
		
		if (! $return) {
			$ctype = ! empty( $this->formats[$this->format] ) ? $this->formats[$this->format] : 'application/octet-stream';
			$charset = strtolower( $this->app->getOutputEncoding() );
			header( "Content-Type: $ctype;charset=$charset" );
			echo $output;
		} else {
			return $output;
		}
	} // render }}}
<?php

error_reporting( E_ALL );
require_once( 'sasua_canteens.php' );

//
// web applications
//
$_GET['z'] = 'santiago';
$_GET['t'] = 'day';
$_GET['f'] = 'json';
$sas = new SASUA_Canteens_Web();


echo "\n\n\n";


//
// console applications
//
$sas = new SASUA_Canteens();
//echo $sas->get( 'santiago', 'day', 'xml' );
echo $sas->get( 'santiago', 'week', 'xml' );

?>