- changed name of {template} tag to {function}

This commit is contained in:
Uwe.Tews
2009-04-24 22:36:12 +00:00
parent e315782819
commit 4f4f2d3dd3
5 changed files with 31 additions and 30 deletions

View File

@@ -1,4 +1,5 @@
04/24/2009
- changed name of {template} tag to {function}
- added new {template} tag
04/23/2009

View File

@@ -1,19 +1,19 @@
<?php
/**
* Smarty Internal Plugin Compile Template
* Smarty Internal Plugin Compile Function
*
* Compiles the {template} tag
* Compiles the {function} tag
*
* @package Smarty
* @subpackage Compiler
* @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Template Class
* Smarty Internal Plugin Compile Function Class
*/
class Smarty_Internal_Compile_Template extends Smarty_Internal_CompileBase {
class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase {
/**
* Compiles code for the {template} tag
* Compiles code for the {function} tag
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
@@ -27,10 +27,10 @@ class Smarty_Internal_Compile_Template extends Smarty_Internal_CompileBase {
// check and get attributes
$_attr = $this->_get_attributes($args);
$save = array($_attr, $compiler->template->extracted_compiled_code, $compiler->template->extract_code);
$this->_open_tag('template', $save);
$this->_open_tag('function', $save);
$_name = trim($_attr['name'], "'");
foreach ($_attr as $_key => $_data) {
$compiler->template->properties['template'][$_name]['parameter'][$_key] = $_data;
$compiler->template->properties['function'][$_name]['parameter'][$_key] = $_data;
}
$compiler->template->extract_code = true;
$compiler->template->extracted_compiled_code = '';

View File

@@ -1,19 +1,19 @@
<?php
/**
* Smarty Internal Plugin Compile Template Close
* Smarty Internal Plugin Compile Function Close
*
* Compiles the {/template} tag
* Compiles the {/function} tag
*
* @package Smarty
* @subpackage Compiler
* @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile TemplateClose Class
* Smarty Internal Plugin Compile FunctionClose Class
*/
class Smarty_Internal_Compile_TemplateClose extends Smarty_Internal_CompileBase {
class Smarty_Internal_Compile_FunctionClose extends Smarty_Internal_CompileBase {
/**
* Compiles code for the {/template} tag
* Compiles code for the {/function} tag
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
@@ -28,13 +28,13 @@ class Smarty_Internal_Compile_TemplateClose extends Smarty_Internal_CompileBase
// check and get attributes
$this->optional_attributes = array('name');
$_attr = $this->_get_attributes($args);
$saved_data = $this->_close_tag(array('template'));
$saved_data = $this->_close_tag(array('function'));
// if name does match to opening tag
if (isset($_attr['name']) && $saved_data[0]['name'] != $_attr['name']) {
$this->compiler->trigger_template_error('mismatching name attributes "' . $saved_data[0]['name'] . '" and "' . $_attr['name'] . '"');
}
$_name = trim($saved_data[0]['name'], "'");
$compiler->template->properties['template'][$_name]['compiled'] = str_replace("\n",'_%n',$compiler->template->extracted_compiled_code);
$compiler->template->properties['function'][$_name]['compiled'] = str_replace("\n",'_%n',$compiler->template->extracted_compiled_code);
$compiler->template->extracted_compiled_code = $saved_data[1];
$compiler->template->extract_code = $saved_data[2];
return true;

View File

@@ -1,20 +1,20 @@
<?php
/**
* Smarty Internal Plugin Compile TemplateCall
* Smarty Internal Plugin Compile Internalfunctioncall
*
* Compiles the {templatecall} tag
* Compiles the {internalfunctioncall} tag
*
* @package Smarty
* @subpackage Compiler
* @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile TemplateCall Class
* Smarty Internal Plugin Compile Internalfunctioncall Class
*/
class Smarty_Internal_Compile_TemplateCall extends Smarty_Internal_CompileBase {
class Smarty_Internal_Compile_Internalfunctioncall extends Smarty_Internal_CompileBase {
/**
* Compiles code for the {templateall} tag
* Compiles code for the {internalfunctioncall} tag
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
@@ -34,12 +34,12 @@ class Smarty_Internal_Compile_TemplateCall extends Smarty_Internal_CompileBase {
}
$_name = trim( $_attr['name'],"'");
// create template object
$_output = "<?php \$_template = new Smarty_Template ('string:', \$_smarty_tpl);";
$_output = "<?php \$_template = new Smarty_Template ('string:', \$_smarty_tpl);\n";
// assign default paramter
if (isset($compiler->template->properties['template'][$_name]['parameter'])) {
foreach ($compiler->template->properties['template'][$_name]['parameter'] as $_key => $_value) {
if (isset($compiler->template->properties['function'][$_name]['parameter'])) {
foreach ($compiler->template->properties['function'][$_name]['parameter'] as $_key => $_value) {
if (!isset($_attr[$_key])) {
$_output .= "\$_template->assign('$_key',$_value);";
$_output .= "\$_template->assign('$_key',$_value);\n";
}
}
}
@@ -49,15 +49,15 @@ class Smarty_Internal_Compile_TemplateCall extends Smarty_Internal_CompileBase {
if (!empty($_attr)) {
// create variables
foreach ($_attr as $_key => $_value) {
$_output .= "\$_template->assign('$_key',$_value);";
$_output .= "\$_template->assign('$_key',$_value);\n";
}
}
if (isset($compiler->template->properties['template'][$_name]['compiled'])) {
$_compiled = str_replace(array('_%n',"'"), array('',"\'"), $compiler->template->properties['template'][$_name]['compiled']);
$_output .= "\$_template->compiled_template = '$_compiled'; \$_template->mustCompile = false;";
if (isset($compiler->template->properties['function'][$_name]['compiled'])) {
$_compiled = str_replace(array('_%n',"'"), array("\n","\'"), $compiler->template->properties['function'][$_name]['compiled']);
$_output .= "\$_template->compiled_template = '$_compiled';\n \$_template->mustCompile = false;\n";
} else {
// for recursion
$_output .= "\$_template->compiled_template = \$_smarty_tpl->compiled_template; \$_template->mustCompile = false;";
$_output .= "\$_template->compiled_template = \$_smarty_tpl->compiled_template;\n \$_template->mustCompile = false;\n";
}
// was there an assign attribute
if (isset($_assign)) {

View File

@@ -112,10 +112,10 @@ class Smarty_Internal_TemplateCompilerBase extends Smarty_Internal_Base {
$this->has_code = true;
$this->has_output = false;
// compile the smarty tag (required compile classes to compile the tag are autoloaded)
if (isset($this->template->properties['template'][$tag])) {
if (isset($this->template->properties['function'][$tag])) {
// template defined by {template} tag
$args['name'] = $tag;
$tag = 'templatecall';
$tag = 'internalfunctioncall';
}
if (!($_output = $this->$tag($args, $this)) === false) {
if ($_output !== true) {