input_filename
parent
4b1c853b40
commit
2a40cdbb80
22
template.php
22
template.php
|
@ -13,6 +13,7 @@ class TemplateState
|
|||
var $in = array();
|
||||
var $functions = array();
|
||||
var $output_position = 0;
|
||||
var $input_filename = '';
|
||||
}
|
||||
|
||||
define('TS_UNIX', 0);
|
||||
|
@ -267,7 +268,7 @@ class Template
|
|||
// Функция компилирует код.
|
||||
// $file = $this->compile($code, $fn);
|
||||
// require $file;
|
||||
// print $t;
|
||||
// --> class Template_...
|
||||
function compile($code, $fn)
|
||||
{
|
||||
$md5 = md5($code);
|
||||
|
@ -275,6 +276,17 @@ class Template
|
|||
if (file_exists($file))
|
||||
return $file;
|
||||
|
||||
// "имя" файла для кода не из файла
|
||||
if (!$fn)
|
||||
{
|
||||
$func_ns = 'X' . $md5;
|
||||
$c = debug_backtrace();
|
||||
$c = $c[2];
|
||||
$fn = '(inline template at '.$c['file'].':'.$c['line'].')';
|
||||
}
|
||||
else
|
||||
$func_ns = md5($fn);
|
||||
|
||||
// начала/концы спецстрок
|
||||
$bc = $this->begin_code;
|
||||
if (!$bc)
|
||||
|
@ -294,6 +306,7 @@ class Template
|
|||
}
|
||||
|
||||
$st = new TemplateState();
|
||||
$st->input_filename = $fn;
|
||||
|
||||
// ищем фрагменты кода - на регэкспах-то было не очень правильно, да и медленно!
|
||||
$r = '';
|
||||
|
@ -379,13 +392,6 @@ class Template
|
|||
|
||||
// заворачиваем основной код в _main()
|
||||
$rfn = addcslashes($fn, '\\\'');
|
||||
if (!$fn)
|
||||
{
|
||||
$c = debug_backtrace();
|
||||
$c = $c[2];
|
||||
$fn = 'inline code in '.$c['class'].$c['type'].$c['function'].'() at '.$c['file'].':'.$c['line'];
|
||||
}
|
||||
$func_ns = $fn ? md5($fn) : 'X' . $md5;
|
||||
$code = "<?php // $fn
|
||||
class Template_$func_ns extends ".__CLASS__." {
|
||||
static \$template_filename = '$rfn';
|
||||
|
|
Loading…
Reference in New Issue