blob: b1feee86cbc453c08593741e873685dc48386cea [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
admin34f7f2d2006-10-10 08:06:42 +000035
36
adminb0dd10f2006-08-25 17:25:49 +000037 /**
38 * Constructor
39 *
admin8f0a8f62006-10-07 01:17:25 +000040 * Calls the initialize() function
adminb0dd10f2006-08-25 17:25:49 +000041 */
42 function Controller()
43 {
44 parent::CI_Base();
admin8f0a8f62006-10-07 01:17:25 +000045 $this->_ci_initialize();
adminb0dd10f2006-08-25 17:25:49 +000046 log_message('debug', "Controller Class Initialized");
47 }
admine334c472006-10-21 19:44:22 +000048
adminb0dd10f2006-08-25 17:25:49 +000049 // --------------------------------------------------------------------
50
51 /**
admin8f0a8f62006-10-07 01:17:25 +000052 * Initialize
adminb0dd10f2006-08-25 17:25:49 +000053 *
admin8f0a8f62006-10-07 01:17:25 +000054 * Assigns all the bases classes loaded by the front controller to
55 * variables in this class. Also calls the autoload routine.
adminb0dd10f2006-08-25 17:25:49 +000056 *
57 * @access private
58 * @return void
admine334c472006-10-21 19:44:22 +000059 */
admin8f0a8f62006-10-07 01:17:25 +000060 function _ci_initialize()
adminb0dd10f2006-08-25 17:25:49 +000061 {
admin8f0a8f62006-10-07 01:17:25 +000062 // Assign all the class objects that were instantiated by the
admine334c472006-10-21 19:44:22 +000063 // front controller to local class variables so that CI can be
admin8f0a8f62006-10-07 01:17:25 +000064 // run as one big super object.
adminb3ab70b2006-10-07 03:07:29 +000065 $classes = array(
admine334c472006-10-21 19:44:22 +000066 'config' => 'Config',
67 'input' => 'Input',
68 'benchmark' => 'Benchmark',
69 'uri' => 'URI',
adminb3ab70b2006-10-07 03:07:29 +000070 'output' => 'Output',
71 'lang' => 'Language'
72 );
73
74 foreach ($classes as $var => $class)
adminb0dd10f2006-08-25 17:25:49 +000075 {
admin7099a582006-10-10 17:47:59 +000076 $this->$var =& load_class($class);
adminb0dd10f2006-08-25 17:25:49 +000077 }
admin40037182006-10-11 19:16:58 +000078
admine334c472006-10-21 19:44:22 +000079 // In PHP 5 the Controller class is run as a discreet
adminb3ab70b2006-10-07 03:07:29 +000080 // class. In PHP 4 it extends the Controller
adminb0dd10f2006-08-25 17:25:49 +000081 if (floor(phpversion()) >= 5)
82 {
83 $this->load = new CI_Loader();
admincf493902006-10-10 07:12:31 +000084 $this->load->_ci_autoloader();
adminb0dd10f2006-08-25 17:25:49 +000085 }
admincf493902006-10-10 07:12:31 +000086 else
adminb0dd10f2006-08-25 17:25:49 +000087 {
admincf493902006-10-10 07:12:31 +000088 $this->_ci_autoloader();
89 }
adminb0dd10f2006-08-25 17:25:49 +000090 }
admin0aef2222006-10-12 18:00:22 +000091
adminb3ab70b2006-10-07 03:07:29 +000092 // --------------------------------------------------------------------
93
94 /**
95 * Run Scaffolding
96 *
97 * @access private
admin88a8ad12006-10-07 03:16:32 +000098 * @return void
adminb3ab70b2006-10-07 03:07:29 +000099 */
admine334c472006-10-21 19:44:22 +0000100 function _ci_scaffolding()
101 {
adminb3ab70b2006-10-07 03:07:29 +0000102 if ($this->_ci_scaffolding === FALSE OR $this->_ci_scaff_table === FALSE)
103 {
104 show_404('Scaffolding unavailable');
105 }
106
107 $method = ( ! in_array($this->uri->segment(3), array('add', 'insert', 'edit', 'update', 'view', 'delete', 'do_delete'), TRUE)) ? 'view' : $this->uri->segment(3);
108
109 require_once(BASEPATH.'scaffolding/Scaffolding'.EXT);
110 $scaff = new Scaffolding($this->_ci_scaff_table);
111 $scaff->$method();
admine334c472006-10-21 19:44:22 +0000112 }
113
adminb0dd10f2006-08-25 17:25:49 +0000114
115}
116// END _Controller class
117?>