Updates Page/RequestParser to support custom directory structures

This commit is contained in:
2011-06-15 21:14:26 +01:00
parent 4604a57434
commit a96b3599c8
2 changed files with 17 additions and 4 deletions

View File

@@ -52,7 +52,7 @@ class SihnonFramework_Page {
}
// Include the template code file, which will do all the work for this page
$real_code_filename = './source/pages/' . $code_filename;
$real_code_filename = $this->request->template_code_dir() . DIRECTORY_SEPARATOR . $code_filename;
if ($code_filename && file_exists($real_code_filename)) {
include $real_code_filename;
}

View File

@@ -6,8 +6,13 @@ class SihnonFramework_RequestParser {
private $page = array();
private $vars = array();
public function __construct($request_string) {
private $template_dir;
private $template_code_dir;
public function __construct($request_string, $template_dir = './source/templates', $template_code_dir = './source/pages') {
$this->request_string = $request_string;
$this->template_dir = $template_dir;
$this->template_code_dir = $template_code_dir;
$this->parse();
}
@@ -25,7 +30,7 @@ class SihnonFramework_RequestParser {
// Read through the components list looking for elements matching known directories and files
// to determine which page this request is for
$base_dir = './source/templates';
$base_dir = $this->template_dir;
while (true) {
if ($components && ! $components[0]) {
// Skip over any empty components before we find a page
@@ -118,6 +123,14 @@ class SihnonFramework_RequestParser {
return $this->request_string;
}
public function template_dir() {
return $this->template_dir;
}
public function template_code_dir() {
return $this->template_code_dir;
}
};
?>