summaryrefslogtreecommitdiffstats
path: root/system/codeigniter
diff options
context:
space:
mode:
authoradmin <devnull@localhost>2006-08-25 19:25:49 +0200
committeradmin <devnull@localhost>2006-08-25 19:25:49 +0200
commitb0dd10f8171945e0c1f3527dd1e9d18b043e01a7 (patch)
treec3583ba09e72217683c4304f4690df6ce39ba731 /system/codeigniter
Initial Import
Diffstat (limited to 'system/codeigniter')
-rw-r--r--system/codeigniter/Base4.php58
-rw-r--r--system/codeigniter/Base5.php62
-rw-r--r--system/codeigniter/CodeIgniter.php256
-rw-r--r--system/codeigniter/Common.php238
-rw-r--r--system/codeigniter/index.html15
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