Compare commits

...

2 Commits

Author SHA1 Message Date
Clemens Schwaighofer
647dd52c92 Remove all include/require parts from classes and use autoload function
Any include or require call is removed and now we use only _spl_autoload
in any class external file include call.
There are three new _DIR vars: LIBDIR, SMARTYDIR, TABLEARRAYDIR that are
based on the __DIR__ and not current working directory.
2015-11-11 14:19:25 +09:00
Clemens Schwaighofer
b2fdbc0571 Better autoload for required files
Add autoload function to main config file.
Add better DIR declarations in config file based on __DIR__ for libs &
smarty classes.
Load all class files with the new autoload function in header & direct
file calls.
2015-11-11 14:14:06 +09:00
13 changed files with 71 additions and 84 deletions

View File

@@ -15,10 +15,8 @@
// session_name(EDIT_SESSION_NAME);
// session_start();
// basic class test file
// require(LIBS."Class.Basic.inc");
// require(LIBS."Class.DB.IO.inc");
require(LIBS."Class.Login.inc");
require(LIBS."Class.Admin.Backend.inc");
foreach (array ('Login', 'Admin.Backend') as $class)
_spl_autoload('Class.'.$class.'.inc');
$lang = 'en_utf8';

View File

@@ -24,12 +24,9 @@
require("config.inc");
// set the session name
define('SET_SESSION_NAME', EDIT_SESSION_NAME);
// login class
require(LIBS."Class.Login.inc");
// DB connection & work time class
require(LIBS.'Class.Admin.Backend.inc');
// Smarty: and the small extend for l10n calls
require(LIBS.'Class.Smarty.Extend.inc');
// login class, DB connections & Admin class, Smarty extension
foreach (array ('Login', 'Admin.Backend', 'Smarty.Extend') as $class)
_spl_autoload('Class.'.$class.'.inc');
//------------------------------ library include end
//------------------------------ basic variable settings start
@@ -42,7 +39,7 @@
elseif (!$lang)
$lang = DEFAULT_LANG;
// end the stop of the output flow, but only if we didn't request a csv file download
if ($_POST['action'] != 'download_csv')
if (array_key_exists('action', $_POST) && $_POST['action'] != 'download_csv')
{
header("Content-type: text/html; charset=".$encoding);
ob_end_flush();

View File

@@ -35,7 +35,7 @@
// set include & template names
$CONTENT_INCLUDE = str_replace(".php", ".tpl", $cms->page_name);
$FORM_NAME = !$FORM_NAME ? str_replace(".php", "", $cms->page_name) : $FORM_NAME;
$FORM_NAME = !isset($FORM_NAME) || !$FORM_NAME ? str_replace(".php", "", $cms->page_name) : $FORM_NAME;
// strip tpl and replace it with inc
// php include file per page
$cms->INC_TEMPLATE_NAME = str_replace(".tpl", ".inc", $CONTENT_INCLUDE);
@@ -44,9 +44,9 @@
// css per page
$cms->CSS_TEMPLATE_NAME = str_replace(".tpl", ".css", $CONTENT_INCLUDE);
// special CSS file
$cms->CSS_SPECIAL_TEMPLATE_NAME = $CSS_NAME;
$cms->CSS_SPECIAL_TEMPLATE_NAME = @$CSS_NAME;
// special JS file
$cms->JS_SPECIAL_TEMPLATE_NAME = $JS_NAME;
$cms->JS_SPECIAL_TEMPLATE_NAME = @$JS_NAME;
// set basic template path (tmp)
$smarty->setTemplateDir(LAYOUT.$TEMPLATE_DIR.TEMPLATES.'/');

View File

@@ -24,21 +24,25 @@
include($cms->includes.$cms->INC_TEMPLATE_NAME);
}
// additional per page Javascript include
$cms->JS_INCLUDE = '';
if (file_exists($cms->javascript.$cms->JS_TEMPLATE_NAME) && is_file($cms->javascript.$cms->JS_TEMPLATE_NAME))
{
$cms->JS_INCLUDE = $cms->javascript.$cms->JS_TEMPLATE_NAME;
}
// per page css file
$cms->CSS_INCLUDE = '';
if (file_exists($cms->css.$cms->CSS_TEMPLATE_NAME) && is_file($cms->css.$cms->CSS_TEMPLATE_NAME))
{
$cms->CSS_INCLUDE = $cms->css.$cms->CSS_TEMPLATE_NAME;
}
// optional CSS file
$cms->CSS_SPECIAL_INCLUDE = '';
if (file_exists($cms->css.$cms->CSS_SPECIAL_TEMPLATE_NAME) && is_file($cms->css.$cms->CSS_SPECIAL_TEMPLATE_NAME))
{
$cms->CSS_SPECIAL_INCLUDE = $cms->css.$cms->CSS_SPECIAL_TEMPLATE_NAME;
}
// optional JS file
$cms->JS_SPECIAL_INCLUDE = '';
if (file_exists($cms->javascript.$cms->JS_SPECIAL_TEMPLATE_NAME) && is_file($cms->javascript.$cms->JS_SPECIAL_TEMPLATE_NAME))
{
$cms->JS_SPECIAL_INCLUDE = $cms->javascript.$cms->JS_SPECIAL_TEMPLATE_NAME;
@@ -64,7 +68,7 @@
$cms->HEADER['STYLESHEET'] = $EDIT_STYLESHEET;
$cms->HEADER['JAVASCRIPT'] = $EDIT_JAVASCRIPT;
// html title
$cms->HEADER['HTML_TITLE'] = ((!$L_TITLE) ? $cms->l->__($G_TITLE) : $cms->l->__($L_TITLE));
$cms->HEADER['HTML_TITLE'] = (!isset($L_TITLE) || !$L_TITLE) ? $cms->l->__($G_TITLE) : $cms->l->__($L_TITLE);
$cms->DATA['table_width'] = $PAGE_WIDTH ? $PAGE_WIDTH : PAGE_WIDTH;
// messages = array('msg' =>, 'class' => 'error/warning/...')
@@ -85,7 +89,7 @@
// debug data, if DEBUG flag is on, this data is print out
$cms->DEBUG_DATA['debug_error_msg'] = $cms->running_time();
$cms->DEBUG_DATA['DEBUG'] = $DEBUG_TMPL;
$cms->DEBUG_DATA['DEBUG'] = @$DEBUG_TMPL;
// create main data array
$cms->CONTENT_DATA = array_merge($cms->HEADER, $cms->DATA, $cms->DEBUG_DATA);

View File

@@ -1,14 +1,11 @@
<?
$DEBGU_ALL_OVERRIDE = 0; // set to 1 to debug on live/remote server locations
$ENABLE_ERROR_HANDLING = 0;
$DEBUG_ALL_OVERRIDE = 0; // set to 1 to debug on live/remote server locations
$DEBUG_ALL = 1;
$PRINT_ALL = 1;
$DB_DEBUG = 1;
if ($DEBUG_ALL)
error_reporting(E_ALL | E_STRICT | E_ERROR | E_WARNING | E_PARSE | E_COMPILE_ERROR);
define('USE_DATABASE', true);
require("config.inc");
require("header.inc");
$MASTER_TEMPLATE_NAME = 'main_body.tpl';
$TEMPLATE_NAME = 'smarty_test.tpl';

View File

@@ -19,7 +19,18 @@
DEFINE('DEFAULT_ENCODING', "UTF-8");
/************* PATHS *********************/
// path to document root
// ** NEW/BETTER DIR DECLARATIONS **
// path to original file (if symlink)
DEFINE('DIR', __DIR__."/");
// libs base path based on DIR
DEFINE('LIBDIR', DIR.'libs/');
// SMARTY path based on DIR
DEFINE('SMARTYDIR', DIR.'Smarty/');
// table arrays for Class Form
DEFINE('TABLEARRAYDIR', DIR.'table_arrays/');
// ** OLD DIR DECLARATIONS **
// path to document root of file called
DEFINE('ROOT', getcwd()."/");
// libs path
DEFINE('LIBS', "libs/");
@@ -238,16 +249,33 @@
$DB_DEBUG = 0;
$ENABLE_ERROR_HANDLING = 0;
}
else
{
$ECHO_ALL = 1;
$DEBUG_ALL = 1;
$PRINT_ALL = 1;
$DB_DEBUG = 1;
$ENABLE_ERROR_HANDLING = 1;
}
// any other global definitons here
// DEFINE('SOME_ID', <SOME VALUE>);
// function that will be called on top of each class include to load the class
function _spl_autoload($include_file)
{
// where to search for the files to include
$dirs = array (
LIBDIR,
SMARTYDIR,
TABLEARRAYDIR,
'',
LIBS,
SMARTY,
__DIR__.'/'.LIBS,
__DIR__.'/'.SMARTY
);
// try to find and load the class ifle
foreach ($dirs as $folder)
{
if (file_exists($folder.$include_file))
{
require_once($folder.$include_file);
return;
}
}
}
?>

View File

@@ -26,12 +26,7 @@
*********************************************************************/
// try to include file from LIBS path, or from normal path
$include_file = 'Class.DB.IO.inc';
foreach (array('', LIBS, __DIR__.'/') as $folder)
{
if (file_exists($folder.$include_file))
require_once($folder.$include_file);
}
_spl_autoload('Class.DB.IO.inc');
class AdminBackend extends db_io
{
@@ -72,7 +67,7 @@
public function __construct($db_config, $lang, $debug = 0, $db_debug = 0, $echo = 1, $print = 0)
{
// get the language sub class & init it
require_once(LIBS."Class.l10n.inc");
_spl_autoload('Class.l10n.inc');
$this->l = new l10n($lang);
@@ -144,8 +139,8 @@
$q .= "ip, user_agent, referer, script_name, query_string, server_name, http_host, http_accept, http_accept_charset, http_accept_encoding, session_id, ";
$q .= "action, action_id, action_yes, action_flag, action_menu, action_loaded, action_value, action_error) ";
$q .= "VALUES ";
$q .= "(".$_SESSION['EUID'].", NOW(), '".$this->db_escape_string($event)."', '".$data."', '".$data_binary."', '".$this->page_name."', ";
$q .= "'".$_SERVER["REMOTE_ADDR"]."', '".$this->db_escape_string($_SERVER['HTTP_USER_AGENT'])."', '".$this->db_escape_string($_SERVER['HTTP_REFERER'])."', '".$this->db_escape_string($_SERVER['SCRIPT_FILENAME'])."', '".$this->db_escape_string($_SERVER['QUERY_STRING'])."', '".$this->db_escape_string($_SERVER['SERVER_NAME'])."', '".$this->db_escape_string($_SERVER['HTTP_HOST'])."', '".$this->db_escape_string($_SERVER['HTTP_ACCEPT'])."', '".$this->db_escape_string($_SERVER['HTTP_ACCEPT_CHARSET'])."', '".$this->db_escape_string($_SERVER['HTTP_ACCEPT_ENCODING'])."', '".session_id()."', ";
$q .= "(".@$_SESSION['EUID'].", NOW(), '".$this->db_escape_string($event)."', '".$data."', '".$data_binary."', '".$this->page_name."', ";
$q .= "'".@$_SERVER["REMOTE_ADDR"]."', '".$this->db_escape_string(@$_SERVER['HTTP_USER_AGENT'])."', '".$this->db_escape_string(@$_SERVER['HTTP_REFERER'])."', '".$this->db_escape_string(@$_SERVER['SCRIPT_FILENAME'])."', '".$this->db_escape_string(@$_SERVER['QUERY_STRING'])."', '".$this->db_escape_string(@$_SERVER['SERVER_NAME'])."', '".$this->db_escape_string(@$_SERVER['HTTP_HOST'])."', '".$this->db_escape_string(@$_SERVER['HTTP_ACCEPT'])."', '".$this->db_escape_string(@$_SERVER['HTTP_ACCEPT_CHARSET'])."', '".$this->db_escape_string(@$_SERVER['HTTP_ACCEPT_ENCODING'])."', '".session_id()."', ";
$q .= "'".$this->db_escape_string($this->action)."', '".$this->db_escape_string($this->action_id)."', '".$this->db_escape_string($this->action_yes)."', '".$this->db_escape_string($this->action_flag)."', '".$this->db_escape_string($this->action_menu)."', '".$this->db_escape_string($this->action_loaded)."', '".$this->db_escape_string($this->action_value)."', '".$this->db_escape_string($this->action_error)."')";
$this->db_exec($q, 'edit_log_id');
}

View File

@@ -39,12 +39,7 @@
// put into separete function in this class)
// try to include file from LIBS path, or from normal path
$include_file = 'Class.DB.IO.inc';
foreach (array('', LIBS, __DIR__.'/') as $folder)
{
if (file_exists($folder.$include_file))
require_once($folder.$include_file);
}
_spl_autoload('Class.DB.IO.inc');
// subclass for one array handling
class db_array_io extends db_io

View File

@@ -241,12 +241,7 @@
*********************************************************************/
// try to include file from LIBS path, or from normal path
$include_file = 'Class.Basic.inc';
foreach (array('', LIBS, __DIR__.'/') as $folder)
{
if (file_exists($folder.$include_file))
require_once($folder.$include_file);
}
_spl_autoload('Class.Basic.inc');
class db_io extends basic
{
@@ -358,7 +353,7 @@
$this->db_debug = $GLOBALS['DB_DEBUG'];
// includes sub class for db type
include_once(LIBS.$this->db_type.'.inc');
_spl_autoload($this->db_type.'.inc');
$this->db_functions = new $this->db_type();
// connect to DB

View File

@@ -213,12 +213,7 @@
*********************************************************************/
// try to include file from LIBS path, or from normal path
$include_file = 'Class.DB.Array.IO.inc';
foreach (array('', LIBS, __DIR__.'/') as $folder)
{
if (file_exists($folder.$include_file))
require_once($folder.$include_file);
}
_spl_autoload('Class.DB.Array.IO.inc');
class form extends db_array_io
{
@@ -260,11 +255,11 @@
{
$this->my_page_name = $this->get_page_name(1);
// init the language class
require_once(LIBS."Class.l10n.inc");
_spl_autoload('Class.l10n.inc');
$this->l = new l10n($lang);
// load config array
// get table array definitions for current page name
include(TABLE_ARRAYS."array_".$this->my_page_name.".inc");
_spl_autoload('array_'.$this->my_page_name.'.inc');
$config_array = ${$this->my_page_name};

View File

@@ -60,12 +60,7 @@
*********************************************************************/
// try to include file from LIBS path, or from normal path
$include_file = 'Class.DB.IO.inc';
foreach (array('', LIBS, __DIR__.'/') as $folder)
{
if (file_exists($folder.$include_file))
require_once($folder.$include_file);
}
_spl_autoload('Class.DB.IO.inc');
class login extends db_io
{
@@ -118,7 +113,7 @@
$this->file_name_ext = '_login_'.date('Y-m-d').'.log';
// get the language sub class & init it
require_once(LIBS."Class.l10n.inc");
_spl_autoload('Class.l10n.inc');
$this->l = new l10n($lang);
// if we have a search path we need to set it, to use the correct DB to login

View File

@@ -11,12 +11,7 @@
// read in the Smarty class for definition
// use smarty BC for backwards compability
// try to include file from LIBS path, or from normal path
$include_file = 'SmartyBC.class.php';
foreach (array('', SMARTY, __DIR__.'/../'.SMARTY) as $folder)
{
if (file_exists($folder.$include_file))
require_once($folder.$include_file);
}
_spl_autoload('SmartyBC.class.php');
class SmartyML extends SmartyBC
{
@@ -26,7 +21,7 @@
public function __construct($lang)
{
SmartyBC::__construct();
require_once(LIBS."Class.l10n.inc");
_spl_autoload('Class.l10.inc');
$this->l10n = new l10n($lang);
// variable variable register
$this->register_modifier('getvar', array(&$this, 'get_template_vars'));

View File

@@ -26,12 +26,7 @@
*********************************************************************/
// try to include file from LIBS path, or from normal path
$include_file = 'Class.Basic.inc';
foreach (array('', LIBS, __DIR__.'/') as $folder)
{
if (file_exists($folder.$include_file))
require_once($folder.$include_file);
}
_spl_autoload('Class.Basic.inc');
class l10n extends basic
{
@@ -42,8 +37,8 @@
public function __construct($lang = '', $path = '')
{
require_once(LIBS.'streams.php');
require_once(LIBS.'gettext.php');
foreach (array('streas.php', 'gettext.php') as $include_file)
_spl_autoload($include_file);
if (!$lang)
$this->lang = 'en';
@@ -109,6 +104,4 @@
return $this->l10n->ngettext($single, $plural, $number);
}
}
//require(LIBS.'locale.php');
?>