1+ <?php
2+ namespace Ajax \php \ci ;
3+
4+ class JsUtils extends \Ajax \JsUtils{
5+ protected $ ci ;
6+ protected $ _my_controller_paths = array ();
7+ protected $ _my_controllers = array ();
8+
9+ public function __construct ($ params =array (),$ injected =NULL ){
10+ parent ::__construct ($ params ,$ injected );
11+ $ this ->_my_controller_paths = array (APPPATH );
12+ }
13+ public function getUrl ($ url ){
14+ return site_url ($ url );
15+ }
16+
17+ public function getCi (){
18+ if (isset ($ this ->ci )===false ){
19+ $ this ->ci =& get_instance ();
20+ $ this ->ci ->load ->helper ('url ' );
21+ }
22+ return $ this ->ci ;
23+ }
24+
25+ public function addViewElement ($ identifier ,$ content ,&$ view ){
26+ if (\array_key_exists ("q " , $ view )===false ){
27+ $ view ["q " ]=array ();
28+ }
29+ $ view ["q " ][$ identifier ]=$ content ;
30+ }
31+
32+ public function createScriptVariable (&$ view ,$ view_var , $ output ){
33+ $ view [$ view_var ]=$ output ;
34+ }
35+
36+ public function forward ($ initialControllerInstance ,$ controllerName ,$ actionName ,$ params =NULL ){
37+ $ ci =$ this ->getCi ();
38+ $ controllerName =strtolower ($ controllerName );
39+ $ this ->controller ($ controllerName );
40+ \ob_start ();
41+ $ ci ->{$ controllerName }->{$ actionName }($ params );
42+ $ result =ob_get_contents ();
43+ \ob_end_clean ();
44+ return $ result ;
45+ }
46+
47+ public function renderContent ($ initialControllerInstance ,$ viewName , $ params =NULL ) {
48+ return $ initialControllerInstance ->load ->view ($ viewName , $ params , true );
49+ }
50+
51+ public function fromDispatcher ($ dispatcher ){
52+ return array_values ($ dispatcher ->uri ->segment_array ());
53+ }
54+
55+ public function controller ($ controller , $ name = '' , $ db_conn = FALSE ){
56+ if (is_array ($ controller )){
57+ foreach ($ controller as $ babe ){
58+ $ this ->controller ($ babe );
59+ }
60+ return ;
61+ }
62+ if ($ controller == '' ){
63+ return ;
64+ }
65+ $ path = '' ;
66+ // Is the controller in a sub-folder? If so, parse out the filename and path.
67+ if (($ last_slash = strrpos ($ controller , '/ ' )) !== FALSE ){
68+ // The path is in front of the last slash
69+ $ path = substr ($ controller , 0 , $ last_slash + 1 );
70+ // And the controller name behind it
71+ $ controller = substr ($ controller , $ last_slash + 1 );
72+ }
73+
74+ if ($ name == '' ){
75+ $ name = $ controller ;
76+ }
77+
78+ if (in_array ($ name , $ this ->_my_controllers , TRUE )){
79+ return ;
80+ }
81+
82+ $ CI =$ this ->getCi ();
83+ if (isset ($ CI ->$ name )){
84+ show_error ('The controller name you are loading is the name of a resource that is already being used: ' .$ name );
85+ }
86+ $ controller = strtolower ($ controller );
87+ foreach ($ this ->_my_controller_paths as $ mod_path ){
88+ if ( ! file_exists ($ mod_path .'controllers/ ' .$ path .$ controller .'.php ' )){
89+ continue ;
90+ }
91+ if ($ db_conn !== FALSE AND ! class_exists ('CI_DB ' )){
92+ if ($ db_conn === TRUE ){
93+ $ db_conn = '' ;
94+ }
95+ $ CI ->load ->database ($ db_conn , FALSE , TRUE );
96+ }
97+ if ( ! class_exists ('CI_Controller ' )){
98+ load_class ('Controller ' , 'core ' );
99+ }
100+ require_once ($ mod_path .'controllers/ ' .$ path .$ controller .'.php ' );
101+ $ controller = ucfirst ($ controller );
102+ $ CI ->$ name = new $ controller ();
103+
104+ $ this ->_my_controllers [] = $ name ;
105+ return ;
106+ }
107+ show_error ('Unable to locate the controller you have specified: ' .$ controller );
108+ }
109+ }
0 commit comments