From: Jason Date: Wed, 15 Oct 2008 08:55:03 +0000 (-0400) Subject: metaform's html type supports image uploads by default X-Git-Url: https://jasonwoof.com/gitweb/?p=wfpl.git;a=commitdiff_plain;h=1214af8fb0ee00f35f565b276998d42b9af0246f metaform's html type supports image uploads by default cms_get() can return a redirect string just like xxx_main() refactored run.php's redirect handling --- diff --git a/metaform/template.html b/metaform/template.html index abd0a18..07b95e5 100644 --- a/metaform/template.html +++ b/metaform/template.html @@ -11,6 +11,7 @@ mode : 'textareas', theme : 'advanced', plugins : 'contextmenu,table,filemanager', + file_browser_callback : "fileBrowserCallBack", editor_selector : 'html_editor', gecko_spellcheck : true, object_resizing : false, diff --git a/misc.php b/misc.php index bbe7013..830796a 100644 --- a/misc.php +++ b/misc.php @@ -94,6 +94,20 @@ function today_ymd() { return strftime('%Y-%m-%d'); } + +function get_text_between($text, $start_text, $end_text) { + $start = strpos($text, $start_text); + if($start === false) { + return false; + } + $text = substr($text, $start + strlen($start_text)); + $end = strpos($text, $end_text); + if($end === false) { + return false; + } + return substr($text, 0, $end); +} + # php4 is broken, in that you cannot set a default value for a parameter that # is passed by reference. So, this is set up to use the following screwy # syntax: diff --git a/run.php b/run.php index e861bb2..f9c514e 100644 --- a/run.php +++ b/run.php @@ -63,8 +63,27 @@ if(file_exists('code/config.php')) { file_run('code/config.php'); } -function run_php($basename = false) { - if(!$basename) { +# pass the basename of the page you want for normal execution +# pass ./page.html to redirect to page.html in this directory +# pass http://foo.com/bar.html to redirect to a full directory +function run_php($dest = false) { + if($dest) { + # if it's got a : it must be a full URL, redirect + if(strpos($dest, ':')) { + redirect($dest); + exit(); + } + + # if it starts with './' then it's a relative URL, redirect + if(substr($dest, 0, 2) == './') { + redirect(ereg_replace('/[^/]*$', substr($dest, 1), this_url())); + exit(); + } + + # otherwise, it's a normal basename, display that content + $basename = $dest; + + } else { # no dest arg $basename = $_SERVER['REDIRECT_URL']; $basename = ereg_replace('.*/', '', $basename); $basename = ereg_replace('\.html$', '', $basename); @@ -79,8 +98,16 @@ function run_php($basename = false) { $html_exists = file_exists($html_file); $php_exists = file_exists($php_file); + # cms_get can return one of: + # 1) false to indicate that there's no cms content for this basename + # 2) a string to indicate a soft/full redirect just as foo_main() + # 3) a hash of key/value pairs to be tem_set(key,value) on the template if(function_exists('cms_get')) { $cms_content = cms_get($basename); + if(is_string($cms_content)) { + run_php($cms_content); + return; + } } else { $cms_content = false; } @@ -89,6 +116,7 @@ function run_php($basename = false) { header('HTTP/1.0 404 File Not Found'); if(file_exists('404.php') || file_exists('404.html')) { run_php('404'); + return; } else { echo '404

404 File Not Found

'; } @@ -108,14 +136,6 @@ function run_php($basename = false) { # 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; }