diff options
Diffstat (limited to 'h-source/Library/Call.php')
| -rwxr-xr-x | h-source/Library/Call.php | 208 | 
1 files changed, 31 insertions, 177 deletions
diff --git a/h-source/Library/Call.php b/h-source/Library/Call.php index 7f80841..c75508b 100755 --- a/h-source/Library/Call.php +++ b/h-source/Library/Call.php @@ -2,7 +2,7 @@  // EasyGiant is a PHP framework for creating and managing dynamic content  // -// Copyright (C) 2009 - 2014  Antonio Gallo (info@laboratoriolibero.com) +// Copyright (C) 2009 - 2011  Antonio Gallo  // See COPYRIGHT.txt and LICENSE.txt.  //  // This file is part of EasyGiant @@ -35,40 +35,19 @@ function sanitizeSuperGlobal()  	$_SERVER = stripslashesDeep($_SERVER);  } -function checkPostLength($checkArray = null) + + +function checkPostLength()  { -	$a = isset($checkArray) ? $checkArray : $_POST; -	  	if (MAX_POST_LENGTH !== 0)  	{ -		foreach ($a as $key => $value) +		foreach ($_POST as $key => $value)  		{ -			if (is_array($value)) -			{ -				checkPostLength($value); -			} -			else -			{ -				if (strlen($value) > MAX_POST_LENGTH) die('the length of some of the $_POST values is too large'); -			} +			if (strlen($value) > MAX_POST_LENGTH) die('the length of some of the $_POST values is too large');  		}  	}  } -//remove elements that are arrays -//applied to $_POST and $_GET -function fixArray($array) -{ -	$temp = array(); -	 -	foreach ($array as $key => $value) -	{ -		$temp[$key] = is_array($value) ? "" : $value; -	} -	 -	return $temp; -} -  function checkRequestUriLength()  {  	if (MAX_REQUEST_URI_LENGTH !== 0) @@ -82,108 +61,20 @@ function checkRegisterGlobals()      if (ini_get('register_globals')) die('register globals is on: easyGiant works only with register globals off');  } -//geth the name of the current application used -function getApplicationName() -{ -	if (isset(Params::$currentApplication)) -	{ -		return Params::$currentApplication; -	} -	return null; -} - -//geth the path of the current application used -//add the trailing slash to the application name -function getApplicationPath() -{ -	if (isset(Params::$currentApplication)) -	{ -		return "Apps".DS.ucfirst(Params::$currentApplication).DS; -	} -	return null; -} - -function languageInUrl($url) -{ -	$url = trim($url,"/"); -	 -	if (in_array($url,Params::$frontEndLanguages)) -	{ -		return $url."/"; -	} -	return false; -} -  function callHook()  { -	 +  	$currentUrl = null;  	if (MOD_REWRITE_MODULE === true)  	{ -		if (isset($_GET['url'])) -		{ -			if (!languageInUrl($_GET['url'])) -			{ -				$url = $_GET['url']; -			} -			else -			{ -				$url = languageInUrl($_GET['url']) . DEFAULT_CONTROLLER . '/' . DEFAULT_ACTION; -			} -		} -		else -		{ -			$url = DEFAULT_CONTROLLER . '/' . DEFAULT_ACTION; -		} +		$url = isset($_GET['url']) ? $_GET['url'] : DEFAULT_CONTROLLER . '/' . DEFAULT_ACTION;  	}  	else  	{ -		if (strcmp(getQueryString(),"") !== 0) -		{ -			if (!languageInUrl(getQueryString())) -			{ -				$url = getQueryString(); -			} -			else -			{ -				$url = languageInUrl(getQueryString()) . DEFAULT_CONTROLLER . '/' . DEFAULT_ACTION; -			} -		} -		else -		{ -			$url = DEFAULT_CONTROLLER . '/' . DEFAULT_ACTION; -		} +		$url = (strcmp(getQueryString(),"") !== 0) ? getQueryString() : DEFAULT_CONTROLLER . '/' . DEFAULT_ACTION;  	} -	$arriveUrl = $url; -	 -	$urlArray = array(); -	$urlArray = explode("/",$url); -	 -	//get the language -	if (count(Params::$frontEndLanguages) > 0) -	{ -		if (in_array($urlArray[0],Params::$frontEndLanguages)) -		{ -			Params::$lang = sanitizeAll($urlArray[0]); -			array_shift($urlArray); -		} -		else -		{ -			Params::$lang = Params::$defaultFrontEndLanguage; -/*			 -			if (isset($_GET['url']) and Params::$redirectToDefaultLanguage) -			{ -				$h = new HeaderObj(DOMAIN_NAME); -				 -				$h->redirect($arriveUrl); -			}*/ -		} -	} - -	$url = implode("/",$urlArray); -	  // 	rewrite the URL  	if (Route::$rewrite === 'yes')  	{ @@ -194,19 +85,12 @@ function callHook()  // 	echo $url; +	$urlArray = array();  	$urlArray = explode("/",$url); +  	$controller = DEFAULT_CONTROLLER;  	$action = DEFAULT_ACTION; -	 -	//check if an application name is found in the URL -	if (isset(Params::$installed) and isset($urlArray[0]) and strcmp($urlArray[0],'') !== 0 and in_array($urlArray[0],Params::$installed)) -	{ -		Params::$currentApplication = strtolower(trim($urlArray[0])); -		 -		array_shift($urlArray); -	} -	  	if (isset($urlArray[0]))  	{  		$controller = (strcmp($urlArray[0],'') !== 0) ? strtolower(trim($urlArray[0])) : DEFAULT_CONTROLLER; @@ -224,30 +108,10 @@ function callHook()  	$errorAction = ERROR_ACTION !== false ? ERROR_ACTION : DEFAULT_ACTION;  	/* -		CHECK COUPLES CONTROLLER,ACTION -	*/ -	if (!in_array('all',Route::$allowed)) -	{ -		$couple = "$controller,$action"; -		if (getApplicationName() !== null) -		{ -			$couple = getApplicationName().",".$couple; -		} -		if (!in_array($couple,Route::$allowed)) -		{ -			Params::$currentApplication = null; -			$controller = $errorController; -			$action = $errorAction; -			$urlArray = array(); -		} -	} -	 -	/*  	VERIFY THE ACTION NAME -	*/	 +	*/  	if (method_exists('Controller', $action) or !ctype_alnum($action) or (strcmp($action,'') === 0))  	{ -		Params::$currentApplication = null;  		$controller = $errorController;  		$action = $errorAction;  		$urlArray = array(); @@ -258,7 +122,6 @@ function callHook()  	*/  	if (!ctype_alnum($controller) or (strcmp($controller,'') === 0))  	{ -		Params::$currentApplication = null;  		$controller = $errorController;  		$action = $errorAction;  		$urlArray = array(); @@ -266,10 +129,8 @@ function callHook()  	//check that the controller class belongs to the application/controllers folder  	//otherwise set the controller to the default controller -	// 	if (!file_exists(ROOT.DS.APPLICATION_PATH.DS.'Controllers'.DS.ucwords($controller).'Controller.php') and !file_exists(ROOT.DS.APPLICATION_PATH.DS.getApplicationPath().'Controllers'.DS.ucwords($controller).'Controller.php')) -	if (!file_exists(ROOT.DS.APPLICATION_PATH.DS.getApplicationPath().'Controllers'.DS.ucwords($controller).'Controller.php')) +	if (!file_exists(ROOT.DS.APPLICATION_PATH.DS.'Controllers'.DS.ucwords($controller).'Controller.php'))  	{ -		Params::$currentApplication = null;  		$controller = $errorController;  		$action = $errorAction;  		$urlArray = array(); @@ -278,7 +139,6 @@ function callHook()  	//set the controller class to DEFAULT_CONTROLLER if it doesn't exists  	if (!class_exists(ucwords($controller).'Controller'))  	{ -		Params::$currentApplication = null;  		$controller = $errorController;  		$action = $errorAction;  		$urlArray = array(); @@ -287,28 +147,40 @@ function callHook()  	//set the action to DEFAULT_ACTION if it doesn't exists  	if (!method_exists(ucwords($controller).'Controller', $action))  	{ -		Params::$currentApplication = null;  		$controller = $errorController;  		$action = $errorAction;  		$urlArray = array();  	} + +	/* +		CHECK COUPLES CONTROLLER,ACTION +	*/ +	if (!in_array('all',Route::$allowed)) +	{ +		$couple = "$controller,$action"; +		if (!in_array($couple,Route::$allowed)) +		{ +			$controller = $errorController; +			$action = $errorAction; +			$urlArray = array(); +		} +	}  	array_shift($urlArray);  	$queryString = $urlArray;  	//set the name of the application -	$controllerName = $controller; +	$application = $controller;  	$controller = ucwords($controller);  	$model = $controller;  	$controller .= 'Controller';  	$model .= 'Model'; -// 	echo $controller."-".$action;  	//include the file containing the set of actions to carry out before the initialization of the controller class  	Hooks::load(ROOT . DS . APPLICATION_PATH . DS . 'Hooks' . DS . 'BeforeInitialization.php');  	if (class_exists($controller))  	{ -		$dispatch = new $controller($model,$controllerName,$queryString, getApplicationName()); +		$dispatch = new $controller($model,$application,$queryString);  		//pass the action to the controller object  		$dispatch->action = $action; @@ -324,7 +196,7 @@ function callHook()  		$templateFlag= true; -		if (method_exists($dispatch, $action)) +		if (method_exists($controller, $action))  		{  			//pass the action to the theme object  			$dispatch->theme->action = $action; @@ -363,10 +235,7 @@ function rewrite($url)  		$oldKey = $key;  		$key = str_replace('\/','/',$key);  		$key = str_replace('/','\/',$key); -		 -		$regExpr = Params::$exactUrlMatchRewrite ? '/^'.$key.'$/' : '/^'.$key.'/'; - -		if (preg_match($regExpr,$url)) +		if (preg_match('/^'.$key.'/',$url))  		{  			$nurl = preg_replace('/^'.$key.'/',$address,$url);  			return array($nurl,$oldKey); @@ -403,18 +272,10 @@ function __autoload($className)  	{  		require_once(ROOT . DS . 'Library' . DS . $className . '.php');   	} -	else if (getApplicationName() and file_exists(ROOT . DS . APPLICATION_PATH . DS . getApplicationPath() . 'Controllers' . DS . $backupName . '.php')) -	{ -		require_once(ROOT . DS . APPLICATION_PATH . DS . getApplicationPath() . 'Controllers' . DS . $backupName . '.php'); -	}  	else if (file_exists(ROOT . DS . APPLICATION_PATH . DS . 'Controllers' . DS . $backupName . '.php'))  	{  		require_once(ROOT . DS . APPLICATION_PATH . DS . 'Controllers' . DS . $backupName . '.php');  	} -	else if (getApplicationName() and file_exists(ROOT . DS . APPLICATION_PATH . DS . getApplicationPath() . 'Models' . DS . $backupName . '.php')) -	{ -		require_once(ROOT . DS . APPLICATION_PATH . DS . getApplicationPath() . 'Models' . DS . $backupName . '.php'); -	}  	else if (file_exists(ROOT . DS . APPLICATION_PATH . DS . 'Models' . DS . $backupName . '.php'))  	{  		require_once(ROOT . DS . APPLICATION_PATH . DS . 'Models' . DS . $backupName . '.php'); @@ -423,10 +284,6 @@ function __autoload($className)  	{  		require_once(ROOT . DS . APPLICATION_PATH . DS . 'Modules' . DS . $backupName . '.php');  	} -	else if (getApplicationName() and file_exists(ROOT . DS . APPLICATION_PATH . DS . getApplicationPath() . 'Strings' . DS . $backupName . '.php')) -	{ -		require_once(ROOT . DS . APPLICATION_PATH . DS . getApplicationPath() . 'Strings' . DS . $backupName . '.php'); -	}  	else if (file_exists(ROOT . DS . APPLICATION_PATH . DS . 'Strings' . DS . $className . '.php'))  	{  		require_once(ROOT . DS . APPLICATION_PATH . DS . 'Strings' . DS . $className . '.php'); @@ -436,9 +293,6 @@ function __autoload($className)  try { -	$_POST = fixArray($_POST); -	$_GET = fixArray($_GET); -	  	//check the length of the $_POST values  	checkPostLength();  | 
