diff options
Diffstat (limited to '')
-rw-r--r-- | include/functions.inc.php | 3 | ||||
-rw-r--r-- | include/template.php | 13 |
2 files changed, 10 insertions, 6 deletions
diff --git a/include/functions.inc.php b/include/functions.inc.php index 3b7c88bc6..973bd2fbe 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -184,7 +184,8 @@ function get_extension( $filename ) // get_filename_wo_extension( 'test.tar.gz' ) -> 'test.tar' function get_filename_wo_extension( $filename ) { - return substr( $filename, 0, strrpos( $filename, '.' ) ); + $pos = strrpos( $filename, '.' ); + return ($pos===false) ? $filename : substr( $filename, 0, $pos); } /** diff --git a/include/template.php b/include/template.php index f58b7a0e3..8de10e0d9 100644 --- a/include/template.php +++ b/include/template.php @@ -147,9 +147,9 @@ class Template { } /** - * fills $output template var + * fills $output template var by default or returns the content */ - function parse($handle) + function parse($handle, $return=false) { if (!$this->loadfile($handle)) { @@ -166,6 +166,10 @@ class Template { // Run the compiled code. $_str = ''; eval($this->compiled_code[$handle]); + if ($return) + { + return $_str; + } $this->output.= $_str; return true; @@ -302,9 +306,8 @@ class Template { function make_filename($filename) { // Check if it's an absolute or relative path. - if (substr($filename, 0, 1) != '/' - and substr($filename, 0, 1) != '\\' //Windows UNC path - and !preg_match('/^[a-z]:\\\/i', $filename) ) + // if (substr($filename, 0, 1) != '/') + if (preg_match('/^[a-z_][^:]/i', $filename) ) { $filename = $this->root.'/'.$filename; } |