X-Git-Url: https://git.bts.cx/cx.git/blobdiff_plain/6e68608aecb6a542b9c75a13afd5002aeb7bc0f1..2c13f7538d3e22d07bbdf3d8aec3e16d8c156986:/cx/lib/template.php?ds=inline diff --git a/cx/lib/template.php b/cx/lib/template.php index e368a2e..004c2ab 100644 --- a/cx/lib/template.php +++ b/cx/lib/template.php @@ -1,20 +1,69 @@ = $file_modified_time) { + http_response_code(304); + return; + } + } + + $fp = fopen($full_path, 'rb'); + fpassthru($fp); + fclose($fp); +} + +function cx_template_render($class, $name, $variables = null) { global $cx_template_base, $cx_template_content; $base_template = null; $output = ''; while ($name != null) { - $segments = array(CX_PATH, 'templates', $class, $name . '.php'); + $segments = array(CX_PATH, 'templates', $class, 'pages', $name . '.php'); $path = join(DIRECTORY_SEPARATOR, $segments); $base_template = null; + $base_template_variables = null; $cx_template_base_previous = $cx_template_base; - $cx_template_base = function($name) use (&$base_template ) { + $cx_template_base = function($name, $base_variables) use (&$base_template, &$base_template_variables) { $base_template = $name; + $base_template_variables = $base_variables; }; $cx_template_content_previous = $cx_template_content; @@ -24,7 +73,10 @@ function cx_template_render($class, $name, $variables = []) { cx_require('lib', 'url.php'); // For templates - extract($variables); + if ($variables != null) { + extract($variables); + } + ob_start(); include($path); $output = ob_get_contents(); @@ -34,14 +86,15 @@ function cx_template_render($class, $name, $variables = []) { $cx_template_content = $cx_template_content_previous; $name = $base_template; + $variables = $base_template_variables; } return $output; } -function cx_template_base($name) { +function cx_template_base($name, $variables = null) { global $cx_template_base; - $cx_template_base($name); + $cx_template_base($name, $variables); } function cx_template_content() {