diff options
author | admin <devnull@localhost> | 2006-08-25 19:25:49 +0200 |
---|---|---|
committer | admin <devnull@localhost> | 2006-08-25 19:25:49 +0200 |
commit | b0dd10f8171945e0c1f3527dd1e9d18b043e01a7 (patch) | |
tree | c3583ba09e72217683c4304f4690df6ce39ba731 /system/codeigniter |
Initial Import
Diffstat (limited to 'system/codeigniter')
-rw-r--r-- | system/codeigniter/Base4.php | 58 | ||||
-rw-r--r-- | system/codeigniter/Base5.php | 62 | ||||
-rw-r--r-- | system/codeigniter/CodeIgniter.php | 256 | ||||
-rw-r--r-- | system/codeigniter/Common.php | 238 | ||||
-rw-r--r-- | system/codeigniter/index.html | 15 |
5 files changed, 629 insertions, 0 deletions
diff --git a/system/codeigniter/Base4.php b/system/codeigniter/Base4.php new file mode 100644 index 000000000..5d945c26a --- /dev/null +++ b/system/codeigniter/Base4.php @@ -0,0 +1,58 @@ +<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); +/** + * Code Igniter + * + * An open source application development framework for PHP 4.3.2 or newer + * + * @package CodeIgniter + * @author Rick Ellis + * @copyright Copyright (c) 2006, pMachine, Inc. + * @license http://www.codeignitor.com/user_guide/license.html + * @link http://www.codeigniter.com + * @since Version 1.3 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CI_BASE - For PHP 4 + * + * This file is used only when Code Igniter is being run under PHP 4. + * Since PHP 4 has such poor object handling we had to come up with + * a hack to resolve some scoping problems. PHP 5 doesn't suffer from + * this problem so we load one of two files based on the version of + * PHP being run. + * + * @package CodeIgniter + * @subpackage codeigniter + * @category front-controller + * @author Rick Ellis + * @link http://www.codeigniter.com/user_guide/ + */ + class CI_Base extends CI_Loader { + + function CI_Base() + { + global $OBJ; + parent::CI_Loader(); + $this->load =& $this; + $OBJ = $this->load; + } +} + +function &get_instance() +{ + global $OBJ, $CI; + + if (is_object($CI)) + { + return $CI; + } + else + { + return $OBJ->load; + } +} + +?>
\ No newline at end of file diff --git a/system/codeigniter/Base5.php b/system/codeigniter/Base5.php new file mode 100644 index 000000000..ef3fc67f4 --- /dev/null +++ b/system/codeigniter/Base5.php @@ -0,0 +1,62 @@ +<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); +/** + * Code Igniter + * + * An open source application development framework for PHP 4.3.2 or newer + * + * @package CodeIgniter + * @author Rick Ellis + * @copyright Copyright (c) 2006, pMachine, Inc. + * @license http://www.codeignitor.com/user_guide/license.html + * @link http://www.codeigniter.com + * @since Version 1.3 + * @filesource + */ + + +// ------------------------------------------------------------------------ + +/** + * CI_BASE - For PHP 5 + * + * This file contains some code used only when Code Igniter is being + * run under PHP 5. It allows us to manage the CI super object more + * gracefully than what is possible with PHP 4. + * + * @package CodeIgniter + * @subpackage codeigniter + * @category front-controller + * @author Rick Ellis + * @link http://www.codeigniter.com/user_guide/ + */ + +class CI_Base { + + public function CI_Base() + { + $instance =& _load_class('Instance'); + $instance->set_instance($this); + } +} + +class Instance { + public static $instance; + + public function set_instance(&$object) + { + self::$instance =& $object; + } + + public function &get_instance() + { + return self::$instance; + } +} + +function &get_instance() +{ + $instance =& _load_class('Instance'); + return $instance->get_instance(); +} + +?>
\ No newline at end of file diff --git a/system/codeigniter/CodeIgniter.php b/system/codeigniter/CodeIgniter.php new file mode 100644 index 000000000..aef7618e9 --- /dev/null +++ b/system/codeigniter/CodeIgniter.php @@ -0,0 +1,256 @@ +<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); +/** + * Code Igniter + * + * An open source application development framework for PHP 4.3.2 or newer + * + * @package CodeIgniter + * @author Rick Ellis + * @copyright Copyright (c) 2006, pMachine, Inc. + * @license http://www.codeignitor.com/user_guide/license.html + * @link http://www.codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * System Front Controller + * + * Loads the base classes and executes the request. + * + * @package CodeIgniter + * @subpackage codeigniter + * @category Front-controller + * @author Rick Ellis + * @link http://www.codeigniter.com/user_guide/ + */ + +define('APPVER', '1.4'); + +/* + * ------------------------------------------------------ + * Load the global functions + * ------------------------------------------------------ + */ +require(BASEPATH.'codeigniter/Common'.EXT); + +/* + * ------------------------------------------------------ + * Define a custom error handler so we can log errors + * ------------------------------------------------------ + */ +set_error_handler('_exception_handler'); +set_magic_quotes_runtime(0); // Kill magic quotes + +/* + * ------------------------------------------------------ + * Start the timer... tick tock tick tock... + * ------------------------------------------------------ + */ + +$BM =& _load_class('CI_Benchmark'); +$BM->mark('code_igniter_start'); + +/* + * ------------------------------------------------------ + * Instantiate the hooks classe + * ------------------------------------------------------ + */ + +$EXT =& _load_class('CI_Hooks'); + +/* + * ------------------------------------------------------ + * Is there a "pre_system" hook? + * ------------------------------------------------------ + */ +if ($EXT->_hook_exists('pre_system')) +{ + $EXT->_call_hook('pre_system'); +} + +/* + * ------------------------------------------------------ + * Instantiate the base classes + * ------------------------------------------------------ + */ + +$CFG =& _load_class('CI_Config'); +$RTR =& _load_class('CI_Router'); +$OUT =& _load_class('CI_Output'); + +/* + * ------------------------------------------------------ + * Is there a valid cache file? If so, we're done... + * ------------------------------------------------------ + */ + +if ($EXT->_hook_exists('cache_override')) +{ + $EXT->_call_hook('cache_override'); +} +else +{ + if ($OUT->_display_cache() == TRUE) + { + exit; + } +} + +/* + * ------------------------------------------------------ + * Does the requested controller exist? + * ------------------------------------------------------ + */ +if ( ! file_exists(APPPATH.'controllers/'.$RTR->fetch_class().EXT)) +{ + show_404(); +} + +/* + * ------------------------------------------------------ + * Load the remaining base classes + * ------------------------------------------------------ + */ + +$IN =& _load_class('CI_Input'); +$URI =& _load_class('CI_URI'); +$LANG =& _load_class('CI_Language'); + +/* + * ------------------------------------------------------ + * Load the app controller and local controller + * ------------------------------------------------------ + * + * Note: Due to the poor object handling in PHP 4 we'll + * contditionally load different versions of the base + * class. Retaining PHP 4 compatibility requires a bit of a hack. + * + * Note: The Loader class needs to be included first + * + */ + + +_load_class('CI_Loader'); + +if (floor(phpversion()) < 5) +{ + require(BASEPATH.'codeigniter/Base4'.EXT); +} +else +{ + require(BASEPATH.'codeigniter/Base5'.EXT); +} + +_load_class('CI_Controller'); + +require(APPPATH.'controllers/'.$RTR->fetch_class().EXT); + +/* + * ------------------------------------------------------ + * Security check + * ------------------------------------------------------ + * + * None of the functions in the app controller or the + * loader class can be called via the URI, nor can + * controller functions that begin with an underscore + */ +$class = $RTR->fetch_class(); +$method = $RTR->fetch_method(); + +if ( ! class_exists($class) + OR $method == 'controller' + OR substr($method, 0, 1) == '_' + OR in_array($method, get_class_methods('Controller')) + ) +{ + show_404(); +} + +/* + * ------------------------------------------------------ + * Is there a "pre_controller" hook? + * ------------------------------------------------------ + */ +if ($EXT->_hook_exists('pre_controller')) +{ + $EXT->_call_hook('pre_controller'); +} + +/* + * ------------------------------------------------------ + * Instantiate the controller and call requested method + * ------------------------------------------------------ + */ +$CI = new $class(); + +if ($RTR->scaffolding_request === TRUE) +{ + if ($EXT->_hook_exists('scaffolding_override')) + { + $EXT->_call_hook('scaffolding_override'); + } + else + { + $CI->_ci_scaffolding(); + } +} +else +{ + if ( ! method_exists($CI, $method)) + { + show_404(); + } + + $CI->$method(); +} + +/* + * ------------------------------------------------------ + * Is there a "post_controller" hook? + * ------------------------------------------------------ + */ +if ($EXT->_hook_exists('post_controller')) +{ + $EXT->_call_hook('post_controller'); +} + +/* + * ------------------------------------------------------ + * Send the final rendered output to the browser + * ------------------------------------------------------ + */ + +if ($EXT->_hook_exists('display_override')) +{ + $EXT->_call_hook('display_override'); +} +else +{ + $OUT->_display(); +} + +/* + * ------------------------------------------------------ + * Is there a "post_system" hook? + * ------------------------------------------------------ + */ +if ($EXT->_hook_exists('post_system')) +{ + $EXT->_call_hook('post_system'); +} + +/* + * ------------------------------------------------------ + * Close the DB connection of one exists + * ------------------------------------------------------ + */ +if ($CI->_ci_is_loaded('db')) +{ + $CI->db->close(); +} + + +?>
\ No newline at end of file diff --git a/system/codeigniter/Common.php b/system/codeigniter/Common.php new file mode 100644 index 000000000..2ec1c3d38 --- /dev/null +++ b/system/codeigniter/Common.php @@ -0,0 +1,238 @@ +<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); +/** + * Code Igniter + * + * An open source application development framework for PHP 4.3.2 or newer + * + * @package CodeIgniter + * @author Rick Ellis + * @copyright Copyright (c) 2006, pMachine, Inc. + * @license http://www.codeignitor.com/user_guide/license.html + * @link http://www.codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Common Functions + * + * Loads the base classes and executes the request. + * + * @package CodeIgniter + * @subpackage codeigniter + * @category Common Functions + * @author Rick Ellis + * @link http://www.codeigniter.com/user_guide/ + */ + +// ------------------------------------------------------------------------ + +/** +* Class registry +* +* +* @access public +* @return object +*/ +function &_load_class($class, $instantiate = TRUE) +{ + static $objects; + + if ( ! isset($objects[$class])) + { + if (FALSE !== strpos($class, 'CI_')) + { + if (file_exists(APPPATH.'libraries/'.str_replace('CI_', '', $class).EXT)) + { + require(APPPATH.'libraries/'.str_replace('CI_', '', $class).EXT); + } + else + { + require(BASEPATH.'libraries/'.str_replace('CI_', '', $class).EXT); + } + } + + if ($instantiate == TRUE) + { + if ($class == 'CI_Controller') + $class = 'Controller'; + + $objects[$class] =& new $class(); + } + else + { + $objects[$class] = TRUE; + } + } + + + return $objects[$class]; +} + +/** +* Loads the main config.php file +* +* +* @access private +* @return array +*/ +function &_get_config() +{ + static $conf; + + if ( ! isset($conf)) + { + require(APPPATH.'config/config'.EXT); + + if ( ! isset($config) OR ! is_array($config)) + { + show_error('Your config file does not appear to be formatted correctly.'); + } + + $conf[0] =& $config; + } + return $conf[0]; +} + + +/** +* Error Handler +* +* This function lets us invoke the exception class and +* display errors using the standard error template located +* in application/errors/errors.php +* This function will send the error page directly to the +* browser and exit. +* +* @access public +* @return void +*/ +function show_error($message) +{ + if ( ! class_exists('CI_Exceptions')) + { + include_once(BASEPATH.'libraries/Exceptions.php'); + } + + $error = new CI_Exceptions(); + echo $error->show_error('An Error Was Encountered', $message); + exit; +} + + +/** +* 404 Page Handler +* +* This function is similar to the show_error() function above +* However, instead of the standard error template it displays +* 404 errors. +* +* @access public +* @return void +*/ +function show_404($page = '') +{ + if ( ! class_exists('CI_Exceptions')) + { + include_once(BASEPATH.'libraries/Exceptions.php'); + } + + $error = new CI_Exceptions(); + $error->show_404($page); + exit; +} + + +/** +* Error Logging Interface +* +* We use this as a simple mechanism to access the logging +* class and send messages to be logged. +* +* @access public +* @return void +*/ +function log_message($level = 2, $message, $php_error = FALSE) +{ + $config =& _get_config(); + if ($config['log_errors'] === FALSE) + { + return; + } + + if ( ! class_exists('CI_Log')) + { + include_once(BASEPATH.'libraries/Log.php'); + } + + if ( ! isset($LOG)) + { + $LOG = new CI_Log( + $config['log_path'], + $config['log_threshold'], + $config['log_date_format'] + ); + } + + $LOG->write_log($level, $message, $php_error); +} + + +/** +* Exception Handler +* +* This is the custom exception handler we defined at the +* top of this file. The main reason we use this is permit +* PHP errors to be logged in our own log files since we may +* not have access to server logs. Since this function +* effectively intercepts PHP errors, however, we also need +* to display errors based on the current error_reporting level. +* We do that with the use of a PHP error template. +* +* @access private +* @return void +*/ +function _exception_handler($severity, $message, $filepath, $line) +{ + // We don't bother with "strict" notices since they will fill up + // the log file with information that isn't normally very + // helpful. For example, if you are running PHP 5 and you + // use version 4 style class functions (without prefixes + // like "public", "private", etc.) you'll get notices telling + // you that these have been deprecated. + + if ($severity == E_STRICT) + { + return; + } + + // Send the PHP error to the log file... + if ( ! class_exists('CI_Exceptions')) + { + include_once(BASEPATH.'libraries/Exceptions.php'); + } + $error = new CI_Exceptions(); + + // Should we display the error? + // We'll get the current error_reporting level and add its bits + // with the severity bits to find out. + + if (($severity & error_reporting()) == $severity) + { + $error->show_php_error($severity, $message, $filepath, $line); + } + + // Should we log the error? No? We're done... + $config =& _get_config(); + if ($config['log_errors'] === FALSE) + { + return; + } + + $error->log_exception($severity, $message, $filepath, $line); +} + + +?>
\ No newline at end of file diff --git a/system/codeigniter/index.html b/system/codeigniter/index.html new file mode 100644 index 000000000..5a1f5d6ae --- /dev/null +++ b/system/codeigniter/index.html @@ -0,0 +1,15 @@ +<html>
+
+<head>
+
+<title>403 Forbidden</title>
+
+</head>
+
+<body bgcolor='#ffffff'>
+
+<p>Directory access is forbidden.<p>
+
+</body>
+
+</html>
\ No newline at end of file |