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 // 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)) { if ($code_filename && file_exists($real_code_filename)) {
include $real_code_filename; include $real_code_filename;
} }

View File

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