X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=run.php;h=24072029821ecc46929272b9cf8a7dce902e9435;hb=73490300ca9dea6fc3c6d3a474ab49796fd58438;hp=dac7bc4d6fb95ec96d48e860c0fcfab1421548b9;hpb=a679272cb862dd647da227cc720cd4d4853887c0;p=wfpl.git diff --git a/run.php b/run.php index dac7bc4..2407202 100644 --- a/run.php +++ b/run.php @@ -59,6 +59,10 @@ require_once('code/wfpl/file_run.php'); require_once('code/wfpl/http.php'); require_once('code/wfpl/template.php'); +if(file_exists('code/config.php')) { + file_run('code/config.php'); +} + function run_php($basename = false) { if(!$basename) { $basename = $_SERVER['REDIRECT_URL']; @@ -72,42 +76,67 @@ function run_php($basename = false) { $html_file = "$basename.html"; $php_file = "$basename.php"; - if(!file_exists($php_file)) { - if(file_exists($html_file)) { - readfile($html_file); + $html_exists = file_exists($html_file); + $php_exists = file_exists($php_file); + + if(function_exists('cms_get')) { + $cms_content = cms_get($basename); + } else { + $cms_content = false; + } + + if(!$php_exists && !$html_exists && !$cms_content) { + header('HTTP/1.0 404 File Not Found'); + if(file_exists('404.php') || file_exists('404.html')) { + run_php('404'); } else { - header('HTTP/1.0 404 File Not Found'); - if(file_exists('404.php') || file_exists('404.html')) { - run_php('404'); - } else { - echo '404

404 File Not Found

'; - } + echo '404

404 File Not Found

'; } + } + + # If there's no template.html we don't want to parse $html_file. + if($html_exists && !$php_exists && !file_exists('template.html')) { + readfile($html_file); exit(); } - if(file_exists($html_file)) { - $GLOBALS['wfpl_template'] = new tem(); - tem_load($html_file); + if($html_exists) { + tem_load_new($html_file); } - $other = file_run($php_file); - if($other) { - if(strpos($other, ':')) { - redirect($other); - exit(); + if($php_exists) { + # files can return a basename or URL of a page to be run/displayed + $other = file_run($php_file); + if($other) { + if(strpos($other, ':')) { + redirect($other); + exit(); + } + if(substr($other, 0, 2) == './') { + redirect(ereg_replace('/[^/]*$', substr($other, 1), this_url())); + exit(); + } + run_php($other); + return; + } + } else { + $sub_names = tem_top_sub_names(); + foreach($sub_names as $sub_name) { + tem_sub($sub_name); } - run_php($other); - return; } + # Check for $GLOBALS['wfpl_template'] because it might have been set (or unset) by the php script. if($GLOBALS['wfpl_template']) { if(file_exists('template.html')) { $tem = new tem(); $tem->load("template.html"); + if($cms_content) foreach($cms_content as $name => $val) { + $tem->append($name, $val); + } $sections = tem_top_subs(); if($sections) foreach($sections as $name => $val) { - $tem->set($name, $val); + $tem->append($name, $val); } if(file_exists("$basename.css")) {