aboutsummaryrefslogtreecommitdiff
path: root/h-source/Library/Call.php
diff options
context:
space:
mode:
authorYuchen Pei <me@ypei.me>2021-07-29 14:17:20 +1000
committerYuchen Pei <me@ypei.me>2021-07-29 14:17:20 +1000
commit3ff03dc4f0a72432b34c00da620272cf011e4ddd (patch)
tree5746711ba17a91aed56c6529ea8cceb06c3ad16a /h-source/Library/Call.php
parentcd4534aa10ba3b122963992741721289fa50d0ab (diff)
Publishing h-node.org code.
- this is the h-node.org code, except - removed a js file (3x copies at three different locations) without license / copyright headers - /Js/linkToForm.js - /Public/Js/linkToForm.js - /admin/Public/Js/linkToForm.js - removed config files containing credentials - /Application/Include/params.php - /Config/Config.php - /admin/Application/Include/params.php - /admin/Config/Config.php - added license and copyright header to one php file - /admin/Library/ErrorReporting.php (almost identical to /Library/ErrorReporting.php which has the headers)
Diffstat (limited to 'h-source/Library/Call.php')
-rwxr-xr-xh-source/Library/Call.php208
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();