44 * FilePath: app/route.php
55*/
66
7- $ controller_default_name = 'controller_ ' .$ _CONFIG ['route_controller_default ' ];
8-
9- $ loaded = 0 ;
10-
11- foreach ($ controllers as $ val )
7+ // determine the routing mode
8+ // seo enhanced (/welcome)
9+ if ($ _CONFIG ['route_enhanced_mode ' ] === true )
1210{
13- if ($ i != 0 && $ i != 1 && $ val != $ controller_default_name .'.php ' )
14- {
15- $ name = array ();
16- $ name = explode (". " , $ val );
17- $ name_before = $ name [0 ];
18- $ name = 'controller_ ' .$ name [0 ];
19- if ($ _CONFIG ['route_enhanced_mode ' ] === true )
20- {
21- $ request = $ _SERVER ['HTTP_HOST ' ].$ _SERVER ['REQUEST_URI ' ];
22- $ request = strip_tags (addslashes (str_replace ($ _CONFIG ['url ' ], "" , $ request )));
23- $ params = explode ("/ " , $ request );
24- foreach ($ params as $ param ) {
25- if (!empty ($ param ) && !ctype_alnum (str_replace ([ "_ " ,"- " ," " ,"& " ,"? " ,"/ " ,"= " ], "" , $ param )))
26- die ("HTTP Request param is not valid " );
27- }
28- // print_r($params);
29- $ safe_pages_old = scandir ("app/controllers " );
30- $ safe_pages_old = array_slice ($ safe_pages_old , 2 );
31- $ safe_pages = array ();
32- foreach ($ safe_pages_old as $ value_pages )
33- {
34- $ value_pages_new = explode ('. ' , $ value_pages );
35- array_push ($ safe_pages , $ value_pages_new [0 ]);
36- }
37- if (in_array ($ params [1 ], $ safe_pages ) && $ params [1 ] == $ name_before )
38- {
39- REQUIRE_ONCE 'controllers/ ' .$ val ;
40-
41- $ load = array (
42- "sec " => $ Sec ,
43- "db " => $ DB ,
44- "params " => $ params ,
45- );
46-
47- if ($ _CONFIG ['language ' ]['enabled ' ] == true )
48- $ load ['language ' ] = $ Language ;
49- if ($ _CONFIG ['upload ' ]['enabled ' ] === true )
50- $ load ['upload ' ] = $ Upload ;
51- if ($ _CONFIG ['api ' ] == 'enabled ' )
52- $ load ['api ' ] = $ API ;
11+ $ request = $ _SERVER ['HTTP_HOST ' ].$ _SERVER ['REQUEST_URI ' ];
12+ $ request = strip_tags (addslashes (str_replace ($ _CONFIG ['url ' ], "" , $ request )));
13+ $ params = explode ("/ " , $ request );
14+ foreach ($ params as $ param ) {
15+ if (!empty ($ param ) && !ctype_alnum (str_replace ([ "_ " ,"- " ," " ,"& " ,"? " ,"/ " ,"= " ], "" , $ param )))
16+ die ("HTTP Request param is not valid " );
17+ }
18+ }
5319
54- $ {$ name } = new $ name ($ load );
55- $ {$ name }->action_index ();
56- $ loaded ++;
57- }
58- }
20+ // normal (index.php?page=welcome)
21+ else if (isset ($ _GET ['page ' ]) && in_array ($ _GET ['page ' ].'.controller.php ' , $ controllers ))
22+ {
23+ $ params = explode ("/ " , strip_tags (addslashes (str_replace ($ _CONFIG ['url ' ], "" , $ _GET ['page ' ]))));
24+ foreach ($ params as $ param ) {
25+ if (!empty ($ param ) && !ctype_alnum (str_replace ([ "_ " ,"- " ," " ,"& " ,"? " ,"/ " ,"= " ], "" , $ param )))
26+ die ("HTTP Request param is not valid " );
27+ }
28+ array_unshift ($ params , "" );
29+ }
5930
60- else
61- {
62- if ($ _GET ['page ' ] == $ name_before )
63- {
64- $ params_old = strip_tags (addslashes (str_replace ($ _CONFIG ['url ' ], "" , $ _GET )));
65- $ params_old = explode ("/ " , $ params_old );
66- foreach ($ params_old as $ param ) {
67- if (!empty ($ param ) && !ctype_alnum (str_replace ([ "_ " ,"- " ," " ,"& " ,"? " ,"/ " ,"= " ], "" , $ param )))
68- die ("HTTP Request param is not valid " );
69- }
70- // $params_old = $_GET;
71- $ params = array ();
72- foreach ($ params_old as $ k => $ v )
73- {
74- array_push ($ params , $ v );
75- }
76- array_unshift ($ params , "" );
77- REQUIRE_ONCE 'controllers/ ' .$ val ;
78-
79- $ load = array (
80- "sec " => $ Sec ,
81- "db " => $ DB ,
82- "params " => $ params ,
83- );
31+ // then we need to include the controller based on the url first parameter (welcome)
32+ if (in_array ($ params [1 ].".controller.php " , $ controllers ))
33+ {
34+ REQUIRE_ONCE 'controllers/ ' .$ params [1 ].".controller.php " ;
8435
85- if ( $ _CONFIG [ ' language ' ][ ' enabled ' ] == true )
86- $ load[ ' language ' ] = $ Language ;
87- if ( $ _CONFIG [ ' upload ' ][ ' enabled ' ] === true )
88- $ load [ ' upload ' ] = $ Upload ;
89- if ( $ _CONFIG [ ' api ' ] == ' enabled ' )
90- $ load [ ' api ' ] = $ API ;
36+ // default classes to pass to the controller
37+ $ load = array (
38+ " sec " => $ Sec , // security
39+ " db " => $ DB , // database
40+ " params " => $ params , // url parameters
41+ ) ;
9142
92- $ { $ name } = new $ name ( $ load );
93- // if($_CONFIG['upload']['enabled'] === true && $_CONFIG[' language']['enabled'] = == true)
94- // ${$name} = new $name(array( "Sec" => $Sec,"DB" => $DB,"params" => $params,"upload" => $Upload," language" => $Language )) ;
95- // else if($_CONFIG['upload']['enabled'] === true)
96- // ${$name} = new $name(array( "Sec" => $Sec,"DB" => $DB,"params" => $params," upload" => $Upload )) ;
97- // else
98- // ${$name} = new $name(array( "Sec" => $Sec,"DB" => $DB,"params" => $params )) ;
43+ // additional classes to pass to the controller only if they are enabled in /app/config.php
44+ if ($ _CONFIG ['language ' ]['enabled ' ] == true )
45+ $ load [ ' language ' ] = $ Language ;
46+ if ($ _CONFIG ['upload ' ]['enabled ' ] === true )
47+ $ load [ ' upload ' ] = $ Upload ;
48+ if ( $ _CONFIG [ ' api ' ] == ' enabled ' )
49+ $ load [ ' api ' ] = $ API ;
9950
100- $ {$ name }->action_index ();
101- $ loaded ++;
102- }
103- }
104- }
105- $ i ++;
51+ // then run the controller and initiate action_index
52+ $ name = "controller_ " .$ params [1 ];
53+ $ $ name = new $ name ($ load );
54+ $ $ name ->action_index ();
10655}
10756
108- if ( $ loaded == 0 )
57+ else // 404 - controller not found - redirect to home page
10958{
11059 REQUIRE_ONCE 'controllers/ ' .$ _CONFIG ['route_controller_default ' ].'.controller.php ' ;
11160
12271 if ($ _CONFIG ['api ' ] == 'enabled ' )
12372 $ load ['api ' ] = $ API ;
12473
125- $ {$ controller_default_name } = new $ controller_default_name ($ load );
126- // if($_CONFIG['upload']['enabled'] === true && $_CONFIG['language']['enabled'] === true)
127- // ${$controller_default_name} = new $controller_default_name(array( "Sec" => $Sec,"DB" => $DB,"params" => $params,"upload" => $Upload,"language" => $Language, "date" => date('d/m/Y G:i'), "ip" => $_SERVER['REMOTE_ADDR'] ));
128- // else if($_CONFIG['upload']['enabled'] === true)
129- // ${$controller_default_name} = new $controller_default_name(array( "Sec" => $Sec,"DB" => $DB,"params" => $params,"upload" => $Upload, "date" => date('d/m/Y G:i'), "ip" => $_SERVER['REMOTE_ADDR'] ));
130- // else
131- // ${$controller_default_name} = new $controller_default_name(array( "Sec" => $Sec,"DB" => $DB,"params" => $params, "date" => date('d/m/Y G:i'), "ip" => $_SERVER['REMOTE_ADDR'] ));
132- $ {$ controller_default_name }->action_index ();
74+ $ default = 'controller_ ' .$ _CONFIG ['route_controller_default ' ];
75+ $ $ default = new $ default ($ load );
76+ $ $ default ->action_index ();
13377}
13478
13579?>
0 commit comments