blob: 922382ab7dbebe4dd920deac575a1e87c5d2a22c [file] [log] [blame]
adminb0dd10f2006-08-25 17:25:49 +00001<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
2/**
3 * Code Igniter
4 *
5 * An open source application development framework for PHP 4.3.2 or newer
6 *
7 * @package CodeIgniter
8 * @author Rick Ellis
9 * @copyright Copyright (c) 2006, pMachine, Inc.
admine334c472006-10-21 19:44:22 +000010 * @license http://www.codeignitor.com/user_guide/license.html
adminb0dd10f2006-08-25 17:25:49 +000011 * @link http://www.codeigniter.com
12 * @since Version 1.0
13 * @filesource
14 */
admine334c472006-10-21 19:44:22 +000015
adminb0dd10f2006-08-25 17:25:49 +000016// ------------------------------------------------------------------------
17
18/**
19 * Code Igniter Application Controller Class
20 *
admine334c472006-10-21 19:44:22 +000021 * This class object is the super class the every library in
adminb0dd10f2006-08-25 17:25:49 +000022 * Code Igniter will be assigned to.
23 *
24 * @package CodeIgniter
25 * @subpackage Libraries
26 * @category Libraries
27 * @author Rick Ellis
28 * @link http://www.codeigniter.com/user_guide/general/controllers.html
29 */
30class Controller extends CI_Base {
31
adminb0dd10f2006-08-25 17:25:49 +000032 var $_ci_scaffolding = FALSE;
33 var $_ci_scaff_table = FALSE;
34
35 /**
36 * Constructor
37 *
admin8f0a8f62006-10-07 01:17:25 +000038 * Calls the initialize() function
adminb0dd10f2006-08-25 17:25:49 +000039 */
40 function Controller()
41 {
42 parent::CI_Base();
admin8f0a8f62006-10-07 01:17:25 +000043 $this->_ci_initialize();
adminb0dd10f2006-08-25 17:25:49 +000044 log_message('debug', "Controller Class Initialized");
45 }
admine334c472006-10-21 19:44:22 +000046
adminb0dd10f2006-08-25 17:25:49 +000047 // --------------------------------------------------------------------
48
49 /**
admin8f0a8f62006-10-07 01:17:25 +000050 * Initialize
adminb0dd10f2006-08-25 17:25:49 +000051 *
admin8f0a8f62006-10-07 01:17:25 +000052 * Assigns all the bases classes loaded by the front controller to
53 * variables in this class. Also calls the autoload routine.
adminb0dd10f2006-08-25 17:25:49 +000054 *
55 * @access private
56 * @return void
admine334c472006-10-21 19:44:22 +000057 */
admin8f0a8f62006-10-07 01:17:25 +000058 function _ci_initialize()
adminb0dd10f2006-08-25 17:25:49 +000059 {
admin8f0a8f62006-10-07 01:17:25 +000060 // Assign all the class objects that were instantiated by the
admine334c472006-10-21 19:44:22 +000061 // front controller to local class variables so that CI can be
admin8f0a8f62006-10-07 01:17:25 +000062 // run as one big super object.
adminb3ab70b2006-10-07 03:07:29 +000063 $classes = array(
admine334c472006-10-21 19:44:22 +000064 'config' => 'Config',
65 'input' => 'Input',
66 'benchmark' => 'Benchmark',
67 'uri' => 'URI',
adminb3ab70b2006-10-07 03:07:29 +000068 'output' => 'Output',
69 'lang' => 'Language'
70 );
71
72 foreach ($classes as $var => $class)
adminb0dd10f2006-08-25 17:25:49 +000073 {
admin7099a582006-10-10 17:47:59 +000074 $this->$var =& load_class($class);
adminb0dd10f2006-08-25 17:25:49 +000075 }
admin40037182006-10-11 19:16:58 +000076
admine334c472006-10-21 19:44:22 +000077 // In PHP 5 the Controller class is run as a discreet
adminb3ab70b2006-10-07 03:07:29 +000078 // class. In PHP 4 it extends the Controller
adminb0dd10f2006-08-25 17:25:49 +000079 if (floor(phpversion()) >= 5)
80 {
81 $this->load = new CI_Loader();
admincf493902006-10-10 07:12:31 +000082 $this->load->_ci_autoloader();
adminb0dd10f2006-08-25 17:25:49 +000083 }
admincf493902006-10-10 07:12:31 +000084 else
adminb0dd10f2006-08-25 17:25:49 +000085 {
admincf493902006-10-10 07:12:31 +000086 $this->_ci_autoloader();
87 }
adminb0dd10f2006-08-25 17:25:49 +000088 }
admin0aef2222006-10-12 18:00:22 +000089
adminb3ab70b2006-10-07 03:07:29 +000090 // --------------------------------------------------------------------
91
92 /**
93 * Run Scaffolding
94 *
95 * @access private
admin88a8ad12006-10-07 03:16:32 +000096 * @return void
adminb3ab70b2006-10-07 03:07:29 +000097 */
admine334c472006-10-21 19:44:22 +000098 function _ci_scaffolding()
99 {
adminb3ab70b2006-10-07 03:07:29 +0000100 if ($this->_ci_scaffolding === FALSE OR $this->_ci_scaff_table === FALSE)
101 {
102 show_404('Scaffolding unavailable');
103 }
104
105 $method = ( ! in_array($this->uri->segment(3), array('add', 'insert', 'edit', 'update', 'view', 'delete', 'do_delete'), TRUE)) ? 'view' : $this->uri->segment(3);
106
107 require_once(BASEPATH.'scaffolding/Scaffolding'.EXT);
108 $scaff = new Scaffolding($this->_ci_scaff_table);
109 $scaff->$method();
admine334c472006-10-21 19:44:22 +0000110 }
111
adminb0dd10f2006-08-25 17:25:49 +0000112
113}
114// END _Controller class
115?>