%PDF- %PDF-
Direktori : /home/lightco1/upgrade.lightco.com.au/libraries/cegcore/ |
Current File : /home/lightco1/upgrade.lightco.com.au/libraries/cegcore/gcloader.php |
<?php /** * ChronoCMS version 1.0 * Copyright (c) 2012 ChronoCMS.com, All rights reserved. * Author: (ChronoCMS.com Team) * license: Please read LICENSE.txt * Visit http://www.ChronoCMS.com for regular updates and information. **/ //global namespace for the global helper function pr() namespace { /* @copyright:ChronoEngine.com @license:GPLv2 */defined('_JEXEC') or die('Restricted access'); defined("GCORE_SITE") or die; //multi purpose function if(!function_exists('pr')){ function pr($array = array(), $return = false){ if(is_array($array)){ array_walk_recursive($array, function(&$v){ if(is_string($v)){ $v = htmlspecialchars($v); } }); }else if(is_string($array)){ $array = htmlspecialchars($array); } if($return){ return '<pre style="word-wrap:break-word; white-space:pre-wrap;">'.print_r($array, $return).'</pre>'; }else{ echo '<pre style="word-wrap:break-word; white-space:pre-wrap;">'; print_r($array, $return); echo '</pre>'; } } } //multi purpose function function prf($array = array(), $file = ''){ $file = empty($file) ? dirname(__FILE__).DIRECTORY_SEPARATOR.'tmp'.DIRECTORY_SEPARATOR.'debug.html' : $file; //add time file_put_contents($file, pr(date("d-m-Y H:i:s", time()), true)."\n\n", FILE_APPEND); file_put_contents($file, pr($array, true)."\n\n", FILE_APPEND); } function l_($text){ return \GCore\Libs\Lang::_($text); } if(!function_exists('r_')){ function r_($url){ return \GCore\Libs\Route::_($url); } } if(get_magic_quotes_gpc()){ function stripslashes_gpc(&$value){ $value = stripslashes($value); } array_walk_recursive($_GET, 'stripslashes_gpc'); array_walk_recursive($_POST, 'stripslashes_gpc'); array_walk_recursive($_COOKIE, 'stripslashes_gpc'); array_walk_recursive($_REQUEST, 'stripslashes_gpc'); } } //GCore namespace for the loader namespace GCore{ if(!defined('DS')){ define('DS', DIRECTORY_SEPARATOR); } class C { static $GCORE_FRONT_PATH = ''; static $GCORE_FRONT_URL = ''; static $GCORE_ADMIN_PATH = ''; static $GCORE_ADMIN_URL = ''; static $GSITE_PATH = ''; static $GSITE_URL = ''; static $GSITE_PLATFORM = ''; static $GCORE_ROOT_PATH = ''; static $GCORE_ROOT_URL = ''; static $EXTENSIONS_PATHS = array(); static $EXTENSIONS_URLS = array(); static $EXTENSIONS_NAMES = array(); public static function get($key, $default = null){ if(isset(self::$$key)){ return self::$$key; }else{ return $default; } } public static function set($key, $value){ if(isset(self::$$key)){ self::$$key = $value; } } public static function ext_path($ext, $area = 'admin'){ $path = ''; if($area == 'admin'){ $path .= self::get('GCORE_ADMIN_PATH'); }else{ $path .= self::get('GCORE_FRONT_PATH'); } $path .= 'extensions'.DS.$ext.DS; $path = self::fix_path($path); return $path; } public static function ext_url($ext, $area = 'admin'){ $path = ''; if($area == 'admin'){ $path .= self::get('GCORE_ADMIN_URL'); }else{ $path .= self::get('GCORE_FRONT_URL'); } $path .= 'extensions/'.$ext.'/'; $path = self::fix_urls($path); return $path; } public static function fix_path($path){ $extensions_paths = self::get('EXTENSIONS_PATHS', array()); $extensions_names = self::get('EXTENSIONS_NAMES', array()); if(!empty($extensions_paths) AND !empty($extensions_names)){ foreach($extensions_paths as $int_path => $ext_path){ foreach($extensions_names as $int_name => $ext_name){ $path = str_replace($int_path.$int_name, $ext_path.$ext_name.DS.$int_name, $path); } } } return $path; } public static function fix_urls($output){ $extensions_urls = self::get('EXTENSIONS_URLS', array()); $extensions_names = self::get('EXTENSIONS_NAMES', array()); if(!empty($extensions_urls) AND !empty($extensions_names)){ foreach($extensions_urls as $int_url => $ext_url){ foreach($extensions_names as $int_name => $ext_name){ $output = str_replace($int_url.$int_name, $ext_url.$ext_name.'/'.$int_name, $output); } } } return $output; } } class Loader { static $classname = ""; static $filepath = ""; static $memory_usage = 0; static $start_time = 0; static public function register($name){ if(empty(self::$start_time)){ self::$start_time = microtime(true); self::$memory_usage = memory_get_usage(); } if(strlen(trim($name)) > 0){ $dirs = explode("\\", $name); $dirs = array_values(array_filter($dirs)); //if the class doesn't belong to the GCore then don't try to auto load it if($dirs[0] !== "GCore"){ return false; } //build the include file path $strings = array(); foreach($dirs as $k => $dir){ if($dir === "GCore"){ //root dir $strings[] = dirname(__FILE__); continue; } if($k == (count($dirs) - 1)){ //last dir (file name) $strings[] = strtolower(preg_replace('/([a-z]|[0-9])([A-Z])/', '$1_$2', $dir)).".php"; continue; } if(empty($dirs[$k])){ //empty value continue; } //otherwise, uncamilize the namespace name to get the directory name $strings[] = strtolower(preg_replace('/([a-z]|[0-9])([A-Z])/', '$1_$2', $dir)); } //load the file if exists $file = implode(DIRECTORY_SEPARATOR, $strings); //self::$filepath = $file; //$gcore_file = $file; //$file = str_replace('__GCORE__', dirname(__FILE__), $gcore_file); $file = \GCore\C::fix_path($file); //pr($file); if(file_exists($file) AND substr($file, -4, 4) == ".php"){ require_once($file); if(class_exists($name)){ return true; }else{ self::$filepath = $file; self::$classname = $name; } } /*if(Libs\Base::getConfig('debug', 0)){ self::debug(); }*/ } } static public function debug(){ if(!empty(self::$classname)) echo nl2br("\nClass name: \"".self::$classname."\" could NOT be found, additionally, the file below does NOT exist: \n".self::$filepath); } } spl_autoload_register(__NAMESPACE__ .'\Loader::register'); }