ODE STYLE Formating gulliver/system/class.controller.php
Change format files in gulliver/system/class.controller.php
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controller Class
|
* Controller Class
|
||||||
* Implementing MVC Pattern
|
* Implementing MVC Pattern
|
||||||
|
*
|
||||||
* @author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
* @author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||||||
* @package gulliver.system
|
* @package gulliver.system
|
||||||
* @access private
|
* @access private
|
||||||
@@ -9,30 +11,36 @@
|
|||||||
class Controller
|
class Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
*
|
||||||
* @var boolean debug switch for general purpose
|
* @var boolean debug switch for general purpose
|
||||||
*/
|
*/
|
||||||
public $debug = null;
|
public $debug = null;
|
||||||
/**
|
/**
|
||||||
|
*
|
||||||
* @var array - private array to store proxy data
|
* @var array - private array to store proxy data
|
||||||
*/
|
*/
|
||||||
private $__data__ = array();
|
private $__data__ = array ();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
*
|
||||||
* @var object - private object to store the http request data
|
* @var object - private object to store the http request data
|
||||||
*/
|
*/
|
||||||
private $__request__;
|
private $__request__;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
*
|
||||||
* @var object - headPublisher object to handle the output
|
* @var object - headPublisher object to handle the output
|
||||||
*/
|
*/
|
||||||
private $headPublisher = null;
|
private $headPublisher = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
*
|
||||||
* @var string - response type var. possibles values: json|plain
|
* @var string - response type var. possibles values: json|plain
|
||||||
*/
|
*/
|
||||||
private $responseType = '';
|
private $responseType = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
*
|
||||||
* @var string - layout to pass skinEngine
|
* @var string - layout to pass skinEngine
|
||||||
*/
|
*/
|
||||||
private $layout = '';
|
private $layout = '';
|
||||||
@@ -43,7 +51,7 @@ class Controller
|
|||||||
* @param string $name
|
* @param string $name
|
||||||
* @param string $value
|
* @param string $value
|
||||||
*/
|
*/
|
||||||
public function __set($name, $value)
|
public function __set ($name, $value)
|
||||||
{
|
{
|
||||||
$this->__data__[$name] = $value;
|
$this->__data__[$name] = $value;
|
||||||
}
|
}
|
||||||
@@ -54,215 +62,235 @@ class Controller
|
|||||||
* @param string $name
|
* @param string $name
|
||||||
* @return string or NULL if the internal var doesn't exist
|
* @return string or NULL if the internal var doesn't exist
|
||||||
*/
|
*/
|
||||||
public function __get($name)
|
public function __get ($name)
|
||||||
{
|
{
|
||||||
if (array_key_exists($name, $this->__data__)) {
|
if (array_key_exists( $name, $this->__data__ )) {
|
||||||
return $this->__data__[$name];
|
return $this->__data__[$name];
|
||||||
}
|
}
|
||||||
|
|
||||||
$trace = debug_backtrace();
|
$trace = debug_backtrace();
|
||||||
trigger_error(
|
trigger_error( 'Undefined property via __get(): ' . $name . ' in ' . $trace[0]['file'] . ' on line ' . $trace[0]['line'], E_USER_NOTICE );
|
||||||
'Undefined property via __get(): ' . $name .
|
|
||||||
' in ' . $trace[0]['file'] .
|
|
||||||
' on line ' . $trace[0]['line'],
|
|
||||||
E_USER_NOTICE);
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Magic isset method
|
* Magic isset method
|
||||||
|
*
|
||||||
* @param string $name
|
* @param string $name
|
||||||
*/
|
*/
|
||||||
public function __isset($name)
|
public function __isset ($name)
|
||||||
{
|
{
|
||||||
return isset($this->__data__[$name]);
|
return isset( $this->__data__[$name] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Magic unset method
|
* Magic unset method
|
||||||
|
*
|
||||||
* @param string $name
|
* @param string $name
|
||||||
*/
|
*/
|
||||||
public function __unset($name)
|
public function __unset ($name)
|
||||||
{
|
{
|
||||||
unset($this->__data__[$name]);
|
unset( $this->__data__[$name] );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Response type method
|
* Set Response type method
|
||||||
|
*
|
||||||
* @param string $type contains : json|plain
|
* @param string $type contains : json|plain
|
||||||
*/
|
*/
|
||||||
public function setResponseType($type)
|
public function setResponseType ($type)
|
||||||
{
|
{
|
||||||
$this->responseType = $type;
|
$this->responseType = $type;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* call to execute a internal proxy method and handle its exceptions
|
* call to execute a internal proxy method and handle its exceptions
|
||||||
|
*
|
||||||
* @param string $name
|
* @param string $name
|
||||||
*/
|
*/
|
||||||
public function call($name)
|
public function call ($name)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$result = $this->$name($this->__request__);
|
$result = $this->$name( $this->__request__ );
|
||||||
if ($this->responseType == 'json') {
|
if ($this->responseType == 'json') {
|
||||||
print G::json_encode($result);
|
print G::json_encode( $result );
|
||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
if ($this->responseType != 'json') {
|
if ($this->responseType != 'json') {
|
||||||
$result->exception->class = get_class($e);
|
$result->exception->class = get_class( $e );
|
||||||
$result->exception->code = $e->getCode();
|
$result->exception->code = $e->getCode();
|
||||||
|
|
||||||
$template = new TemplatePower(PATH_TEMPLATE . 'controller.exception.tpl');
|
$template = new TemplatePower( PATH_TEMPLATE . 'controller.exception.tpl' );
|
||||||
$template->prepare();
|
$template->prepare();
|
||||||
$template->assign('controller', (function_exists('get_called_class') ? get_called_class() : 'Controller'));
|
$template->assign( 'controller', (function_exists( 'get_called_class' ) ? get_called_class() : 'Controller') );
|
||||||
$template->assign('message', $e->getMessage());
|
$template->assign( 'message', $e->getMessage() );
|
||||||
$template->assign('file', $e->getFile());
|
$template->assign( 'file', $e->getFile() );
|
||||||
$template->assign('line', $e->getLine());
|
$template->assign( 'line', $e->getLine() );
|
||||||
$template->assign('trace', $e->getTraceAsString());
|
$template->assign( 'trace', $e->getTraceAsString() );
|
||||||
|
|
||||||
echo $template->getOutputContent();
|
echo $template->getOutputContent();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$result->success = false;
|
$result->success = false;
|
||||||
$result->msg = $e->getMessage();
|
$result->msg = $e->getMessage();
|
||||||
switch(get_class($e)) {
|
switch (get_class( $e )) {
|
||||||
case 'Exception': $error = "SYSTEM ERROR"; break;
|
case 'Exception':
|
||||||
case 'PMException': $error = "PROCESSMAKER ERROR"; break;
|
$error = "SYSTEM ERROR";
|
||||||
case 'PropelException': $error = "DATABASE ERROR"; break;
|
break;
|
||||||
case 'UserException': $error = "USER ERROR"; break;
|
case 'PMException':
|
||||||
|
$error = "PROCESSMAKER ERROR";
|
||||||
|
break;
|
||||||
|
case 'PropelException':
|
||||||
|
$error = "DATABASE ERROR";
|
||||||
|
break;
|
||||||
|
case 'UserException':
|
||||||
|
$error = "USER ERROR";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
$result->error = $error;
|
$result->error = $error;
|
||||||
|
|
||||||
$result->exception->class = get_class($e);
|
$result->exception->class = get_class( $e );
|
||||||
$result->exception->code = $e->getCode();
|
$result->exception->code = $e->getCode();
|
||||||
print G::json_encode($result);
|
print G::json_encode( $result );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the http request data
|
* Set the http request data
|
||||||
|
*
|
||||||
* @param array $data
|
* @param array $data
|
||||||
*/
|
*/
|
||||||
public function setHttpRequestData($data)
|
public function setHttpRequestData ($data)
|
||||||
{
|
{
|
||||||
if (!is_object($this->__request__)) {
|
if (! is_object( $this->__request__ )) {
|
||||||
$this->__request__ = new stdclass();
|
$this->__request__ = new stdclass();
|
||||||
}
|
}
|
||||||
if( is_array($data) ) {
|
if (is_array( $data )) {
|
||||||
while( $var = each($data) )
|
while ($var = each( $data )) {
|
||||||
$this->__request__->$var['key'] = $var['value'];
|
$this->__request__->$var['key'] = $var['value'];
|
||||||
} else
|
}
|
||||||
|
} else {
|
||||||
$this->__request__ = $data;
|
$this->__request__ = $data;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get debug var. method
|
* Get debug var.
|
||||||
|
* method
|
||||||
|
*
|
||||||
* @param boolan $val boolean value for debug var.
|
* @param boolan $val boolean value for debug var.
|
||||||
*/
|
*/
|
||||||
public function setDebug($val)
|
public function setDebug ($val)
|
||||||
{
|
{
|
||||||
$this->debug = $val;
|
$this->debug = $val;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get debug var. method
|
* Get debug var.
|
||||||
|
* method
|
||||||
*/
|
*/
|
||||||
public function getDebug()
|
public function getDebug ()
|
||||||
{
|
{
|
||||||
if ($this->debug === null) {
|
if ($this->debug === null) {
|
||||||
$this->debug = defined('DEBUG') && DEBUG ? true : false;
|
$this->debug = defined( 'DEBUG' ) && DEBUG ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->debug;
|
return $this->debug;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
/*** HeadPublisher Functions Binding ***/
|
* * HeadPublisher Functions Binding **
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Include a particular extjs library or extension to the main output
|
* Include a particular extjs library or extension to the main output
|
||||||
|
*
|
||||||
* @param string $srcFile path of a extjs library or extension
|
* @param string $srcFile path of a extjs library or extension
|
||||||
* @param boolean $debug debug flag to indicate if the js output will be minifield or not
|
* @param boolean $debug debug flag to indicate if the js output will be minifield or not
|
||||||
* $debug: true -> the js content will be not minified (readable)
|
* $debug: true -> the js content will be not minified (readable)
|
||||||
* false -> the js content will be minified
|
* false -> the js content will be minified
|
||||||
*/
|
*/
|
||||||
public function includeExtJSLib($srcFile, $debug=false)
|
public function includeExtJSLib ($srcFile, $debug = false)
|
||||||
{
|
{
|
||||||
$this->getHeadPublisher()->usingExtJs($srcFile, ($debug ? $debug : $this->getDebug()));
|
$this->getHeadPublisher()->usingExtJs( $srcFile, ($debug ? $debug : $this->getDebug()) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Include a javascript file that is using extjs framework to the main output
|
* Include a javascript file that is using extjs framework to the main output
|
||||||
|
*
|
||||||
* @param string $srcFile path of javascrit file to include
|
* @param string $srcFile path of javascrit file to include
|
||||||
* @param boolean $debug debug flag to indicate if the js output will be minifield or not
|
* @param boolean $debug debug flag to indicate if the js output will be minifield or not
|
||||||
* $debug: true -> the js content will be not minified (readable)
|
* $debug: true -> the js content will be not minified (readable)
|
||||||
* false -> the js content will be minified
|
* false -> the js content will be minified
|
||||||
*/
|
*/
|
||||||
public function includeExtJS($srcFile, $debug=false)
|
public function includeExtJS ($srcFile, $debug = false)
|
||||||
{
|
{
|
||||||
$this->getHeadPublisher()->addExtJsScript($srcFile, ($debug ? $debug : $this->getDebug()));
|
$this->getHeadPublisher()->addExtJsScript( $srcFile, ($debug ? $debug : $this->getDebug()) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Include a Html file to the main output
|
* Include a Html file to the main output
|
||||||
|
*
|
||||||
* @param string $file path of html file to include to the main output
|
* @param string $file path of html file to include to the main output
|
||||||
*/
|
*/
|
||||||
public function setView($file)
|
public function setView ($file)
|
||||||
{
|
{
|
||||||
$this->getHeadPublisher()->addContent($file);
|
$this->getHeadPublisher()->addContent( $file );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set variables to be accesible by javascripts
|
* Set variables to be accesible by javascripts
|
||||||
|
*
|
||||||
* @param string $name contains var. name
|
* @param string $name contains var. name
|
||||||
* @param string $value conatins var. value
|
* @param string $value conatins var. value
|
||||||
*/
|
*/
|
||||||
public function setJSVar($name, $value)
|
public function setJSVar ($name, $value)
|
||||||
{
|
{
|
||||||
$this->getHeadPublisher()->assign($name, $value);
|
$this->getHeadPublisher()->assign( $name, $value );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set variables to be accesible by the extjs layout template
|
* Set variables to be accesible by the extjs layout template
|
||||||
|
*
|
||||||
* @param string $name contains var. name
|
* @param string $name contains var. name
|
||||||
* @param string $value conatins var. value
|
* @param string $value conatins var. value
|
||||||
*/
|
*/
|
||||||
public function setVar($name, $value)
|
public function setVar ($name, $value)
|
||||||
{
|
{
|
||||||
$this->getHeadPublisher()->assignVar($name, $value);
|
$this->getHeadPublisher()->assignVar( $name, $value );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* method to get the local getHeadPublisher object
|
* method to get the local getHeadPublisher object
|
||||||
*/
|
*/
|
||||||
public function getHeadPublisher()
|
public function getHeadPublisher ()
|
||||||
{
|
{
|
||||||
if (!is_object($this->headPublisher)) {
|
if (! is_object( $this->headPublisher )) {
|
||||||
$this->headPublisher = headPublisher::getSingleton();
|
$this->headPublisher = headPublisher::getSingleton();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->headPublisher;
|
return $this->headPublisher;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setLayout($layout)
|
public function setLayout ($layout)
|
||||||
{
|
{
|
||||||
$this->layout = $layout;
|
$this->layout = $layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render($type='mvc')
|
public function render ($type = 'mvc')
|
||||||
{
|
{
|
||||||
G::RenderPage('publish', $type, null, $this->layout);
|
G::RenderPage( 'publish', $type, null, $this->layout );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function header($header)
|
public function header ($header)
|
||||||
{
|
{
|
||||||
G::header($header);
|
G::header( $header );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function redirect($url)
|
public function redirect ($url)
|
||||||
{
|
{
|
||||||
G::header("Location: $url");
|
G::header( "Location: $url" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user