Updates to the logic flow for determining the section to be loaded.

git-svn-id: http://svn.cleancode.org/svn/pickles@18 4d10bc64-7434-11dc-a737-d2d0f8310089
This commit is contained in:
Josh Sherman 2008-05-31 19:12:41 +00:00
parent 68efc9e5e9
commit 6871bb0f57
2 changed files with 31 additions and 28 deletions

View file

@ -5,24 +5,31 @@ class Controller {
public function __construct() {
global $smarty;
define('PATH', '../logic/');
$section = $action = null;
if (isset($_REQUEST['section'])) {
// Check for section.action.php
if (isset($_REQUEST['action']) && file_exists(PATH . $_REQUEST['section'] . '.' . $_REQUEST['action'] . '.php')) {
if (isset($_REQUEST['action']) && file_exists('../logic/' . $_REQUEST['section'] . '.' . $_REQUEST['action'] . '.php')) {
$section = $_REQUEST['section'];
$action = $_REQUEST['action'];
}
// else check for section.php
else if (file_exists(PATH . $_REQUEST['section'] . '.php')) {
else if (file_exists('../logic/' . $_REQUEST['section'] . '.php')) {
$section = $_REQUEST['section'];
}
// else use the default section
else {
$section = Config::get('default');
// Check for section.action.tpl
else if (isset($_REQUEST['action']) && file_exists('../templates/' . $_REQUEST['section'] . '.' . $_REQUEST['action'] . '.tpl')) {
$section = $_REQUEST['section'];
$action = $_REQUEST['action'];
}
// else check for section.tpl
else if (file_exists('../templates/' . $_REQUEST['section'] . '.tpl')) {
$section = $_REQUEST['section'];
}
}
if (!isset($section)) {
$section = Config::get('default');
}
$file = '../logic/' . $section . ($action ? '.' . $action : null) . '.php';
@ -32,26 +39,6 @@ class Controller {
require_once $file;
}
/*
@todo not sure I need this at all anymore...
if (!file_exists('../templates/' . $template)) {
$section = Config::get('default');
$action = '';
$file = '../logic/' . $section . ($action ? '.' . $action : null) . '.php';
$template = $section . ($action ? '.' . $action : null) . '.tpl';
if (file_exists('../logic/' . $file)) {
require_once $file;
}
if (!file_exists('../templates/' . $template)) {
// This would be considered a critical error
}
}
*/
$smarty->assign('navigation', Config::get('navigation'));
$smarty->assign('section', $section);
$smarty->assign('action', $action);

View file

@ -1,9 +1,10 @@
<?php
date_default_timezone_set('America/New_York');
define('JLIB_PATH', '/var/www/josh/common/');
function __autoload($class) {
require_once "/var/www/josh/common/classes/{$class}.php";
require_once JLIB_PATH . 'classes/' . $class . '.php';
}
// Obliterates any passed in PHPSESSID (thanks Google)
@ -68,6 +69,21 @@ if (Config::getSmarty()) {
$smarty->compile_dir = $compile_dir;
$smarty->load_filter('output','trimwhitespace');
// Include custom Smarty functions
$directory = JLIB_PATH . 'smarty/';
if (is_dir($directory)) {
if ($handle = opendir($directory)) {
while (($file = readdir($handle)) !== false) {
if (!preg_match('/^\./', $file)) {
list($type, $name, $ext) = split('\.', $file);
require_once $directory . $file;
$smarty->register_function($name, "smarty_{$type}_{$name}");
}
}
closedir($handle);
}
}
}
// Use the FCKeditor instead of textareas