This commit is contained in:
parent
6de89d8f7e
commit
efaf8eff0f
|
|
@ -21,7 +21,7 @@ class RainTPL{
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
static $tpl_dir = "/resources/templates/provision/";
|
||||
static $tpl_dir = "tpl/";
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -29,7 +29,7 @@ class RainTPL{
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
static $cache_dir = "/tmp/";
|
||||
static $cache_dir = "tmp/";
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -45,7 +45,7 @@ class RainTPL{
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
static $tpl_ext = null;
|
||||
static $tpl_ext = "html";
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -100,7 +100,7 @@ class RainTPL{
|
|||
*
|
||||
* @var bool
|
||||
*/
|
||||
static $debug = true;
|
||||
static $debug = false;
|
||||
|
||||
// -------------------------
|
||||
|
||||
|
|
@ -255,8 +255,7 @@ class RainTPL{
|
|||
|
||||
if( !isset($this->tpl['checked']) ){
|
||||
|
||||
$tpl_basename = basename( $tpl_name ); // te
|
||||
mplate basename
|
||||
$tpl_basename = basename( $tpl_name ); // template basename
|
||||
$tpl_basedir = strpos($tpl_name,"/") ? dirname($tpl_name) . '/' : null; // template basedirectory
|
||||
$tpl_dir = self::$tpl_dir . $tpl_basedir; // template directory
|
||||
$this->tpl['tpl_filename'] = $tpl_dir . $tpl_basename . self::$tpl_ext; // template filename
|
||||
|
|
@ -271,8 +270,7 @@ mplate basename
|
|||
}
|
||||
|
||||
// file doesn't exsist, or the template was updated, Rain will compile the template
|
||||
if( !file_exists( $this->tpl['compiled_filename'] ) || ( self::$check_template_update && filemtime($this->tpl['compiled_filename']) < filemtime( $this->tpl['tpl_filename'] )
|
||||
) ){
|
||||
if( !file_exists( $this->tpl['compiled_filename'] ) || ( self::$check_template_update && filemtime($this->tpl['compiled_filename']) < filemtime( $this->tpl['tpl_filename'] ) ) ){
|
||||
$this->compileFile( $tpl_basename, $tpl_basedir, $this->tpl['tpl_filename'], self::$cache_dir, $this->tpl['compiled_filename'] );
|
||||
return true;
|
||||
}
|
||||
|
|
@ -320,8 +318,7 @@ mplate basename
|
|||
mkdir( $cache_dir, 0755, true );
|
||||
|
||||
if( !is_writable( $cache_dir ) )
|
||||
throw new RainTpl_Exception ('Cache directory ' . $cache_dir . 'doesn\'t have write permission. Set write permission or set RAINTPL_CHECK_TEMPLATE_UPDATE to false. More deta
|
||||
ils on http://www.raintpl.com/Documentation/Documentation-for-PHP-developers/Configuration/');
|
||||
throw new RainTpl_Exception ('Cache directory ' . $cache_dir . 'doesn\'t have write permission. Set write permission or set RAINTPL_CHECK_TEMPLATE_UPDATE to false. More details on http://www.raintpl.com/Documentation/Documentation-for-PHP-developers/Configuration/');
|
||||
|
||||
//write compiled file
|
||||
file_put_contents( $compiled_filename, $template_compiled );
|
||||
|
|
@ -412,8 +409,7 @@ ils on http://www.raintpl.com/Documentation/Documentation-for-PHP-developers/Con
|
|||
elseif( preg_match( '/\{include="([^"]*)"(?: cache="([^"]*)"){0,1}\}/', $html, $code ) ){
|
||||
|
||||
//variables substitution
|
||||
$include_var = $this->var_replace( $code[ 1 ], $left_delimiter = null, $right_delimiter = null, $php_left_delimiter = '".' , $php_right_delimiter = '."', $loop_level
|
||||
);
|
||||
$include_var = $this->var_replace( $code[ 1 ], $left_delimiter = null, $right_delimiter = null, $php_left_delimiter = '".' , $php_right_delimiter = '."', $loop_level );
|
||||
|
||||
// if the cache is active
|
||||
if( isset($code[ 2 ]) ){
|
||||
|
|
@ -426,8 +422,7 @@ ils on http://www.raintpl.com/Documentation/Documentation-for-PHP-developers/Con
|
|||
' $tpl_dir_temp = self::$tpl_dir;' .
|
||||
' $tpl->assign( $this->var );' .
|
||||
( !$loop_level ? null : '$tpl->assign( "key", $key'.$loop_level.' ); $tpl->assign( "value", $value'.$loop_level.' );' ).
|
||||
' $tpl->draw( dirname("'.$include_var.'") . ( substr("'.$include_var.'",-1,1) != "/" ? "/" : "" ) . basename("'.$include_var.'"
|
||||
) );'.
|
||||
' $tpl->draw( dirname("'.$include_var.'") . ( substr("'.$include_var.'",-1,1) != "/" ? "/" : "" ) . basename("'.$include_var.'") );'.
|
||||
'} ?>';
|
||||
}
|
||||
else{
|
||||
|
|
@ -437,8 +432,7 @@ ils on http://www.raintpl.com/Documentation/Documentation-for-PHP-developers/Con
|
|||
'$tpl_dir_temp = self::$tpl_dir;' .
|
||||
'$tpl->assign( $this->var );' .
|
||||
( !$loop_level ? null : '$tpl->assign( "key", $key'.$loop_level.' ); $tpl->assign( "value", $value'.$loop_level.' );' ).
|
||||
'$tpl->draw( dirname("'.$include_var.'") . ( substr("'.$include_var.'",-1,1) != "/" ? "/" : "" ) . basename("'.$include_var
|
||||
.'") );'.
|
||||
'$tpl->draw( dirname("'.$include_var.'") . ( substr("'.$include_var.'",-1,1) != "/" ? "/" : "" ) . basename("'.$include_var.'") );'.
|
||||
'?>';
|
||||
|
||||
|
||||
|
|
@ -453,8 +447,7 @@ ils on http://www.raintpl.com/Documentation/Documentation-for-PHP-developers/Con
|
|||
$loop_level++;
|
||||
|
||||
//replace the variable in the loop
|
||||
$var = $this->var_replace( '$' . $code[ 1 ], $tag_left_delimiter=null, $tag_right_delimiter=null, $php_left_delimiter=null, $php_right_delimiter=null, $loop_level-1
|
||||
);
|
||||
$var = $this->var_replace( '$' . $code[ 1 ], $tag_left_delimiter=null, $tag_right_delimiter=null, $php_left_delimiter=null, $php_right_delimiter=null, $loop_level-1 );
|
||||
|
||||
//loop variables
|
||||
$counter = "\$counter$loop_level"; // count iteration
|
||||
|
|
@ -496,8 +489,7 @@ ils on http://www.raintpl.com/Documentation/Documentation-for-PHP-developers/Con
|
|||
$this->function_check( $tag );
|
||||
|
||||
//variable substitution into condition (no delimiter into the condition)
|
||||
$parsed_condition = $this->var_replace( $condition, $tag_left_delimiter = null, $tag_right_delimiter = null, $php_left_delimiter = null, $php_right_delimiter = null,
|
||||
$loop_level );
|
||||
$parsed_condition = $this->var_replace( $condition, $tag_left_delimiter = null, $tag_right_delimiter = null, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level );
|
||||
|
||||
//if code
|
||||
$compiled_code .= "<?php if( $parsed_condition ){ ?>";
|
||||
|
|
@ -514,8 +506,7 @@ ils on http://www.raintpl.com/Documentation/Documentation-for-PHP-developers/Con
|
|||
$condition = $code[ 1 ];
|
||||
|
||||
//variable substitution into condition (no delimiter into the condition)
|
||||
$parsed_condition = $this->var_replace( $condition, $tag_left_delimiter = null, $tag_right_delimiter = null, $php_left_delimiter = null, $php_right_delimiter = null,
|
||||
$loop_level );
|
||||
$parsed_condition = $this->var_replace( $condition, $tag_left_delimiter = null, $tag_right_delimiter = null, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level );
|
||||
|
||||
//elseif code
|
||||
$compiled_code .= "<?php }elseif( $parsed_condition ){ ?>";
|
||||
|
|
@ -556,8 +547,7 @@ ils on http://www.raintpl.com/Documentation/Documentation-for-PHP-developers/Con
|
|||
$parsed_function = $function . "()";
|
||||
else
|
||||
// parse the function
|
||||
$parsed_function = $function . $this->var_replace( $code[ 2 ], $tag_left_delimiter = null, $tag_right_delimiter = null, $php_left_delimiter = null, $php_righ
|
||||
t_delimiter = null, $loop_level );
|
||||
$parsed_function = $function . $this->var_replace( $code[ 2 ], $tag_left_delimiter = null, $tag_right_delimiter = null, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level );
|
||||
|
||||
//if code
|
||||
$compiled_code .= "<?php echo $parsed_function; ?>";
|
||||
|
|
@ -578,14 +568,11 @@ t_delimiter = null, $loop_level );
|
|||
else{
|
||||
|
||||
//variables substitution (es. {$title})
|
||||
$html = $this->var_replace( $html, $left_delimiter = '\{', $right_delimiter = '\}', $php_left_delimiter = '<?php ', $php_right_delimiter = ';?>', $loop_level, $echo
|
||||
= true );
|
||||
$html = $this->var_replace( $html, $left_delimiter = '\{', $right_delimiter = '\}', $php_left_delimiter = '<?php ', $php_right_delimiter = ';?>', $loop_level, $echo = true );
|
||||
//const substitution (es. {#CONST#})
|
||||
$html = $this->const_replace( $html, $left_delimiter = '\{', $right_delimiter = '\}', $php_left_delimiter = '<?php ', $php_right_delimiter = ';?>', $loop_level, $ech
|
||||
o = true );
|
||||
$html = $this->const_replace( $html, $left_delimiter = '\{', $right_delimiter = '\}', $php_left_delimiter = '<?php ', $php_right_delimiter = ';?>', $loop_level, $echo = true );
|
||||
//functions substitution (es. {"string"|functions})
|
||||
$compiled_code .= $this->func_replace( $html, $left_delimiter = '\{', $right_delimiter = '\}', $php_left_delimiter = '<?php ', $php_right_delimiter = ';?>', $loop_le
|
||||
vel, $echo = true );
|
||||
$compiled_code .= $this->func_replace( $html, $left_delimiter = '\{', $right_delimiter = '\}', $php_left_delimiter = '<?php ', $php_right_delimiter = ';?>', $loop_level, $echo = true );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -632,32 +619,27 @@ vel, $echo = true );
|
|||
$exp = $sub = array();
|
||||
|
||||
if( in_array( "img", self::$path_replace_list ) ){
|
||||
$exp = array( '/<img(.*?)src=(?:")(http|https)\:\/\/([^"]+?)(?:")/i', '/<img(.*?)src=(?:")([^"]+?)#(?:")/i', '/<img(.*?)src="(.*?)"/', '/<img(.*?)src=(?:\@)([^"]+?)(
|
||||
?:\@)/i' );
|
||||
$exp = array( '/<img(.*?)src=(?:")(http|https)\:\/\/([^"]+?)(?:")/i', '/<img(.*?)src=(?:")([^"]+?)#(?:")/i', '/<img(.*?)src="(.*?)"/', '/<img(.*?)src=(?:\@)([^"]+?)(?:\@)/i' );
|
||||
$sub = array( '<img$1src=@$2://$3@', '<img$1src=@$2@', '<img$1src="' . $path . '$2"', '<img$1src="$2"' );
|
||||
}
|
||||
|
||||
if( in_array( "script", self::$path_replace_list ) ){
|
||||
$exp = array_merge( $exp , array( '/<script(.*?)src=(?:")(http|https)\:\/\/([^"]+?)(?:")/i', '/<script(.*?)src=(?:")([^"]+?)#(?:")/i', '/<script(.*?)src="(.*?)"/', '
|
||||
/<script(.*?)src=(?:\@)([^"]+?)(?:\@)/i' ) );
|
||||
$exp = array_merge( $exp , array( '/<script(.*?)src=(?:")(http|https)\:\/\/([^"]+?)(?:")/i', '/<script(.*?)src=(?:")([^"]+?)#(?:")/i', '/<script(.*?)src="(.*?)"/', '/<script(.*?)src=(?:\@)([^"]+?)(?:\@)/i' ) );
|
||||
$sub = array_merge( $sub , array( '<script$1src=@$2://$3@', '<script$1src=@$2@', '<script$1src="' . $path . '$2"', '<script$1src="$2"' ) );
|
||||
}
|
||||
|
||||
if( in_array( "link", self::$path_replace_list ) ){
|
||||
$exp = array_merge( $exp , array( '/<link(.*?)href=(?:")(http|https)\:\/\/([^"]+?)(?:")/i', '/<link(.*?)href=(?:")([^"]+?)#(?:")/i', '/<link(.*?)href="(.*?)"/', '/<l
|
||||
ink(.*?)href=(?:\@)([^"]+?)(?:\@)/i' ) );
|
||||
$exp = array_merge( $exp , array( '/<link(.*?)href=(?:")(http|https)\:\/\/([^"]+?)(?:")/i', '/<link(.*?)href=(?:")([^"]+?)#(?:")/i', '/<link(.*?)href="(.*?)"/', '/<link(.*?)href=(?:\@)([^"]+?)(?:\@)/i' ) );
|
||||
$sub = array_merge( $sub , array( '<link$1href=@$2://$3@', '<link$1href=@$2@' , '<link$1href="' . $path . '$2"', '<link$1href="$2"' ) );
|
||||
}
|
||||
|
||||
if( in_array( "a", self::$path_replace_list ) ){
|
||||
$exp = array_merge( $exp , array( '/<a(.*?)href=(?:")(http\:\/\/|https\:\/\/|javascript:)([^"]+?)(?:")/i', '/<a(.*?)href="(.*?)"/', '/<a(.*?)href=(?:\@)([^"]+?)(?:\@
|
||||
)/i' ) );
|
||||
$exp = array_merge( $exp , array( '/<a(.*?)href=(?:")(http\:\/\/|https\:\/\/|javascript:)([^"]+?)(?:")/i', '/<a(.*?)href="(.*?)"/', '/<a(.*?)href=(?:\@)([^"]+?)(?:\@)/i' ) );
|
||||
$sub = array_merge( $sub , array( '<a$1href=@$2$3@', '<a$1href="' . self::$base_url . '$2"', '<a$1href="$2"' ) );
|
||||
}
|
||||
|
||||
if( in_array( "input", self::$path_replace_list ) ){
|
||||
$exp = array_merge( $exp , array( '/<input(.*?)src=(?:")(http|https)\:\/\/([^"]+?)(?:")/i', '/<input(.*?)src=(?:")([^"]+?)#(?:")/i', '/<input(.*?)src="(.*?)"/', '/<i
|
||||
nput(.*?)src=(?:\@)([^"]+?)(?:\@)/i' ) );
|
||||
$exp = array_merge( $exp , array( '/<input(.*?)src=(?:")(http|https)\:\/\/([^"]+?)(?:")/i', '/<input(.*?)src=(?:")([^"]+?)#(?:")/i', '/<input(.*?)src="(.*?)"/', '/<input(.*?)src=(?:\@)([^"]+?)(?:\@)/i' ) );
|
||||
$sub = array_merge( $sub , array( '<input$1src=@$2://$3@', '<input$1src=@$2@', '<input$1src="' . $path . '$2"', '<input$1src="$2"' ) );
|
||||
}
|
||||
|
||||
|
|
@ -764,11 +746,9 @@ nput(.*?)src=(?:\@)([^"]+?)(?:\@)/i' ) );
|
|||
// compile the variable for php
|
||||
if( isset( $function ) ){
|
||||
if( $php_var )
|
||||
$php_var = $php_left_delimiter . ( !$is_init_variable && $echo ? 'echo ' : null ) . ( $params ? "( $function( $php_var, $params ) )" : "$function( $php_var )
|
||||
" ) . $php_right_delimiter;
|
||||
$php_var = $php_left_delimiter . ( !$is_init_variable && $echo ? 'echo ' : null ) . ( $params ? "( $function( $php_var, $params ) )" : "$function( $php_var )" ) . $php_right_delimiter;
|
||||
else
|
||||
$php_var = $php_left_delimiter . ( !$is_init_variable && $echo ? 'echo ' : null ) . ( $params ? "( $function( $params ) )" : "$function()" ) . $php_right_del
|
||||
imiter;
|
||||
$php_var = $php_left_delimiter . ( !$is_init_variable && $echo ? 'echo ' : null ) . ( $params ? "( $function( $params ) )" : "$function()" ) . $php_right_delimiter;
|
||||
}
|
||||
else
|
||||
$php_var = $php_left_delimiter . ( !$is_init_variable && $echo ? 'echo ' : null ) . $php_var . $extra_var . $php_right_delimiter;
|
||||
|
|
@ -786,8 +766,7 @@ imiter;
|
|||
function var_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level = null, $echo = null ){
|
||||
|
||||
//all variables
|
||||
if( preg_match_all( '/' . $tag_left_delimiter . '\$(\w+(?:\.\${0,1}[A-Za-z0-9_]+)*(?:(?:\[\${0,1}[A-Za-z0-9_]+\])|(?:\-\>\${0,1}[A-Za-z0-9_]+))*)(.*?)' . $tag_right_delimiter . '/',
|
||||
$html, $matches ) ){
|
||||
if( preg_match_all( '/' . $tag_left_delimiter . '\$(\w+(?:\.\${0,1}[A-Za-z0-9_]+)*(?:(?:\[\${0,1}[A-Za-z0-9_]+\])|(?:\-\>\${0,1}[A-Za-z0-9_]+))*)(.*?)' . $tag_right_delimiter . '/', $html, $matches ) ){
|
||||
|
||||
for( $parsed=array(), $i=0, $n=count($matches[0]); $i<$n; $i++ )
|
||||
$parsed[$matches[0][$i]] = array('var'=>$matches[1][$i],'extra_var'=>$matches[2][$i]);
|
||||
|
|
@ -879,8 +858,7 @@ imiter;
|
|||
|
||||
// compile the variable for php
|
||||
if( isset( $function ) )
|
||||
$php_var = $php_left_delimiter . ( !$is_init_variable && $echo ? 'echo ' : null ) . ( $params ? "( $function( $php_var, $params ) )" : "$function( $php_var )" )
|
||||
. $php_right_delimiter;
|
||||
$php_var = $php_left_delimiter . ( !$is_init_variable && $echo ? 'echo ' : null ) . ( $params ? "( $function( $php_var, $params ) )" : "$function( $php_var )" ) . $php_right_delimiter;
|
||||
else
|
||||
$php_var = $php_left_delimiter . ( !$is_init_variable && $echo ? 'echo ' : null ) . $php_var . $extra_var . $php_right_delimiter;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue