Skip to content

Commit d18c1b1

Browse files
author
Daniel Golub
committed
massive refinement to core classes
1 parent 58ac6fc commit d18c1b1

6 files changed

Lines changed: 71 additions & 136 deletions

File tree

app/base/Language/Language.base.php

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,33 @@ public function getString($str = 'all', $language = 'default')
1515
{
1616
if($language == 'default')
1717
{
18-
REQUIRE_ONCE 'Stack/'.$this->config['language']['default'].'.stack.php';
19-
$default_lang = "_strings_".$this->config['language']['default'];
18+
REQUIRE_ONCE "Stack/".$this->config['language']['default'].".stack.php";
2019
if($str != 'all')
21-
return ${$default_lang}[$str];
20+
return ${"_strings_".$this->config['language']['default']}[$str];
2221
else
23-
return ${$default_lang};
22+
return ${"_strings_".$this->config['language']['default']};
23+
}
24+
25+
else if($language != 'all' && $language != '*') {
26+
REQUIRE_ONCE 'app/base/Language/Stack/'.$language.".stack.php";
27+
return ( $str == 'all' || $str == '*' ) ? ${"_strings_".$language} : ${"_strings_".$language}[$str];
2428
}
2529

2630
else
2731
{
28-
$languages = scandir("app/base/Language/Stack");
29-
$languages = array_slice($languages, 2);
32+
$languages = array_filter(scandir("app/base/Language/Stack"), function($item) {
33+
return !is_dir('app/base/Language/Stack/' . $item);
34+
});
3035
$arr = array();
3136
foreach ($languages as $val)
3237
{
33-
$value = explode('.', $val);
34-
$value = $value[0];
35-
if($value == $language) {
36-
REQUIRE_ONCE 'Stack/'.$language.'.stack.php';
37-
$newstrval = "_strings_".$language;
38-
if($str == 'all')
39-
$arr = $$newstrval;
40-
else
41-
array_push($arr, ${$newstrval}[$str]);
42-
}
38+
REQUIRE_ONCE "Stack/".$val;
39+
$name = reset(explode(".", $val));
40+
$arr[$name] = ( $str == 'all' || $str == '*' ) ? ${"_strings_".$name} : ${"_strings_".$name}[$str];
4341
}
4442
return $arr;
4543
}
4644
}
47-
48-
public function setString()
49-
{
50-
51-
}
5245
}
5346

5447
?>

app/base/View/View.base.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,29 @@ class View
1111
{
1212
public static function forge($location, $data = NULL, $template = true)
1313
{
14-
$location = $location.'.php';
15-
if($data != NULL)
16-
extract($data);
14+
($data != NULL) ? extract($data) : false;
1715
if($template === true)
1816
REQUIRE_ONCE 'app/views/header.php';
19-
REQUIRE_ONCE 'app/views/'.$location;
17+
REQUIRE_ONCE "app/views/$location.php";
2018
if($template === true)
2119
REQUIRE_ONCE 'app/views/footer.php';
2220
}
2321

2422
public static function error($str)
2523
{
26-
$msg = <<<html
24+
return <<<html
2725
2826
<div class="alert alert-danger">
2927
<h4>An error occurred</h4>
3028
{$str}
3129
</div>
3230
3331
html;
34-
return $msg;
3532
}
3633

3734
public static function success($str)
3835
{
39-
$msg = <<<html
36+
return <<<html
4037
4138
<div class="alert alert-success">
4239
<h4>Success!</h4>
@@ -45,7 +42,6 @@ public static function success($str)
4542
<meta http-equiv="refresh" content="3;" />
4643
4744
html;
48-
return $msg;
4945
}
5046

5147
public static function display_menu($mode = 'li')

app/config.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"enabled" => true,
3535
"default" => "en"
3636
),
37-
"api" => "enabled"
37+
"api" => "disabled"
3838
);
3939

4040
?>

app/controllers/welcome.controller.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public function action_index()
6060
else
6161
{
6262
$data['title'] = 'Codengine &raquo; Welcome :)';
63-
$data['strings'] = $this->language->getString('hi', 'default');
63+
$data['strings'] = $this->language->getString('hi', 'en');
6464
View::forge('welcome/index', $data);
6565
}
6666
}

app/route.php

Lines changed: 46 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -4,108 +4,57 @@
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

@@ -122,14 +71,9 @@
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
?>

app/start.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44
* FilePath: app/start.php
55
*/
66

7-
// Load app core files
7+
// Load app core classes
88
$base = array(
9-
"Database/Database.base.php",
109
"Security/Security.base.php",
1110
"View/View.base.php",
1211
);
@@ -29,6 +28,7 @@
2928

3029
if($_CONFIG['db']['enabled'] === true)
3130
{
31+
REQUIRE_ONCE "base/Database/Database.base.php";
3232
$DB = new Database($_CONFIG['db']['hostname'], $_CONFIG['db']['username'], $_CONFIG['db']['password'], $_CONFIG['db']['dbname']);
3333
$Sec = new Security(array( "db" => $DB ));
3434
}
@@ -41,7 +41,9 @@
4141
if($_CONFIG['api'] == 'enabled')
4242
$API = new API;
4343

44-
$controllers = scandir('app/controllers');
44+
$controllers = array_filter(scandir('app/controllers'), function($item) {
45+
return !is_dir('app/controllers/' . $item);
46+
});
4547

4648
REQUIRE_ONCE 'route.php';
4749

0 commit comments

Comments
 (0)