===== SVN trunk ===== ===== Smarty 3.0.8 ===== 29/05/2011 - bugfix in templates did break "cache modified check" 14/05/2011 - bugfix error handling at stream resources 13/05/2011 - bugfix condition starting with "-" did fail at {if} and {while} tags 22/04/2011 - bugfix allow only fixed string as file attribute at {extends} tag - workaround for PHP 5.2.13 bug in method_exists() 01/04/2011 - bugfix do not run filters and default modifier when displaying the debug template - bugfix of embedded double quotes within multi line strings (""") 29/03/2011 - bugfix on error message in smarty_internal_compile_block.php - bugfix mb handling in strip modifier - bugfix for Smarty2 style registered compiler function on unnamed attribute passing like {tag $foo $bar} 17/03/2011 - bugfix on default {function} parameters when {function} was used in nocache sections - bugfix on compiler object destruction. compiler_object property was by mistake unset. 09/03/2011 -bugfix a variable filter should run before modifers on an output tag (see change of 23/07/2010) 08/03/2011 - bugfix loading config file without section should load only defaults 03/03/2011 - bugfix "smarty" template variable was not recreated when cached templated had expired - bugfix internal rendered_content must be cleared after subtemplate was included 01/03/2011 - bugfix replace modifier did not work in 3.0.7 on systems without multibyte support - bugfix {$smarty.template} could return in 3.0.7 parent template name instead of child name when it needed to compile 25/02/2011 - bugfix for Smarty2 style compiler plugins on unnamed attribute passing like {tag $foo $bar} 24/02/2011 - bugfix $smarty->clearCache('some.tpl') did by mistake cache the template object 18/02/2011 - bugfix removed possible race condition when isCached() was called for an individually cached subtemplate - bugfix force default debug.tpl to be loaded by the file resource when default_resource_type was modified 17/02/2011 -improvement not to delete files starting with '.' from cache and template_c folders on clearCompiledTemplate() and clearCache() 16/02/2011 -fixed typo in exception message of Smarty_Internal_Template -improvement allow leading spaces on } tag closing if auto_literal is enabled 13/02/2011 - bugfix replace $smarty->triggerError() by exception in smarty_internal_resource_extends.php - removed obsolete {popup_init..} plugin from demo templates ===== Smarty 3.0.7 ===== 09/02/2011 - patched vulnerability when using {$smarty.template} 01/02/2011 - removed assert() from config and template parser 31/01/2011 - bugfix the lexer/parser did fail on special characters like VT 16/01/2011 -bugfix of ArrayAccess object handling in internal _count() method -bugfix of Iterator object handling in internal _count() method 14/01/2011 -bugfix removed memory leak while processing compileAllTemplates 12/01/2011 - bugfix in {if} and {while} tag compiler when using assignments as condition and nocache mode 10/01/2011 - bugfix when using {$smarty.block.child} and name of {block} was in double quoted string - bugfix updateParentVariables() was called twice when leaving {include} processing - bugfix mb_str_replace in replace and escape modifiers work with utf8 31/12/2010 - bugfix dynamic configuration of $debugging_crtl did not work - bugfix default value of $config_read_hidden changed to false - bugfix format of attribute array on compiler plugins - bugfix getTemplateVars() could return value from wrong scope 28/12/2010 - bugfix multiple {append} tags failed to compile. 22/12/2010 - update do not clone the Smarty object an internal createTemplate() calls to increase performance 21/12/2010 - update html_options to support class and id attrs 17/12/2010 - bugfix added missing support of $cache_attrs for registered plugins 15/12/2010 - bugfix assignment as condition in {while} did drop an E_NOTICE 14/12/2010 - bugfix when passing an array as default parameter at {function} tag 13/12/2010 - bugfix {$smarty.template} in child template did not return right content - bugfix Smarty3 did not search the PHP include_path for template files ===== Smarty 3.0.6 ===== 12/12/2010 - bugfix fixed typo regarding yesterdays change to allow streamWrapper 11/12/2010 - bugfix nested block tags in template inheritance child templates did not work correctly - bugfix {$smarty.current_dir} in child template did not point to dir of child template - bugfix changed code when writing temporary compiled files to allow stream_wrapper 06/12/2010 - bugfix getTemplateVars() should return 'null' instead dropping E_NOTICE on an unassigned variable 05/12/2010 - bugfix missing declaration of $smarty in Smarty class - bugfix empty($foo) in {if} did drop a notice when $foo was not assigned 01/12/2010 - improvement of {debug} tag output 27/11/2010 -change run output filter before cache file is written. (same as in Smarty2) 24/11/2011 -bugfix on parser at !$foo|modifier -change parser logic when assignments used as condition in {if] and {while} to allow assign to array element 23/11/2011 -bugfix allow integer as attribute name in plugin calls -change trimm whitespace from error message, removed long list of expected tokens 22/11/2010 - bugfix on template inheritance when an {extends} tag was inserted by a prefilter - added error message for illegal variable file attributes at {extends...} tags ===== Smarty 3.0.5 ===== 19/11/2010 - bugfix on block plugins with modifiers 18/11/2010 - change on handling of unassigned template variable -- default will drop E_NOTICE - bugfix on Smarty2 wrapper load_filter() did not work 17/11/2010 - bugfix on {call} with variable function name - bugfix on {block} if name did contain '-' - bugfix in function.fetch.php , referece to undefined $smarty 16/11/2010 - bugfix whitespace in front of "fetch()/display() have been used in plugins (introduced with 3.0.2) - code cleanup ===== Smarty 3.0.3 ===== 13/11/2010 - bugfix on {debug} - reverted location of loadPlugin() to Smarty class - fixed comments in plugins - fixed internal_config (removed unwanted code line) - improvement remove last linebreak from {function} definition ===== Smarty 3.0.2 ===== 12/11/2010 - reactivated $error_reporting property handling - fixed typo in compile_continue - fixed security in {fetch} plugin - changed back plugin parameters to two. second is template object with transparent access to Smarty object - fixed {config_load} scoping form compile time to run time ===== Smarty 3.0.0 ===== 11/11/2010 - major update including some API changes 10/11/2010 - observe compile_id also for config files 09/11/2010 -bugfix on complex expressions as start value for {for} tag request_use_auto_globals 04/11/2010 - bugfix do not allow access of dynamic and private object members of assigned objects when security is enabled. 01/11/2010 - bugfix related to E_NOTICE change. {if empty($foo)} did fail when $foo contained a string 28/10/2010 - bugfix on compiling modifiers within $smarty special vars like {$smarty.post.{$foo|lower}} 27/10/2010 - bugfix default parameter values did not work for template functions included with {include} 25/10/2010 - bugfix for E_NOTICE change, array elements did not work as modifier parameter 20/10/2010 - bugfix for the E_NOTICE change 19/10/2010 - change Smarty does no longer mask out E_NOTICE by default during template processing 13/10/2010 - bugfix removed ambiguity between ternary and stream variable in template syntax - bugfix use caching properties of template instead of smarty object when compiling child {block} - bugfix {*block}...{/block*} did throw an exception in template inheritance - bugfix on template inheritance using nested eval or string resource in {extends} tags - bugfix on output buffer handling in isCached() method ===== RC4 ===== 01/10/2010 - added {break} and {continue} tags for flow control of {foreach},{section},{for} and {while} loops - change of 'string' resource. It's no longer evaluated and compiled files are now stored - new 'eval' resource which evaluates a template without saving the compiled file - change in isCached() method to allow multiple calls for the same template 25/09/2010 - bugfix on some compiling modifiers 24/09/2010 - bugfix merge_compiled_includes flag was not restored correctly in {block} tag 22/09/2010 - bugfix on default modifier 18/09/2010 - bugfix untility compileAllConfig() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS - bugfix on templateExists() for extends resource 17/09/2010 - bugfix {$smarty.template} and {$smarty.current_dir} did not compile correctly within {block} tags - bugfix corrected error message on missing template files in extends resource - bugfix untility compileAllTemplates() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS 16/09/2010 - bugfix when a doublequoted modifier parameter did contain Smarty tags and ':' 15/09/2010 - bugfix resolving conflict between '<%'/'%>' as custom Smarty delimiter and ASP tags - use ucfirst for resource name on internal resource class names 12/09/2010 - bugfix for change of 08/09/2010 (final {block} tags in subtemplates did not produce correct results) 10/09/2010 - bugfix for change of 08/09/2010 (final {block} tags in subtemplates did not produce correct results) 08/09/2010 - allow multiple template inheritance branches starting in subtemplates 07/09/2010 - bugfix {counter} and {cycle} plugin assigned result to smarty variable not in local(template) scope - bugfix templates containing just {strip} {/strip} tags did produce an error 23/08/2010 - fixed E_STRICT errors for uninitialized variables 22/08/2010 - added attribute cache_id to {include} tag 13/08/2010 - remove exception_handler property from Smarty class - added Smarty's own exceptions SmartyException and SmartyCompilerException 09/08/2010 - bugfix on modifier with doublequoted strings as parameter containing embedded tags 06/08/2010 - bugfix when cascading some modifier like |strip|strip_tags modifier 05/08/2010 - added plugin type modifiercompiler to produce compiled modifier code - changed standard modifier plugins to the compiling versions whenever possible - bugfix in nocache sections {include} must not cache the subtemplate 02/08/2010 - bugfix strip did not work correctly in conjunction with comment lines 31/07/2010 - bugfix on nocache attribute at {assign} and {append} 30/07/2010 - bugfix passing scope attributes in doublequoted strings did not work at {include} {assign} and {append} 25/07/2010 - another bugfix of change from 23/07/2010 when compiling modifer 24/07/2010 - bugfix of change from 23/07/2010 when compiling modifer 23/07/2010 - changed execution order. A variable filter does now run before modifiers on output of variables - bugfix use always { and } as delimiter for debug.tpl 22/07/2010 - bugfix in templateExists() methode 20/07/2010 - fixed handling of { strip } tag with whitespaces 15/07/2010 - bufix {$smarty.template} does include now the relative path, not just filename ===== RC3 ===== 15/07/2010 - make the date_format modifier work also on objects of the DateTime class - implementation of parsetrees in the parser to close security holes and remove unwanted empty line in HTML output 08/07/2010 - bugfix on assigning multidimensional arrays within templates - corrected bugfix for truncate modifier 07/07/2010 - bugfix the truncate modifier needs to check if the string is utf-8 encoded or not - bugfix support of script files relative to trusted_dir 06/07/2010 - create exception on recursive {extends} calls - fixed reported line number at "unexpected closing tag " exception - bugfix on escape:'mail' modifier - drop exception if 'item' variable is equal 'from' variable in {foreach} tag 01/07/2010 - removed call_user_func_array calls for optimization of compiled code when using registered modifiers and plugins 25/06/2010 - bugfix escaping " when block tags are used within doublequoted strings 24/06/2010 - replace internal get_time() calls with standard PHP5 microtime(true) calls in Smarty_Internal_Utility - added $smarty->register->templateClass() and $smarty->unregister->templateClass() methods for supporting static classes with namespace 22/06/2010 - allow spaces between typecast and value in template syntax - bugfix get correct count of traversables in {foreach} tag 21/06/2010 - removed use of PHP shortags SMARTY_PHP_PASSTHRU mode - improved speed of cache->clear() when a compile_id was specified and use_sub_dirs is true 20/06/2010 - replace internal get_time() calls with standard PHP5 microtime(true) calls - closed security hole when php.ini asp_tags = on 18/06/2010 - added __toString method to the Smarty_Variable class 14/06/2010 - make handling of Smarty comments followed by newline BC to Smarty2 ===== RC2 ===== 13/06/2010 - bugfix Smarty3 did not handle hexadecimals like 0x0F as numerical value - bugifx Smarty3 did not accept numerical constants like .1 or 2. (without a leading or trailing digit) 11/06/2010 - bugfix the lexer did fail on larger {literal} ... {/literal} sections 03/06/2010 - bugfix on calling template functions like Smarty tags 01/06/2010 - bugfix on template functions used with template inheritance - removed /* vim: set expandtab: */ comments - bugfix of auto literal problem introduce with fix of 31/05/2010 31/05/2010 - bugfix the parser did not allow some smarty variables with special name like $for, $if, $else and others. 27/05/2010 - bugfix on object chaining using variable properties - make scope of {counter} and {cycle} tags again global as in Smarty2 26/05/2010 - bugfix removed decrepated register_resource call in smarty_internal_template.php 25/05/2010 - rewrite of template function handling to improve speed - bugfix on file dependency when merge_compiled_includes = true 16/05/2010 - bugfix when passing parameter with numeric name like {foo 1='bar' 2='blar'} 14/05/2010 - bugfix compile new config files if compile_check and force_compile = false - added variable static classes names to template syntax 11/05/2010 - bugfix make sure that the cache resource is loaded in all conditions when template methods getCached... are called externally - reverted the change 0f 30/04/2010. With the exception of forward references template functions can be again called by a standard tag. 10/05/2010 - bugfix on {foreach} and {for} optimizations of 27/04/2010 09/05/2010 - update of template and config file parser because of minor parser generator bugs 07/05/2010 - bugfix on {insert} 06/05/2010 - bugfix when merging compiled templates and objects are passed as parameter of the {include} tag 05/05/2010 - bugfix on {insert} to cache parameter - implementation of $smarty->default_modifiers as in Smarty2 - bugfix on getTemplateVars method 01/05/2010 - bugfix on handling of variable method names at object chaning 30/04/2010 - bugfix when comparing timestamps in sysplugins/smarty_internal_config.php - work around of a substr_compare bug in older PHP5 versions - bugfix on template inheritance for tag names starting with "block" - bugfix on {function} tag with name attribute in doublequoted strings - fix to make calling of template functions unambiguously by madatory usage of the {call} tag ===== RC1 ===== 27/04/2010 - change default of $debugging_ctrl to 'NONE' - optimization of compiled code of {foreach} and {for} loops - change of compiler for config variables 27/04/2010 - bugfix in $smarty->cache->clear() method. (do not cache template object) 17/04/2010 - security fix in {math} plugin 12/04/2010 - bugfix in smarty_internal_templatecompilerbase (overloaded property) - removed parser restrictions in using true,false and null as ID 07/04/2010 - bugfix typo in smarty_internal_templatecompilerbase 31/03/2010 - compile locking by touching old compiled files to avoid concurrent compilations 29/03/2010 - bugfix allow array definitions as modifier parameter - bugfix observe compile_check property when loading config files - added the template object as third filter parameter 25/03/2010 - change of utility->compileAllTemplates() log messages - bugfix on nocache code in {function} tags - new method utility->compileAllConfig() to compile all config files 24/03/2010 - bugfix on register->modifier() error messages 23/03/2010 - bugfix on template inheritance when calling multiple child/parent relations - bugfix on caching mode SMARTY_CACHING_LIFETIME_SAVED and cache_lifetime = 0 22/03/2010 - bugfix make directory separator operating system independend in compileAllTemplates() 21/03/2010 - removed unused code in compileAllTemplates() 19/03/2010 - bugfix for multiple {/block} tags on same line 17/03/2010 - bugfix make $smarty->cache->clear() function independent from caching status 16/03/2010 - bugfix on assign attribute at registered template objects - make handling of modifiers on expression BC to Smarty2 15/03/2010 - bugfix on block plugin calls 11/03/2010 - changed parsing of back to Smarty2 behaviour 08/03/2010 - bugfix on uninitialized properties in smarty_internal_template - bugfix on $smarty->disableSecurity() 04/03/2010 - bugfix allow uppercase chars in registered resource names - bugfix on accessing chained objects of static classes 01/03/2010 - bugfix on nocache code in {block} tags if child template was included by {include} 27/02/2010 - allow block tags inside double quoted string 26/02/2010 - cache modified check implemented - support of access to a class constant from an object (since PHP 5.3) 24/02/2010 - bugfix on expressions in doublequoted string enclosed in backticks - added security property $static_classes for static class security 18/02/2010 - bugfix on parsing Smarty tags inside - bugfix on truncate modifier 17/02/2010 - removed restriction that modifiers did require surrounding parenthesis in some cases - added {$smarty.block.child} special variable for template inheritance 16/02/2010 - bugfix on tags for all php_handling modes - bugfix on parameter of variablefilter.htmlspecialchars.php plugin 14/02/2010 - added missing _plugins property in smarty.class.php - bugfix $smarty.const... inside doublequoted strings and backticks was compiled into wrong PHP code 12/02/2010 - bugfix on nested {block} tags - changed Smarty special variable $smarty.parent to $smarty.block.parent - added support of nested {bock} tags 10/02/2010 - avoid possible notice on $smarty->cache->clear(...), $smarty->clear_cache(....) - allow Smarty tags inside tags in SMARTY_PHP_QUOTE and SMARTY_PHP_PASSTHRU mode - bugfix at new "for" syntax like {for $x=1 to 10 step 2} 09/02/2010 - added $smarty->_tag_stack for tracing block tag hierarchy 08/02/2010 - bugfix use template fullpath at §smarty->cache->clear(...), $smarty->clear_cache(....) - bugfix of cache filename on extended templates when force_compile=true 07/02/2010 - bugfix on changes of 05/02/2010 - preserve line endings type form template source - API changes (see README file) 05/02/2010 - bugfix on modifier and block plugins with same name 02/02/2010 - retaining newlines at registered functions and function plugins 01/25/2010 - bugfix cache resource was not loaded when caching was globally off but enabled at a template object - added test that $_SERVER['SCRIPT_NAME'] does exist in Smarty.class.php 01/22/2010 - new method $smarty->createData([$parent]) for creating a data object (required for bugfixes below) - bugfix config_load() method now works also on a data object - bugfix get_config_vars() method now works also on a data and template objects - bugfix clear_config() method now works also on a data and template objects 01/19/2010 - bugfix on plugins if same plugin was called from a nocache section first and later from a cached section ###beta 7### 01/17/2010 - bugfix on $smarty.const... in double quoted strings 01/16/2010 - internal change of config file lexer/parser on handling of section names - bugfix on registered objects (format parameter of register_object was not handled correctly) 01/14/2010 - bugfix on backslash within single quoted strings - bugfix allow absolute filepath for config files - bugfix on special Smarty variable $smarty.cookies - revert handling of newline on no output tags like {if...} - allow special characters in config file section names for Smarty2 BC 01/13/2010 - bugfix on {if} tags 01/12/2010 - changed back modifer handling in parser. Some restrictions still apply: if modifiers are used in side {if...} expression or in mathematical expressions parentheses must be used. - bugfix the {function..} tag did not accept the name attribute in double quotes - closed possible security hole at tags - bugfix of config file parser on large config files ###beta 6#### 01/11/2010 - added \n to the compiled code of the {if},{else},{elseif},{/if} tags to get output of newlines as expected by the template source - added missing support of insert plugins - added optional nocache attribute to {block} tags in parent template - updated handling supporting now heredocs and newdocs. (thanks to Thue Jnaus Kristensen) 01/09/2010 - bugfix on nocache {block} tags in parent templates 01/08/2010 - bugfix on variable filters. filter/nofilter attributes did not work on output statements 01/07/2010 - bugfix on file dependency at template inheritance - bugfix on nocache code at template inheritance 01/06/2010 - fixed typo in smarty_internal_resource_registered - bugfix for custom delimiter at extends resource and {extends} tag 01/05/2010 - bugfix sha1() calculations at extends resource and some general improvments on sha1() handling 01/03/2010 - internal change on building cache files 01/02/2010 - update cached_timestamp at the template object after cache file is written to avoid possible side effects - use internally always SMARTY_CACHING_LIFETIME_* constants 01/01/2010 - bugfix for obtaining plugins which must be included (related to change of 12/30/2009) - bugfix for {php} tag (trow an exception if allow_php_tag = false) 12/31/2009 - optimization of generated code for doublequoted strings containing variables - rewrite of {function} tag handling - can now be declared in an external subtemplate - can contain nocache sections (nocache_hash handling) - can be called in noccache sections (nocache_hash handling) - new {call..} tag to call template functions with a variable name {call name=$foo} - fixed nocache_hash handling in merged compiled templates 12/30/2009 - bugfix for plugins defined in the script as smarty_function_foo 12/29/2009 - use sha1() for filepath encoding - updates on nocache_hash handling - internal change on merging some data - fixed cache filename for custom resources 12/28/2009 - update for security fixes - make modifier plugins always trusted - fixed bug loading modifiers in child template at template inheritance 12/27/2009 --- this is a major update with a couple of internal changes --- - new config file lexer/parser (thanks to Thue Jnaus Kristensen) - template lexer/parser fixes for PHP and {literal} handing (thanks to Thue Jnaus Kristensen) - fix on registered plugins with different type but same name - rewrite of plugin handling (optimized execution speed) - closed a security hole regarding PHP code injection into cache files - fixed bug in clear cache handling - Renamed a couple of internal classes - code cleanup for merging compiled templates - couple of runtime optimizations (still not all done) - update of getCachedTimestamp() - fixed bug on modifier plugins at nocache output 12/19/2009 - bugfix on comment lines in config files 12/17/2009 - bugfix of parent/global variable update at included/merged subtemplates - encode final template filepath into filename of compiled and cached files - fixed {strip} handling in auto literals 12/16/2009 - update of changelog - added {include file='foo.tpl' inline} inline option to merge compiled code of subtemplate into the calling template 12/14/2009 - fixed sideefect of last modification (objects in array index did not work anymore) 12/13/2009 - allow boolean negation ("!") as operator on variables outside {if} tag 12/12/2009 - bugfix on single quotes inside {function} tag - fix short append/prepend attributes in {block} tags 12/11/2009 - bugfix on clear_compiled_tpl (avoid possible warning) 12/10/2009 - bugfix on {function} tags and template inheritance 12/05/2009 - fixed problem when a cached file was fetched several times - removed unneeded lexer code 12/04/2009 - added max attribute to for loop - added security mode allow_super_globals 12/03/2009 - template inheritance: child templates can now call functions defined by the {function} tag in the parent template - added {for $foo = 1 to 5 step 2} syntax - bugfix for {$foo.$x.$y.$z} 12/01/2009 - fixed parsing of names of special formated tags like if,elseif,while,for,foreach - removed direct access to constants in templates because of some syntax problems - removed cache resource plugin for mysql from the distribution - replaced most hard errors (exceptions) by softerrors(trigger_error) in plugins - use $template_class property for template class name when compiling {include},{eval} and {extends} tags 11/30/2009 - map 'true' to SMARTY_CACHING_LIFETIME_CURRENT for the $smarty->caching parameter - allow {function} tags within {block} tags 11/28/2009 - ignore compile_id at debug template - added direct access to constants in templates - some lexer/parser optimizations 11/27/2009 - added cache resource MYSQL plugin 11/26/2009 - bugfix on nested doublequoted strings - correct line number on unknown tag error message - changed {include} compiled code - fix on checking dynamic varibales with error_unassigned = true 11/25/2009 - allow the following writing for boolean: true, TRUE, True, false, FALSE, False - {strip} tag functionality rewritten 11/24/2009 - bugfix for $smarty->config_overwrite = false 11/23/2009 - suppress warnings on unlink caused by race conditions - correct line number on unknown tag error message ------- beta 5 11/23/2009 - fixed configfile parser for text starting with a numeric char - the default_template_handler_func may now return a filepath to a template source 11/20/2009 - bugfix for empty config files - convert timestamps of registered resources to integer 11/19/2009 - compiled templates are no longer touched with the filemtime of template source 11/18/2009 - allow integer as attribute name in plugin calls ------- beta 4 11/18/2009 - observe umask settings when setting file permissions - avoide unneeded cache file creation for subtemplates which did occur in some situations - make $smarty->_current_file available during compilation for Smarty2 BC 11/17/2009 - sanitize compile_id and cache_id (replace illegal chars with _) - use _dir_perms and _file_perms properties at file creation - new constant SMARTY_RESOURCE_DATE_FORMAT (default '%b %e, %Y') which is used as default format in modifier date_format - added {foreach $array as $key=>$value} syntax - renamed extend tag and resource to extends: {extends file='foo.tol'} , $smarty->display('extends:foo.tpl|bar.tpl); - bugfix cycle plugin 11/15/2009 - lexer/parser optimizations on quoted strings 11/14/2009 - bugfix on merging compiled templates when source files got removed or renamed. - bugfix modifiers on registered object tags - fixed locaion where outputfilters are running - fixed config file definitions at EOF - fix on merging compiled templates with nocache sections in nocache includes - parser could run into a PHP error on wrong file attribute 11/12/2009 - fixed variable filenames in {include_php} and {insert} - added scope to Smarty variables in the {block} tag compiler - fix on nocache code in child {block} tags 11/11/2009 - fixed {foreachelse}, {forelse}, {sectionelse} compiled code at nocache variables - removed checking for reserved variables - changed debugging handling 11/10/2009 - fixed preg_qoute on delimiters 11/09/2009 - lexer/parser bugfix - new SMARTY_SPL_AUTOLOAD constant to control the autoloader option - bugfix for {function} block tags in included templates 11/08/2009 - fixed alphanumeric array index - bugfix on complex double quoted strings 11/05/2009 - config_load method can now be called on data and template objects 11/04/2009 - added typecasting support for template variables - bugfix on complex indexed special Smarty variables 11/03/2009 - fixed parser error on objects with special smarty vars - fixed file dependency for {incude} inside {block} tag - fixed not compiling on non existing compiled templates when compile_check = false - renamed function names of autoloaded Smarty methods to Smarty_Method_.... - new security_class property (default is Smarty_Security) 11/02/2009 - added neq,lte,gte,mod as aliases to if conditions - throw exception on illegal Smarty() constructor calls 10/31/2009 - change of filenames in sysplugins folder for internal spl_autoload function - lexer/parser changed for increased compilation speed 10/27/2009 - fixed missing quotes in include_php.php 10/27/2009 - fixed typo in method.register_resource - pass {} through as literal 10/26/2009 - merge only compiled subtemplates into the compiled code of the main template 10/24/2009 - fixed nocache vars at internal block tags - fixed merging of recursive includes 10/23/2009 - fixed nocache var problem 10/22/2009 - fix trimwhitespace outputfilter parameter 10/21/2009 - added {$foo++}{$foo--} syntax - buxfix changed PHP "if (..):" to "if (..){" because of possible bad code when concenating PHP tags - autoload Smarty internal classes - fixed file dependency for config files - some code optimizations - fixed function definitions on some autoloaded methodes - fixed nocache variable inside if condition of {if} tag 10/20/2009 - check at compile time for variable filter to improve rendering speed if no filter is used - fixed bug at combination of {elseif} tag and {...} in double quoted strings of static class parameter 10/19/2009 - fixed compiled template merging on variable double quoted strings as name - fixed bug in caching mode 2 and cache_lifetime -1 - fixed modifier support on block tags 10/17/2009 - remove ?>\n'bar','foo2'=>'blar'); $smarty->display('my.tpl',$data); 09/29/2009 - changed {php} tag handling - removed support of Smarty::instance() - removed support of PHP resource type - improved execution speed of {foreach} tags - fixed bug in {section} tag 09/23/2009 - improvements and bugfix on {include} tag handling NOTICE: existing compiled template and cache files must be deleted 09/19/2009 - replace internal "eval()" calls by "include" during rendering process - speed improvment for templates which have included subtemplates the compiled code of included templates is merged into the compiled code of the parent template - added logical operator "xor" for {if} tag - changed parameter ordering for Smarty2 BC fetch($template, $cache_id = null, $compile_id = null, $parent = null) display($template, $cache_id = null, $compile_id = null, $parent = null) createTemplate($template, $cache_id = null, $compile_id = null, $parent = null) - property resource_char_set is now replaced by constant SMARTY_RESOURCE_CHAR_SET - fixed handling of classes in registered blocks - speed improvement of lexer on text sections 09/01/2009 - dropped nl2br as plugin - added '<>' as comparission operator in {if} tags - cached caching_lifetime property to cache_liftime for backward compatibility with Smarty2. {include} optional attribute is also now cache_lifetime - fixed trigger_error methode (moved into Smarty class) - version is now Beta!!! 08/30/2009 - some speed optimizations on loading internal plugins 08/29/2009 - implemented caching of registered Resources - new property 'auto_literal'. if true(default) '{ ' and ' }' interpreted as literal, not as Smarty delimiter 08/28/2009 - Fix on line breaks inside {if} tags 08/26/2009 - implemented registered resources as in Smarty2. NOTE: caching does not work yet - new property 'force_cache'. if true it forces the creation of a new cache file - fixed modifiers on arrays - some speed optimization on loading internal classes 08/24/2009 - fixed typo in lexer definition for '!==' operator - bugfix - the ouput of plugins was not cached - added global variable SCRIPT_NAME 08/21/2009 - fixed problems whitespace in conjuction with custom delimiters - Smarty tags can now be used as value anywhere 08/18/2009 - definition of template class name moded in internal.templatebase.php - whitespace parser changes 08/12/2009 - fixed parser problems 08/11/2009 - fixed parser problems with custom delimiter 08/10/2009 - update of mb support in plugins 08/09/2009 - fixed problems with doublequoted strings at name attribute of {block} tag - bugfix at scope attribute of {append} tag 08/08/2009 - removed all internal calls of Smarty::instance() - fixed code in double quoted strings 08/05/2009 - bugfix mb_string support - bugfix of \n.\t etc in double quoted strings 07/29/2009 - added syntax for variable config vars like #$foo# 07/28/2009 - fixed parsing of $smarty.session vars containing objects 07/22/2009 - fix of "$" handling in double quoted strings 07/21/2009 - fix that {$smarty.current_dir} return correct value within {block} tags. 07/20/2009 - drop error message on unmatched {block} {/block} pairs 07/01/2009 - fixed smarty_function_html_options call in plugin function.html_select_date.php (missing ,) 06/24/2009 - fixed smarty_function_html_options call in plugin function.html_select_date.php 06/22/2009 - fix on \n and spaces inside smarty tags - removed request_use_auto_globals propert as it is no longer needed because Smarty 3 will always run under PHP 5 06/18/2009 - fixed compilation of block plugins when caching enabled - added $smarty.current_dir which returns the current working directory 06/14/2009 - fixed array access on super globals - allow smarty tags within xml tags 06/13/2009 - bugfix at extend resource: create unique files for compiled template and cache for each combination of template files - update extend resource to handle appen and prepend block attributes - instantiate classes of plugins instead of calling them static 06/03/2009 - fixed repeat at block plugins 05/25/2009 - fixed problem with caching of compiler plugins 05/14/2009 - fixed directory separator handling 05/09/2009 - syntax change for stream variables - fixed bug when using absolute template filepath and caching 05/08/2009 - fixed bug of {nocache} tag in included templates 05/06/2009 - allow that plugins_dir folder names can end without directory separator 05/05/2009 - fixed E_STRICT incompabilities - {function} tag bug fix - security policy definitions have been moved from plugins folder to file Security.class.php in libs folder - added allow_super_global configuration to security 04/30/2009 - functions defined with the {function} tag now always have global scope 04/29/2009 - fixed problem with directory setter methodes - allow that cache_dir can end without directory separator 04/28/2009 - the {function} tag can no longer overwrite standard smarty tags - inherit functions defined by the {fuction} tag into subtemplates - added {while } sytax to while tag 04/26/2009 - added trusted stream checking to security - internal changes at file dependency check for caching 04/24/2009 - changed name of {template} tag to {function} - added new {template} tag 04/23/2009 - fixed access of special smarty variables from included template 04/22/2009 - unified template stream syntax with standard Smarty resource syntax $smarty->display('mystream:mytemplate') 04/21/2009 - change of new style syntax for forach. Now: {foreach $array as $var} like in PHP 04/20/2009 - fixed "$foo.bar ..." variable replacement in double quoted strings - fixed error in {include} tag with variable file attribute 04/18/2009 - added stream resources ($smarty->display('mystream://mytemplate')) - added stream variables {$mystream:myvar} 04/14/2009 - fixed compile_id handling on {include} tags - fixed append/prepend attributes in {block} tag - added {if 'expression' is in 'array'} syntax - use crc32 as hash for compiled config files. 04/13/2009 - fixed scope problem with parent variables when appending variables within templates. - fixed code for {block} without childs (possible sources for notice errors removed) 04/12/2009 - added append and prepend attribute to {block} tag 04/11/2009 - fixed variables in 'file' attribute of {extend} tag - fixed problems in modifiers (if mb string functions not present) 04/10/2009 - check if mb string functions available otherwise fallback to normal string functions - added global variable scope SMARTY_GLOBAL_SCOPE - enable 'variable' filter by default - fixed {$smarty.block.parent.foo} - implementation of a 'variable' filter as replacement for default modifier 04/09/2009 - fixed execution of filters defined by classes - compile the always the content of {block} tags to make shure that the filters are running over it - syntax corrections on variable object property - syntax corrections on array access in dot syntax 04/08/2009 - allow variable object property 04/07/2009 - changed variable scopes to SMARTY_LOCAL_SCOPE, SMARTY_PARENT_SCOPE, SMARTY_ROOT_SCOPE to avoid possible conflicts with user constants - Smarty variable global attribute replaced with scope attribute 04/06/2009 - variable scopes LOCAL_SCOPE, PARENT_SCOPE, ROOT_SCOPE - more getter/setter methodes 04/05/2009 - replaced new array looping syntax {for $foo in $array} with {foreach $foo in $array} to avoid confusion - added append array for short form of assign {$foo[]='bar'} and allow assignments to nested arrays {$foo['bla']['blue']='bar'} 04/04/2009 - make output of template default handlers cachable and save compiled source - some fixes on yesterdays update 04/03/2006 - added registerDefaultTemplateHandler methode and functionallity - added registerDefaultPluginHandler methode and functionallity - added {append} tag to extend Smarty array variabled 04/02/2009 - added setter/getter methodes - added $foo@first and $foo@last properties at {for} tag - added $set_timezone (true/false) property to setup optionally the default time zone 03/31/2009 - bugfix smarty.class and internal.security_handler - added compile_check configuration - added setter/getter methodes 03/30/2009 - added all major setter/getter methodes 03/28/2009 - {block} tags can be nested now - md5 hash function replace with crc32 for speed optimization - file order for exted resource inverted - clear_compiled_tpl and clear_cache_all will not touch .svn folder any longer 03/27/2009 - added extend resource 03/26/2009 - fixed parser not to create error on `word` in double quoted strings - allow PHP array(...) - implemented $smarty.block.name.parent to access parent block content - fixed smarty.class 03/23/2009 - fixed {foreachelse} and {forelse} tags 03/22/2009 - fixed possible sources for notice errors - rearrange SVN into distribution and development folders 03/21/2009 - fixed exceptions in function plugins - fixed notice error in Smarty.class.php - allow chained objects to span multiple lines - fixed error in modifers 03/20/2009 - moved /plugins folder into /libs folder - added noprint modifier - autoappend a directory separator if the xxxxx_dir definition have no trailing one 03/19/2009 - allow array definition as modifer paramter - changed modifier to use multi byte string funktions. 03/17/2009 - bugfix 03/15/2009 - added {include_php} tag for BC - removed @ error suppression - bugfix fetch did always repeat output of first call when calling same template several times - PHPunit tests extended 03/13/2009 - changed block syntax to be Smarty like {block:titel} -> {block name=titel} - compiling of {block} and {extend} tags rewriten for better performance - added special Smarty variable block ($smarty.block.foo} returns the parent definition of block foo - optimization of {block} tag compiled code. - fixed problem with escaped double quotes in double quoted strings 03/12/2009 - added support of template inheritance by {extend } and {block } tags. - bugfix comments within literals - added scope attribuie to {include} tag 03/10/2009 - couple of bugfixes and improvements - PHPunit tests extended 03/09/2009 - added support for global template vars. {assign_global...} $smarty->assign_global(...) - added direct_access_security - PHPunit tests extended - added missing {if} tag conditions like "is div by" etc. 03/08/2009 - splitted up the Compiler class to make it easier to use a coustom compiler - made default plugins_dir relative to Smarty root and not current working directory - some changes to make the lexer parser better configurable - implemented {section} tag for Smarty2 BC 03/07/2009 - fixed problem with comment tags - fixed problem with #xxxx in double quoted string - new {while} tag implemented - made lexer and paser class configurable as $smarty property - Smarty method get_template_vars implemented - Smarty method get_registered_object implemented - Smarty method trigger_error implemented - PHPunit tests extended 03/06/2009 - final changes on config variable handling - parser change - unquoted strings will by be converted into single quoted strings - PHPunit tests extended - some code cleanup - fixed problem on catenate strings with expression - update of count_words modifier - bugfix on comment tags 03/05/2009 - bugfix on tag with caching enabled - changes on exception handling (by Monte) 03/04/2009 - added support for config variables - bugfix on tag 03/02/2009 - fixed unqouted strings within modifier parameter - bugfix parsing of mofifier parameter 03/01/2009 - modifier chaining works now as in Smarty2 02/28/2009 - changed handling of unqouted strings 02/26/2009 - bugfix - changed $smarty.capture.foo to be global for Smarty2 BC. 02/24/2009 - bugfix {php} {/php} tags for backward compatibility - bugfix for expressions on arrays - fixed usage of "null" value - added $smarty.foreach.foo.first and $smarty.foreach.foo.last 02/06/2009 - bugfix for request variables without index for example $smarty.get - experimental solution for variable functions in static class 02/05/2009 - update of popup plugin - added config variables to template parser (load config functions still missing) - parser bugfix for empty quoted strings 02/03/2009 - allow array of objects as static class variabales. - use htmlentities at source output at template errors. 02/02/2009 - changed search order on modifiers to look at plugins folder first - parser bug fix for modifier on array elements $foo.bar|modifier - parser bug fix on single quoted srings - internal: splitted up compiler plugin files 02/01/2009 - allow method chaining on static classes - special Smarty variables $smarty.... implemented - added {PHP} {/PHP} tags for backward compatibility 01/31/2009 - added {math} plugin for Smarty2 BC - added template_exists method - changed Smarty3 method enable_security() to enableSecurity() to follow camelCase standards 01/30/2009 - bugfix in single quoted strings - changed syntax for variable property access from $foo:property to $foo@property because of ambiguous syntax at modifiers 01/29/2009 - syntax for array definition changed from (1,2,3) to [1,2,3] to remove ambiguous syntax - allow {for $foo in [1,2,3]} syntax - bugfix in double quoted strings - allow tags in template even if short_tags are enabled 01/28/2009 - fixed '!==' if condition. 01/28/2009 - added support of {strip} {/strip} tag. 01/27/2009 - bug fix on backticks in double quoted strings at objects 01/25/2009 - Smarty2 modfiers added to SVN 01/25/2009 - bugfix allow arrays at object properties in Smarty syntax - the template object is now passed as additional parameter at plugin calls - clear_compiled_tpl methode completed 01/20/2009 - access to class constants implemented ( class::CONSTANT ) - access to static class variables implemented ( class::$variable ) - call of static class methodes implemented ( class::methode() ) 01/16/2009 - reallow leading _ in variable names {$_var} - allow array of objects {$array.index->methode()} syntax - finished work on clear_cache and clear_cache_all methodes 01/11/2009 - added support of {literal} tag - added support of {ldelim} and {rdelim} tags - make code compatible to run with E_STRICT error setting 01/08/2009 - moved clear_assign and clear_all_assign to internal.templatebase.php - added assign_by_ref, append and append_by_ref methodes 01/02/2009 - added load_filter methode - fished work on filter handling - optimization of plugin loading 12/30/2008 - added compiler support of registered object - added backtick support in doubled quoted strings for backward compatibility - some minor bug fixes and improvments 12/23/2008 - fixed problem of not working "not" operator in if-expressions - added handling of compiler function plugins - finished work on (un)register_compiler_function methode - finished work on (un)register_modifier methode - plugin handling from plugins folder changed for modifier plugins deleted - internal.modifier.php - added modifier chaining to parser 12/17/2008 - finished (un)register_function methode - finished (un)register_block methode - added security checking for PHP functions in PHP templates - plugin handling from plugins folder rewritten new - internal.plugin_handler.php deleted - internal.block.php deleted - internal.function.php - removed plugin checking from security handler 12/16/2008 - new start of this change_log file