library/smarty/change_log.txt
changeset 46 f11c31f7fa3e
parent 45 a56e7f9a0463
child 47 03388ec805b4
equal deleted inserted replaced
45:a56e7f9a0463 46:f11c31f7fa3e
     1  ===== 3.1.27===== (18.06.2015)
       
     2 18.06.2015
       
     3  - bugfix another update on file path normalization failed on path containing something like "/.foo/" https://github.com/smarty-php/smarty/issues/56
       
     4 
       
     5  ===== 3.1.26===== (18.06.2015)
       
     6 18.06.2015
       
     7  - bugfix file path normalization failed on path containing something like "/.foo/" https://github.com/smarty-php/smarty/issues/56
       
     8 
       
     9 17.06.2015
       
    10  - bugfix calling a plugin with nocache option but no other attributes like {foo nocache} caused call to undefined function https://github.com/smarty-php/smarty/issues/55
       
    11 
       
    12  ===== 3.1.25===== (15.06.2015)
       
    13  15.06.2015
       
    14   - optimization of smarty_cachereource_keyvaluestore.php code
       
    15 
       
    16  14.06.2015
       
    17   - bugfix a relative sub template path could fail if template_dir path did contain /../ https://github.com/smarty-php/smarty/issues/50
       
    18   - optimization rework of path normalization
       
    19   - bugfix an output tag with variable, modifier followed by an operator like {$foo|modifier+1} did fail https://github.com/smarty-php/smarty/issues/53
       
    20 
       
    21  13.06.2015
       
    22   - bugfix a custom cache resource using smarty_cachereource_keyvaluestore.php did fail if php.ini mbstring.func_overload = 2 (forum topic 25568)
       
    23 
       
    24  11.06.2015
       
    25   - bugfix the lexer could hang on very large quoted strings (forum topic 25570)
       
    26 
       
    27  08.06.2015
       
    28   - bugfix using {$foo} as array index like $bar.{$foo} or in double quoted string like "some {$foo} thing" failed https://github.com/smarty-php/smarty/issues/49
       
    29 
       
    30  04.06.2015
       
    31   - bugfix possible error message on unset() while compiling {block} tags https://github.com/smarty-php/smarty/issues/46
       
    32 
       
    33  01.06.2015
       
    34   - bugfix <?xml ... ?> including template variables broken  since 3.1.22 https://github.com/smarty-php/smarty/issues/47
       
    35   
       
    36  27.05.2015
       
    37   - bugfix {include} with variable file name must not create by default individual cache file (since 3.1.22) https://github.com/smarty-php/smarty/issues/43
       
    38   
       
    39  24.05.2015
       
    40   - bugfix if condition string 'neq' broken due to a typo https://github.com/smarty-php/smarty/issues/42
       
    41 
       
    42  ===== 3.1.24===== (23.05.2015)
       
    43  23.05.2015
       
    44   - improvement on php_handling to allow very large PHP sections, better error handling
       
    45   - improvement allow extreme large comment sections (forum 25538)
       
    46   
       
    47  21.05.2015
       
    48   - bugfix broken PHP 5.2 compatibility when compiling <?php tags https://github.com/smarty-php/smarty/issues/40
       
    49   - bugfix named {foreach} comparison like $smarty.foreach.foobar.index > 1 did compile into wrong code https://github.com/smarty-php/smarty/issues/41
       
    50   
       
    51  19.05.2015
       
    52   - bugfix compiler did overwrite existing variable value when setting the nocache attribute https://github.com/smarty-php/smarty/issues/39
       
    53   - bugfix output filter trimwhitespace could run into the pcre.backtrack_limit on large output (code.google issue 220)
       
    54   - bugfix compiler could run into the pcre.backtrack_limit on larger comment or {php} tag sections (forum 25538)
       
    55 
       
    56  18.05.2015
       
    57   - improvement introduce shortcuts in lexer/parser rules for most frequent terms for higher
       
    58     compilation speed 
       
    59 
       
    60  16.05.2015
       
    61   - bugfix {php}{/php} did work just for single lines https://github.com/smarty-php/smarty/issues/33
       
    62   - improvement remove not needed ?><?php transitions from compiled code
       
    63   - improvement reduce number of lexer tokens on operators and if conditions
       
    64   - improvement higher compilation speed by modified lexer/parser generator at "smarty/smarty-lexer"
       
    65  
       
    66  13.05.2015
       
    67   - improvement remove not needed ?><?php transitions from compiled code
       
    68   - improvement of debugging:
       
    69       - use fresh Smarty object to display the debug console because of possible problems when the Smarty
       
    70         was extended or Smarty properties had been modified in the class source
       
    71       - display Smarty version number
       
    72       - Truncate lenght of Origin display and extend strin value display to 80 character
       
    73   - bugfix in Smarty_Security  'nl2br' should be a trusted modifier, not PHP function (code.google issue 223)
       
    74   
       
    75  12.05.2015
       
    76   - bugfix {$smarty.constant.TEST} did fail  on undefined constant https://github.com/smarty-php/smarty/issues/28
       
    77   - bugfix access to undefined config variable like {#undef#} did fail https://github.com/smarty-php/smarty/issues/29
       
    78   - bugfix in nested {foreach} saved item attributes got overwritten https://github.com/smarty-php/smarty/issues/33
       
    79 
       
    80  ===== 3.1.23 ===== (12.05.2015)
       
    81  12.05.2015
       
    82   - bugfix of smaller performance issue introduce in 3.1.22 when caching is enabled
       
    83   - bugfix missig entry for smarty-temmplate-config in autoloader
       
    84    
       
    85  ===== 3.1.22 ===== tag was deleted because 3.1.22 did fail caused by the missing entry for smarty-temmplate-config in autoloader
       
    86  10.05.2015
       
    87   - bugfix custom cache resource did not observe compile_id and cache_id when $cache_locking == true
       
    88   - bugfix cache lock was not handled correctly after timeout when $cache_locking == true
       
    89   - improvement added constants for $debugging
       
    90 
       
    91  07.05.2015
       
    92   - improvement of the debugging console. Read NEW_FEATURES.txt
       
    93   - optimization of resource class loading
       
    94 
       
    95  06.05.2015
       
    96   - bugfix in 3.1.22-dev cache resource must not be loaded for subtemplates
       
    97   - bugfix/improvement in 3.1.22-dev cache locking did not work as expected
       
    98   
       
    99  05.05.2015
       
   100   - optimization on cache update when main template is modified
       
   101   - optimization move <?php ?> handling from parser to new compiler module
       
   102 
       
   103  05.05.2015
       
   104   - bugfix code could be messed up when {tags} are used in multiple attributes https://github.com/smarty-php/smarty/issues/23
       
   105  
       
   106  04.05.2015
       
   107   - bugfix Smarty_Resource::parseResourceName incompatible with Google AppEngine (https://github.com/smarty-php/smarty/issues/22)
       
   108   - improvement use is_file() checks to avoid errors suppressed by @ which could still cause problems (https://github.com/smarty-php/smarty/issues/24)
       
   109 
       
   110  28.04.2015
       
   111   - bugfix plugins of merged subtemplates not loaded in 3.1.22-dev (forum topic 25508) 2nd fix
       
   112 
       
   113  28.04.2015
       
   114   - bugfix plugins of merged subtemplates not loaded in 3.1.22-dev (forum topic 25508)
       
   115  
       
   116  23.04.2015 
       
   117   - bugfix a nocache template variable used as parameter at {insert} was by mistake cached
       
   118   
       
   119  20.04.2015
       
   120   - bugfix at a template function containing nocache code a parmeter could overwrite a template variable of same name
       
   121   
       
   122  27.03.2015
       
   123   - bugfix Smarty_Security->allow_constants=false; did also disable true, false and null (change of 16.03.2015)
       
   124   - improvement added a whitelist for trusted constants to security Smarty_Security::$trusted_constants (forum topic 25471)
       
   125 
       
   126  20.03.2015
       
   127   - bugfix make sure that function properties get saved only in compiled files containing the fuction definition {forum topic 25452}
       
   128   - bugfix correct update of global variable values on exit of template functions. (reported under Smarty Developers)
       
   129   
       
   130  16.03.2015
       
   131  - bugfix  problems with {function}{/function} and {call} tags in different subtemplate cache files {forum topic 25452}
       
   132  - bugfix  Smarty_Security->allow_constants=false; did not disallow direct usage of defined constants like {SMARTY_DIR} {forum topic 25457}
       
   133  - bugfix  {block}{/block} tags did not work inside double quoted strings https://github.com/smarty-php/smarty/issues/18
       
   134  
       
   135  
       
   136  15.03.2015
       
   137  - bugfix  $smarty->compile_check must be restored before rendering of a just updated cache file {forum 25452}
       
   138  
       
   139  14.03.2015
       
   140  - bugfix  {nocache}  {/nocache} tags corrupted code when used within a nocache section caused by a nocache template variable.
       
   141  
       
   142  - bugfix  template functions defined with {function} in an included subtemplate could not be called in nocache
       
   143            mode with {call... nocache} if the subtemplate had it's own cache file {forum 25452}
       
   144  
       
   145  10.03.2015
       
   146  - bugfix {include ... nocache} whith variable file or compile_id attribute was not executed in nocache mode.
       
   147  
       
   148  12.02.2015
       
   149  - bugfix multiple Smarty::fetch() of same template when $smarty->merge_compiled_includes = true; could cause function already defined error
       
   150  
       
   151  11.02.2015
       
   152  - bugfix recursive {includes} did create E_NOTICE message when $smarty->merge_compiled_includes = true; (github issue #16)
       
   153  
       
   154  22.01.2015
       
   155  - new feature security can now control access to static methods and properties
       
   156                 see also NEW_FEATURES.txt
       
   157 
       
   158  21.01.2015
       
   159  - bugfix clearCompiledTemplates(), clearAll() and clear() could try to delete whole drive at wrong path permissions because realpath() fail (forum 25397)
       
   160  - bugfix 'self::' and 'parent::' was interpreted in template syntax as static class 
       
   161  
       
   162  04.01.2015
       
   163  - push last weeks changes to github
       
   164 
       
   165  - different optimizations
       
   166  - improvement automatically create different versions of compiled templates and config files depending
       
   167    on property settings.
       
   168  - optimization restructure template processing by moving code into classes it better belongs to
       
   169  - optimization restructure config file processing
       
   170 
       
   171  31.12.2014
       
   172  - bugfix use function_exists('mb_get_info') for setting Smarty::$_MBSTRING. 
       
   173    Function mb_split could be overloaded depending on php.ini mbstring.func_overload
       
   174    
       
   175    
       
   176  29.12.2014
       
   177  - new feature security can now limit the template nesting level by property $max_template_nesting
       
   178                 see also NEW_FEATURES.txt (forum 25370)
       
   179 
       
   180  29.12.2014
       
   181  - new feature security can now disable special $smarty variables listed in property $disabled_special_smarty_vars
       
   182                 see also NEW_FEATURES.txt (forum 25370)
       
   183 
       
   184  27.12.2014
       
   185   - bugfix clear internal _is_file_cache when plugins_dir was modified
       
   186 
       
   187  13.12.2014
       
   188   - improvement optimization of lexer and parser resulting in a up to 30% higher compiling speed
       
   189  
       
   190  11.12.2014
       
   191   - bugfix resolve parser ambiguity between constant print tag {CONST} and other smarty tags after change of 09.12.2014
       
   192   
       
   193  09.12.2014
       
   194   - bugfix variables $null, $true and $false did not work after the change of 12.11.2014 (forum 25342)
       
   195   - bugfix call of template function by a variable name did not work after latest changes (forum 25342)
       
   196   
       
   197  23.11.2014
       
   198   - bugfix a plugin with attached modifier could fail if the tag was immediately followed by another Smarty tag (since 3.1.21) (forum 25326)
       
   199 
       
   200  13.11.2014
       
   201   - improvement move autoload code into Autoloader.php. Use Composer autoloader when possible
       
   202 
       
   203  12.11.2014
       
   204  - new feature added support of namespaces to template code
       
   205 
       
   206  08.11.2014 - 10.11.2014
       
   207  - bugfix subtemplate called in nocache mode could be called with wrong compile_id when it did change on one of the calling templates
       
   208  - improvement add code of template functions called in nocache mode dynamically to cache file (related to bugfix of 01.11.2014)
       
   209  - bugfix Debug Console did not include all data from merged compiled subtemplates
       
   210 
       
   211  04.11.2014
       
   212  - new feature $smarty->debug = true; => overwrite existing Debug Console window (old behaviour)
       
   213                $smarty->debug = 2; => individual Debug Console window by template name
       
   214  
       
   215  03.11.2014
       
   216  - bugfix Debug Console did not show included subtemplates since 3.1.17 (forum 25301)
       
   217  - bugfix Modifier debug_print_var did not limit recursion or prevent recursive object display at Debug Console
       
   218     (ATTENTION: parameter order has changed to be able to specify maximum recursion)
       
   219  - bugfix Debug consol did not include subtemplate information with $smarty->merge_compiled_includes = true 
       
   220  - improvement The template variables are no longer displayed as objects on the Debug Console
       
   221  - improvement $smarty->createData($parent = null, $name = null) new optional name parameter for display at Debug Console
       
   222  - addition of some hooks for future extension of Debug Console
       
   223 
       
   224  01.11.2014
       
   225  - bugfix and enhancement on subtemplate {include} and template {function} tags.
       
   226    * Calling a template which has a nocache section could fail if it was called from a cached and a not cached subtemplate.
       
   227    * Calling the same subtemplate cached and not cached with the $smarty->merge_compiled_includes enabled could cause problems
       
   228    * Many smaller related changes
       
   229 
       
   230  30.10.2014
       
   231  - bugfix access to class constant by object like {$object::CONST} or variable class name {$class::CONST} did not work (forum 25301)
       
   232 
       
   233  26.10.2014
       
   234  - bugfix E_NOTICE message was created during compilation when ASP tags '<%' or '%>' are in template source text
       
   235  - bugfix merge_compiled_includes option failed when caching  enables and same subtemplate was included cached and not cached
       
   236  
       
   237  ===== 3.1.21 ===== (18.10.2014)
       
   238  18.10.2014
       
   239   - composer moved to github
       
   240 
       
   241  17.10.2014
       
   242  - bugfix on $php_handling security and optimization of smarty_internal_parsetree (Thue Kristensen)
       
   243 
       
   244  16.10.2014
       
   245  - bugfix composer.json update
       
   246 
       
   247  15.10.2014
       
   248  - bugfix calling a new created cache file with fetch() and Smarty::CACHING_LIFETIME_SAVED multiple times did fail (forum 22350)
       
   249 
       
   250  14.10.2014
       
   251  - bugfix any tag placed within "<script language=php>" will throw a security exception to close all thinkable holes
       
   252  - bugfix classmap in root composer.json should start at "libs/..."
       
   253  - improvement cache is_file(file_exists) results of loadPlugin() to avoid unnecessary calls during compilation (Issue 201}
       
   254 
       
   255  12.10.2014
       
   256  - bugfix a comment like "<script{*foo*} language=php>" bypassed $php_handling checking (Thue Kristensen)
       
   257  - bugfix change of 08.10.2014 could create E_NOTICE meassage when using "<?php" tags
       
   258  - bugfix "<script language=php>" with $php_handling PHP_PASSTHRU was executed in {nocache} sections
       
   259 
       
   260  ===== 3.1.20 ===== (09.10.2014)
       
   261  08.10.2014
       
   262  - bugfix security mode of "<script language=php>" must be controlled by $php_handling property (Thue Kristensen)
       
   263  
       
   264  01.10.2014
       
   265  - bugfix template resource of inheritance blocks could get invalid if the default resource type is not 'file'(Issue 202)
       
   266  - bugfix existing child {block} tag must override parent {block} tag append / prepend setting (topic 25259)
       
   267  
       
   268  02.08.2014
       
   269  - bugfix modifier wordwrap did output break string wrong if first word was exceeding length with cut = true (topic 25193)
       
   270  
       
   271  24.07.2014
       
   272  - bugfix cache clear when cache folder does not exist
       
   273 
       
   274  16.07.2014
       
   275  - enhancement remove BOM automatically from template source (topic 25161)
       
   276  
       
   277  04.07.2014
       
   278  - bugfix the bufix of 02.06.2014 broke correct handling of child templates with same name but different template folders in extends resource (issue 194 and topic 25099)
       
   279  
       
   280  ===== 3.1.19 ===== (30.06.2014)
       
   281  20.06.2014
       
   282  - bugfix template variables could not be passed as parameter in {include} when the include was in a {nocache} section (topic 25131)
       
   283  
       
   284  17.06.2014
       
   285  - bugfix large template text of some charsets could cause parsing errors (topic 24630)
       
   286  
       
   287  08.06.2014
       
   288  - bugfix registered objects did not work after spelling fixes of 06.06.2014
       
   289  - bugfix {block} tags within {literal} .. {/literal} got not displayed correctly (topic 25024)
       
   290  - bugfix UNC WINDOWS PATH like "\\psf\path\to\dir" did not work as template directory (Issue 192)
       
   291  - bugfix {html_image} security check did fail on files relative to basedir (Issue 191)
       
   292  
       
   293  06.06.2014
       
   294  - fixed PHPUnit outputFilterTrimWhitespaceTests.php assertion of test result
       
   295  - fixed spelling, PHPDoc , minor errors, code cleanup
       
   296  
       
   297  02.06.2014
       
   298  - using multiple cwd with relative template dirs could result in identical compiled file names. (issue 194 and topic 25099)
       
   299  
       
   300  19.04.2014
       
   301  - bugfix calling createTemplate(template, data) with empty data array caused notice of array to string conversion (Issue 189)
       
   302  - bugfix clearCompiledTemplate() did not delete files on WINDOWS when a compile_id was specified
       
   303  
       
   304  18.04.2014
       
   305  - revert bugfix of 5.4.2014 because %-e date format is not supported on all operating systems
       
   306 
       
   307  ===== 3.1.18 ===== (07.04.2014)
       
   308  06.04.2014 
       
   309  - bugfix template inheritance fail when using custom resource after patch of 8.3.2014 (Issue 187)
       
   310  - bugfix update of composer file (Issue 168 and 184)
       
   311 
       
   312  05.04.2014
       
   313  - bugfix default date format leads to extra spaces when displaying dates with single digit days (Issue 165)
       
   314  
       
   315  26.03.2014
       
   316  - bugfix Smart_Resource_Custom should not lowercase the resource name (Issue 183)
       
   317  
       
   318  24.03.2014
       
   319  - bugfix using a {foreach} property like @iteration could fail when used in inheritance parent templates (Issue 182)
       
   320  
       
   321  20.03.2014
       
   322  - bugfix $smarty->auto_literal and mbsting.func_overload 2, 6 or 7 did fail (forum topic 24899)
       
   323  
       
   324  18.03.2014
       
   325  - revert change of 17.03.2014
       
   326  
       
   327 17.03.2014
       
   328  - bugfix $smarty->auto_literal and mbsting.func_overload 2, 6 or 7 did fail (forum topic 24899)
       
   329  
       
   330  15.03.2014
       
   331  - bugfix Smarty_CacheResource_Keyvaluestore did use different keys on read/writes and clearCache() calls (Issue 169)
       
   332 
       
   333  13.03.2014
       
   334  - bugfix clearXxx() change of 27.1.2014 did not work when specifing cache_id or compile_id  (forum topic 24868 and 24867)
       
   335  
       
   336  ===== 3.1.17 =====
       
   337  08.03.2014
       
   338  - bugfix relative file path {include} within {block} of child templates did throw exception on first call (Issue 177)
       
   339  
       
   340  17.02.2014
       
   341  - bugfix Smarty failed when executing PHP on HHVM (Hip Hop 2.4) because uniqid('',true) does return string with ',' (forum topic 20343)
       
   342  
       
   343  16.02.2014
       
   344  - bugfix a '//' or '\\' in template_dir path could produce wrong path on relative filepath in {include} (Issue 175)
       
   345  
       
   346  05.02.2014
       
   347  - bugfix shared.literal_compiler_param.php did throw an exception when literal did contain a '-' (smarty-developers group)
       
   348  
       
   349  27.01.2014
       
   350  - bugfix $smarty->debugging = true; did show the variable of the $smarty object not the variables used in display() call (forum topic 24764)
       
   351  - bugfix clearCompiledTemplate(), clearAll() and clear() should use realpath to avoid possible exception from RecursiveDirectoryIterator (Issue 171)
       
   352  
       
   353  26.01.2014
       
   354  - bugfix  undo block nesting checks for {nocache} for reasons like forum topic 23280 (forum topic 24762)
       
   355  
       
   356  18.01.2014
       
   357  - bugfix the compiler did fail when using template inheritance and recursive {include} (smarty-developers group)
       
   358  
       
   359  11.01.2014
       
   360  - bugfix "* }" (spaces before right delimiter) was interpreted by mistake as comment end tag (Issue 170)
       
   361  - internals  content cache should be clear when updating cache file
       
   362  
       
   363  08.01.2014
       
   364  - bugfix Smarty_CacheResource_Custom did not handle template resource type specifications on clearCache() calls (Issue 169)
       
   365  - bugfix SmartyBC.class.php should use require_once to load Smarty.class.php (forum topic 24683)
       
   366  
       
   367  ===== 3.1.16 =====
       
   368  15.12.2013
       
   369  - bugfix {include} with {block} tag handling (forum topic 24599, 24594, 24682) (Issue 161)
       
   370    Read 3.1.16_RELEASE_NOTES for more details
       
   371  - enhancement additional debug output at $smarty->_parserdebug = true;
       
   372  
       
   373  07.11.2013
       
   374  - bugfix too restrictive handling of {include} within {block} tags. 3.1.15 did throw errors where 3.1.14 did not (forum topic 24599)
       
   375  - bugfix compiler could fail if PHP mbstring.func_overload is enabled  (Issue 164)
       
   376  
       
   377  28.10.2013
       
   378  - bugfix variable resource name at custom resource plugin did not work within {block} tags (Issue 163)
       
   379  - bugfix notice "Trying to get property of non-object" removed (Issue 163)
       
   380  - bugfix correction of modifier capitalize fix from 3.10.2013  (issue 159)
       
   381  - bugfix multiple {block}s with same name in parent did not work (forum topic 24631) 
       
   382  
       
   383  20.10.2013
       
   384  - bugfix a variable file name at {extends} tag did fail (forum topic 24618)
       
   385  
       
   386  14.10.2013
       
   387  - bugfix yesterdays fix could result in an undefined variable
       
   388  
       
   389  13.10.2013
       
   390  - bugfix variable names on {include} in template inheritance did unextepted error message (forum topic 24594) (Issue 161)
       
   391 .- bugfix relative includes with same name like {include './foo.tpl'} from different folder failed (forum topic 24590)(Issue 161) 
       
   392 
       
   393  04.10.2013
       
   394  - bugfix variable file names at {extends} had been disbabled by mistake with the rewrite of 
       
   395    template inheritance of 24.08.2013   (forum topic 24585)
       
   396    
       
   397 03.10.2013
       
   398  - bugfix loops using modifier capitalize did eat up memory (issue 159)
       
   399  
       
   400  ===== Smarty 3.1.15 =====
       
   401 01.10.2013
       
   402  - use current delimiters in compiler error messages (issue 157)
       
   403  - improvement on performance when using error handler and multiple template folders (issue 152)
       
   404 
       
   405 17.09.2013
       
   406  - improvement added patch for additional SmartyCompilerException properties for better access to scource information (forum topic 24559)
       
   407 
       
   408 16.09.2013
       
   409  - bugfix recompiled templates did not show on first request with zend opcache cache (forum topic 24320)
       
   410  
       
   411 13.09.2013
       
   412  - bugfix html_select_time defaulting error for the Meridian dropdown (forum topic 24549)
       
   413 
       
   414 09.09.2012
       
   415 - bugfix incorrect compiled code with array(object,method) callback at registered Variable Filter (forum topic 24542)
       
   416 
       
   417 27.08.2013
       
   418 - bugfix delimiter followed by linebreak did not work as auto literal after update from 24.08.2013 (forum topic 24518)
       
   419 
       
   420 24.08.2013
       
   421 - bugfix and enhancement
       
   422   Because several recent problems with template inheritance the {block} tag compiler has been rewriten
       
   423    - Error messages shown now the correct child template file and line number
       
   424    - The compiler could fail on some larger UTF-8 text block (forum topic 24455)
       
   425    - The {strip} tag can now be placed outside {block} tags in child templates (forum topic 24289)
       
   426 - change SmartyException::$escape  is now false by default
       
   427 - change PHP traceback has been remove for SmartyException and SmartyCompilerException
       
   428    
       
   429 14.08.2013
       
   430 - bugfix compiled filepath of config file did not observe different config_dir (forum topic 24493)
       
   431 
       
   432 13.08.2013
       
   433 - bugfix the internal resource cache did not observe config_dir changes (forum topic 24493)
       
   434 
       
   435 12.08.2013
       
   436 - bugfix internal $tmpx variables must be unique over all inheritance templates (Issue 149)
       
   437 
       
   438 10.08.2013
       
   439 - bugfix a newline was eaten when a <?xml ... ?> was passed by a Smarty variable and caching was enabled (forum topic 24482)
       
   440 
       
   441 29.07.2013
       
   442 - bugfix headers already send warning thrown when using 'SMARTY_DEBUG=on' from URL (Issue 148)
       
   443 
       
   444 27.07.2013
       
   445 - enhancement allow access to properties of registered opjects for Smarty2 BC (forum topic 24344)
       
   446 
       
   447 26.07.2013
       
   448 - bugfix template inheritance nesting problem (forum topic 24387)
       
   449 
       
   450 15.7.2013
       
   451 - update code generated by PSR-2 standards fixer which introduced PHP 5.4 incompatibilities of 14.7.2013
       
   452 
       
   453 14.7.2013
       
   454 - bugfix increase of internal maximum parser stacksize to allow more complex tag code {forum topic 24426}
       
   455 - update for PHP 5.4 compatibility
       
   456 - reformat source to PSR-2 standard
       
   457 
       
   458 12.7.2013
       
   459 - bugfix Do not remove '//' from file path at normalization (Issue 142)
       
   460 
       
   461 2.7.2013
       
   462 - bugfix trimwhitespace would replace captured items in wrong order (forum topic 24387)
       
   463 
       
   464 ===== Smarty-3.1.14 =====
       
   465 27.06.2013
       
   466 - bugfix removed PHP 5.5 deprecated preg_replace /e option in modifier capitalize (forum topic 24389)
       
   467 
       
   468 17.06.2013
       
   469 - fixed spelling in sources and documentation (from smarty-developers forum Veres Lajos)
       
   470 - enhancement added constant SMARTY::CLEAR_EXPIRED for the change of 26.05.2013 (forum topic 24310)
       
   471 - bugfix added smarty_security.php to composer.json (Issue 135)
       
   472 
       
   473 26.05.2013
       
   474 - enhancement an expire_time of -1 in clearCache() and clearAllCache() will delete outdated cache files
       
   475   by their individual cache_lifetime used at creation (forum topic 24310)
       
   476 
       
   477 21.05.2013
       
   478 - bugfix modifier strip_tags:true was compiled into wrong code (Forum Topic 24287)
       
   479 - bugfix /n after ?> in Smarty.class.php did start output buffering (Issue 138)
       
   480 
       
   481 25.04.2013
       
   482 - bugfix escape and wordrap modifier could be compiled into wrong code when used in {nocache}{/nocache}
       
   483   section but caching is disabled  (Forum Topic 24260)
       
   484   
       
   485 05.04.2013
       
   486 - bugfix post filter must not run when compiling inheritance child blocks (Forum Topic 24094)
       
   487 - bugfix after the fix for Issue #130 compiler exceptions got double escaped (Forum Topic 24199)
       
   488 
       
   489 28.02.2013
       
   490 - bugfix nocache blocks could be lost when using CACHING_LIFETIME_SAVED (Issue #133)
       
   491 - bugfix Compile ID gets nulled when compiling child blocks (Issue #134)
       
   492 
       
   493 
       
   494 24.01.2013
       
   495 - bugfix wrong tag type in smarty_internal_templatecompilerbase.php could cause wrong plugin search order (Forum Topic 24028)
       
   496 
       
   497 ===== Smarty-3.1.13 =====
       
   498 13.01.2013
       
   499 - enhancement allow to disable exception message escaping by SmartyException::$escape = false;  (Issue #130)
       
   500 
       
   501 09.01.2013
       
   502 - bugfix compilation did fail when a prefilter did modify an {extends} tag c
       
   503 - bugfix template inheritance could fail if nested {block} tags in childs did contain {$smarty.block.child} (Issue #127)
       
   504 - bugfix template inheritance could fail if {block} tags in childs did have similar name as used plugins (Issue #128)
       
   505 - added abstract method declaration doCompile() in Smarty_Internal_TemplateCompilerBase (Forum Topic 23969)
       
   506 
       
   507 06.01.2013
       
   508 - Allow '://' URL syntax in template names of stream resources  (Issue #129)
       
   509 
       
   510 27.11.2012
       
   511 - bugfix wrong variable usage in smarty_internal_utility.php (Issue #125)
       
   512 
       
   513 26.11.2012
       
   514 - bugfix global variable assigned within template function are not seen after template function exit (Forum Topic 23800) 
       
   515 
       
   516 24.11.2012
       
   517 - made SmartyBC loadable via composer (Issue #124)
       
   518 
       
   519 20.11.2012
       
   520 - bugfix assignGlobal() called from plugins did not work (Forum Topic 23771)
       
   521 
       
   522 13.11.2012
       
   523 - adding attribute "strict" to html_options, html_checkboxes, html_radios to only print disabled/readonly attributes if their values are true or "disabled"/"readonly" (Issue #120)
       
   524 
       
   525 01.11.2012
       
   526 - bugfix muteExcpetedErrors() would screw up for non-readable paths (Issue #118)
       
   527 
       
   528 ===== Smarty-3.1.12  =====
       
   529 14.09.2012
       
   530 - bugfix template inheritance failed to compile with delimiters {/ and /} (Forum Topic 23008)
       
   531 
       
   532 11.09.2012
       
   533 - bugfix escape Smarty exception messages to avoid possible script execution
       
   534 
       
   535 10.09.2012
       
   536 - bugfix tag option flags and shorttag attributes did not work when rdel started with '=' (Forum Topic 22979)
       
   537 
       
   538 31.08.2012
       
   539 - bugfix resolving relative paths broke in some circumstances (Issue #114)
       
   540 
       
   541 22.08.2012
       
   542 - bugfix test MBString availability through mb_split, as it could've been compiled without regex support (--enable-mbregex).
       
   543   Either we get MBstring's full package, or we pretend it's not there at all.
       
   544 
       
   545 21.08.2012
       
   546 - bugfix $auto_literal = false did not work with { block} tags in child templates 
       
   547   (problem was reintroduced after fix in 3.1.7)(Forum Topic 20581)
       
   548 
       
   549 17.08.2012
       
   550 - bugfix compiled code of nocache sections could contain wrong escaping (Forum Topic 22810)
       
   551 
       
   552 15.08.2012
       
   553 - bugfix template inheritance did produce wrong code if subtemplates with {block} was
       
   554   included several times (from smarty-developers forum)
       
   555 
       
   556 14.08.2012
       
   557 - bugfix PHP5.2 compatibility compromised by SplFileInfo::getBasename() (Issue 110)
       
   558 
       
   559 01.08.2012
       
   560 - bugfix avoid PHP error on $smarty->configLoad(...) with invalid section specification (Forum Topic 22608)
       
   561 
       
   562 30.07.2012
       
   563 -bugfix {assign} in a nocache section should not overwrite existing variable values 
       
   564    during compilation (issue 109)
       
   565    
       
   566 28.07.2012
       
   567 - bugfix array access of config variables did not work (Forum Topic 22527)
       
   568 
       
   569 19.07.2012
       
   570 - bugfix the default plugin handler did create wrong compiled code for static class methods
       
   571   from external script files (issue 108)
       
   572   
       
   573 ===== Smarty-3.1.11 =====
       
   574 30.06.2012
       
   575 - bugfix {block.. hide} did not work as nested child (Forum Topic 22216)
       
   576 
       
   577 25.06.2012
       
   578 - bugfix the default plugin handler did not allow static class methods for modifier (issue 85)
       
   579 
       
   580 24.06.2012
       
   581 - bugfix escape modifier support for PHP < 5.2.3 (Forum Topic 21176)
       
   582 
       
   583 11.06.2012
       
   584 - bugfix the patch for Topic 21856 did break tabs between tag attributes (Forum Topic 22124)
       
   585 
       
   586 ===== Smarty-3.1.10  =====
       
   587 09.06.2012
       
   588 - bugfix the compiler did ignore registered compiler plugins for closing tags (Forum Topic 22094)
       
   589 - bugfix the patch for Topic 21856 did break multiline tags (Forum Topic 22124)
       
   590 
       
   591 ===== Smarty-3.1.9 =====
       
   592 07.06.2012
       
   593 - bugfix fetch() and display() with relative paths (Issue 104)
       
   594 - bugfix treat "0000-00-00" as 0 in modifier.date_format (Issue 103)
       
   595 
       
   596 24.05.2012
       
   597 - bugfix Smarty_Internal_Write_File::writeFile() could cause race-conditions on linux systems (Issue 101)
       
   598 - bugfix attribute parameter names of plugins may now contain also "-"  and ":"  (Forum Topic 21856)
       
   599 - bugfix add compile_id to cache key of of source (Issue 97)
       
   600 
       
   601 22.05.2012
       
   602 - bugfix recursive {include} within {section} did fail (Smarty developer group)
       
   603 
       
   604 12.05.2012
       
   605 - bugfix {html_options} did not properly escape values (Issue 98)
       
   606 
       
   607 03.05.2012
       
   608 - bugfix make HTTP protocall version variable (issue 96)
       
   609 
       
   610 02.05.2012
       
   611 - bugfix  {nocache}{block}{plugin}... did produce wrong compiled code when caching is disabled (Forum Topic 21572, issue 95)
       
   612 
       
   613 12.04.2012
       
   614 - bugfix Smarty did eat the linebreak after the <?xml...?> closing tag (Issue 93)
       
   615 - bugfix concurrent cache updates could create a warning (Forum Topic 21403)
       
   616 
       
   617 08.04.2012
       
   618 - bugfix "\\" was not escaped correctly when generating nocache code (Forum Topic 21364)
       
   619 
       
   620 30.03.2012
       
   621 - bugfix template inheritance did  not throw exception when a parent template was deleted (issue 90)
       
   622 
       
   623 27.03.2012
       
   624 - bugfix prefilter did run multiple times on inline subtemplates compiled into several main templates (Forum Topic 21325)
       
   625 - bugfix implement Smarty2's behaviour of variables assigned by reference in SmartyBC. {assign} will affect all references.
       
   626   (issue 88)
       
   627 
       
   628 21.03.2012
       
   629 - bugfix compileAllTemplates() and compileAllConfig() did not return the number of compiled files (Forum Topic 21286)
       
   630 
       
   631 13.03.2012
       
   632 - correction of yesterdays bugfix (Forum Topic 21175 and 21182)
       
   633 
       
   634 12.03.2012
       
   635 - bugfix a double quoted string of "$foo" did not compile into PHP "$foo" (Forum Topic 21175)
       
   636 - bugfix template inheritance did set $merge_compiled_includes globally true
       
   637 
       
   638 03.03.2012
       
   639 - optimization of compiling speed when same modifier was used several times
       
   640 
       
   641 02.03.2012
       
   642 - enhancement the default plugin handler can now also resolve undefined modifier (Smarty::PLUGIN_MODIFIER)
       
   643   (Issue 85)
       
   644 
       
   645 ===== Smarty-3.1.8  =====
       
   646 19.02.2012
       
   647 - bugfix {include} could result in a fatal error if used in appended or prepended nested {block} tags
       
   648   (reported by mh and Issue 83)
       
   649 - enhancement added Smarty special variable $smarty.template_object to return the current template object (Forum Topic 20289)
       
   650 
       
   651 
       
   652 07.02.2012
       
   653 - bugfix increase entropy of internal function names in compiled and cached template files (Forum Topic 20996)
       
   654 - enhancement cacheable parameter added to default plugin handler, same functionality as in registerPlugin (request by calguy1000)
       
   655 
       
   656 06.02.2012
       
   657 - improvement stream_resolve_include_path() added to Smarty_Internal_Get_Include_Path (Forum Topic 20980)
       
   658 - bugfix fetch('extends:foo.tpl') always yielded $source->exists == true (Forum Topic 20980)
       
   659 - added modifier unescape:"url", fix (Forum Topic 20980)
       
   660 - improvement replaced some calls of preg_replace with str_replace (Issue 73)
       
   661 
       
   662 30.01.2012
       
   663 - bugfix Smarty_Security internal $_resource_dir cache wasn't properly propagated
       
   664 
       
   665 27.01.2012
       
   666 - bugfix Smarty did not a template name of "0" (Forum Topic 20895)
       
   667 
       
   668 20.01.2012
       
   669 - bugfix typo in Smarty_Internal_Get_IncludePath did cause runtime overhead (Issue 74)
       
   670 - improvment remove unneeded assigments (Issue 75 and 76)
       
   671 - fixed typo in template parser
       
   672 - bugfix output filter must not run before writing cache when template does contain nocache code (Issue 71)
       
   673 
       
   674 02.01.2012
       
   675 - bugfix {block foo nocache} did not load plugins within child {block} in nocache mode (Forum Topic 20753)
       
   676 
       
   677 29.12.2011
       
   678 - bugfix enable more entropy in Smarty_Internal_Write_File for "more uniqueness" and Cygwin compatibility (Forum Topic 20724)
       
   679 - bugfix embedded quotes in single quoted strings did not compile correctly in {nocache} sections (Forum Topic 20730)
       
   680 
       
   681 28.12.2011
       
   682 - bugfix Smarty's internal header code must be excluded from postfilters (issue 71)
       
   683 
       
   684 22.12.2011
       
   685 - bugfix the new lexer of 17.12.2011 did fail if mbstring.func_overload != 0 (issue 70) (Forum Topic 20680)
       
   686 - bugfix template inheritace did fail if mbstring.func_overload != 0 (issue 70) (Forum Topic 20680)
       
   687 
       
   688 20.12.2011
       
   689 - bugfix template inheritance: {$smarty.block.child} in nested child {block} tags did not return 
       
   690   content after {$smarty.block.child} (Forum Topic 20564)
       
   691 
       
   692 ===== Smarty-3.1.7 =====
       
   693 18.12.2011
       
   694 - bugfix strings ending with " in multiline strings of config files failed to compile (issue #67)
       
   695 - added chaining to Smarty_Internal_Templatebase
       
   696 - changed unloadFilter() to not return a boolean in favor of chaining and API conformity
       
   697 - bugfix unregisterObject() raised notice when object to unregister did not exist
       
   698 - changed internals to use Smarty::$_MBSTRING ($_CHARSET, $_DATE_FORMAT) for better unit testing
       
   699 - added Smarty::$_UTF8_MODIFIER for proper PCRE charset handling (Forum Topic 20452)
       
   700 - added Smarty_Security::isTrustedUri() and Smarty_Security::$trusted_uri to validate 
       
   701   remote resource calls through {fetch} and {html_image} (Forum Topic 20627)
       
   702 
       
   703 17.12.2011
       
   704 - improvement of compiling speed by new handling of plain text blocks in the lexer/parser (issue #68)
       
   705 
       
   706 16.12.2011
       
   707 - bugfix the source exits flag and timestamp was not setup when template was in php include path (issue #69)
       
   708 
       
   709 9.12.2011
       
   710 - bugfix {capture} tags around recursive {include} calls did throw exception (Forum Topic 20549)
       
   711 - bugfix $auto_literal = false did not work with { block} tags in child templates (Forum Topic 20581)
       
   712 - bugfix template inheritance: do not include code of {include} in overloaded {block} into compiled 
       
   713   parent template (Issue #66}
       
   714 - bugfix template inheritance: {$smarty.block.child} in nested child {block} tags did not return expected
       
   715   result (Forum Topic 20564)
       
   716     
       
   717 ===== Smarty-3.1.6  =====
       
   718 30.11.2011
       
   719 - bugfix is_cache() for individual cached subtemplates with $smarty->caching = CACHING_OFF did produce
       
   720   an exception (Forum Topic 20531)
       
   721 
       
   722 29.11.2011
       
   723 - bugfix added exception if the default plugin handler did return a not static callback (Forum Topic 20512)
       
   724 
       
   725 25.11.2011
       
   726 - bugfix {html_select_date} and {html_slecet_time} did not default to current time if "time" was not specified 
       
   727   since r4432 (issue 60)
       
   728 
       
   729 24.11.2011
       
   730 - bugfix a subtemplate later used as main template did use old variable values
       
   731 
       
   732 21.11.2011
       
   733 - bugfix cache file could include unneeded modifier plugins under certain condition
       
   734 
       
   735 18.11.2011
       
   736 - bugfix declare all directory properties private to map direct access to getter/setter also on extended Smarty class
       
   737 
       
   738 16.11.2011
       
   739 - bugfix Smarty_Resource::load() did not always return a proper resource handler (Forum Topic 20414)
       
   740 - added escape argument to html_checkboxes and html_radios (Forum Topic 20425)
       
   741 
       
   742 ===== Smarty-3.1.5  =====
       
   743 14.11.2011
       
   744 - bugfix allow space between function name and open bracket (forum topic 20375)
       
   745 
       
   746 09.11.2011
       
   747 - bugfix different behaviour of uniqid() on cygwin. See https://bugs.php.net/bug.php?id=34908
       
   748   (forum topic 20343)
       
   749 
       
   750 01.11.2011
       
   751 - bugfix {if} and {while} tags without condition did not throw a SmartyCompilerException (Issue #57)
       
   752 - bugfix multiline strings in config files could fail on longer strings (reopened Issue #55)
       
   753 
       
   754 22.10.2011
       
   755 - bugfix smarty_mb_from_unicode() would not decode unicode-points properly
       
   756 - bugfix use catch Exception instead UnexpectedValueException in 
       
   757   clearCompiledTemplate to be PHP 5.2 compatible
       
   758 
       
   759 21.10.2011
       
   760 - bugfix apostrophe in plugins_dir path name failed (forum topic 20199)
       
   761 - improvement sha1() for array keys longer than 150 characters
       
   762 - add Smarty::$allow_ambiguous_resources to activate unique resource handling (Forum Topic 20128)
       
   763 
       
   764 20.10.2011
       
   765 - @silenced unlink() in Smarty_Internal_Write_File since debuggers go haywire without it.
       
   766 - bugfix Smarty::clearCompiledTemplate() threw an Exception if $cache_id was not present in $compile_dir when $use_sub_dirs = true.
       
   767 - bugfix {html_select_date} and {html_select_time} did not properly handle empty time arguments (Forum Topic 20190)
       
   768 - improvement removed unnecessary sha1()
       
   769 
       
   770 19.10.2011
       
   771 - revert PHP4 constructor message
       
   772 - fixed PHP4 constructor message
       
   773 
       
   774 ===== Smarty-3.1.4 =====
       
   775 19.10.2011
       
   776 - added exception when using PHP4 style constructor
       
   777 
       
   778 16.10.2011
       
   779 - bugfix testInstall() did not propery check cache_dir and compile_dir
       
   780 
       
   781 15.10.2011
       
   782 - bugfix Smarty_Resource and Smarty_CacheResource runtime caching (Forum Post 75264)
       
   783 
       
   784 14.10.2011
       
   785 - bugfix unique_resource did not properly apply to compiled resources (Forum Topic 20128)
       
   786 - add locking to custom resources (Forum Post 75252)
       
   787 - add Smarty_Internal_Template::clearCache() to accompany isCached() fetch() etc.
       
   788 
       
   789 13.10.2011
       
   790 - add caching for config files in Smarty_Resource
       
   791 - bugfix disable of caching after isCached() call did not work (Forum Topic 20131)
       
   792 - add concept unique_resource to combat potentially ambiguous template_resource values when custom resource handlers are used (Forum Topic 20128)
       
   793 - bugfix multiline strings in config files could fail on longer strings (Issue #55)
       
   794 
       
   795 11.10.2011
       
   796 - add runtime checks for not matching {capture}/{/capture} calls (Forum Topic 20120)
       
   797  
       
   798 10.10.2011
       
   799 - bugfix variable name typo in {html_options} and {html_checkboxes} (Issue #54)
       
   800 - bugfix <?xml> tag did create wrong output when caching enabled and the tag was in included subtemplate
       
   801 - bugfix Smarty_CacheResource_mysql example was missing strtotime() calls
       
   802 
       
   803 ===== Smarty-3.1.3  =====
       
   804 07.10.2011
       
   805 - improvement removed html comments from {mailto} (Forum Topic 20092)
       
   806 - bugfix testInstall() would not show path to internal plugins_dir (Forum Post 74627)
       
   807 - improvement testInstall() now showing resolved paths and checking the include_path if necessary
       
   808 - bugfix html_options plugin did not handle object values properly (Issue #49, Forum Topic 20049)
       
   809 - improvement html_checkboxes and html_radios to accept null- and object values, and label_ids attribute
       
   810 - improvement removed some unnecessary count()s
       
   811 - bugfix parent pointer was not set when fetch() for other template was called on template object
       
   812 
       
   813 06.10.2011
       
   814 - bugfix switch lexer internals depending on mbstring.func_overload
       
   815 - bugfix start_year and end_year of {html_select_date} did not use current year as offset base (Issue #53)
       
   816 
       
   817 05.10.2011
       
   818 - bugfix of problem introduced with r4342 by replacing strlen() with isset()
       
   819 - add environment configuration issue with mbstring.func_overload Smarty cannot compensate for (Issue #45)
       
   820 - bugfix nofilter tag option did not disable default modifier
       
   821 - bugfix html_options plugin did not handle null- and object values properly (Issue #49, Forum Topic 20049)
       
   822 
       
   823 04.10.2011
       
   824 - bugfix assign() in plugins called in subtemplates did change value also in parent template
       
   825 - bugfix of problem introduced with r4342 on math plugin 
       
   826 - bugfix output filter should not run on individually cached subtemplates
       
   827 - add unloadFilter() method
       
   828 - bugfix has_nocache_code flag was not reset before compilation
       
   829 
       
   830 ===== Smarty-3.1.2  =====
       
   831 03.10.2011
       
   832 - improvement add internal $joined_template_dir property instead computing it on the fly several times
       
   833 
       
   834 01.10.2011
       
   835 - improvement replaced most in_array() calls by more efficient isset() on array_flip()ed haystacks
       
   836 - improvement replaced some strlen($foo) > 3 calls by isset($foo[3])
       
   837 - improvement Smarty_Internal_Utility::clearCompiledTemplate() removed redundant strlen()s
       
   838 
       
   839 29.09.2011
       
   840 - improvement of Smarty_Internal_Config::loadConfigVars() dropped the in_array for index look up
       
   841 
       
   842 28.09.2011
       
   843 - bugfix on template functions called nocache calling other template functions
       
   844 
       
   845 27.09.2011
       
   846 - bugfix possible warning "attempt to modify property of non-object" in {section} (issue #34)
       
   847 - added chaining to Smarty_Internal_Data so $smarty->assign('a',1)->assign('b',2); is possible now
       
   848 - bugfix remove race condition when a custom resource did change timestamp during compilation
       
   849 - bugfix variable property did not work on objects variable in template
       
   850 - bugfix smarty_make_timestamp() failed to process DateTime objects properly
       
   851 - bugfix wrong resource could be used on compile check of custom resource
       
   852 
       
   853 26.09.2011
       
   854 - bugfix repeated calls to same subtemplate did not make use of cached template object
       
   855 
       
   856 24.09.2011
       
   857 - removed internal muteExpectedErrors() calls in favor of having the implementor call this once from his application
       
   858 - optimized muteExpectedErrors() to pass errors to the latest registered error handler, if appliccable
       
   859 - added compile_dir and cache_dir to list of muted directories
       
   860 - improvment better error message for undefined templates at {include}
       
   861 
       
   862 23.09.2011
       
   863 - remove unused properties
       
   864 - optimization use real function instead anonymous function for preg_replace_callback
       
   865 - bugfix a relative {include} in child template blocks failed
       
   866 - bugfix direct setting of $template_dir, $config_dir, $plugins_dir in __construct() of an 
       
   867   extended Smarty class created problems
       
   868 - bugfix error muting was not implemented for cache locking
       
   869 
       
   870 ===== Smarty 3.1.1  =====
       
   871 22.09.2011
       
   872 - bugfix {foreachelse} does fail if {section} was nested inside {foreach}
       
   873 - bugfix debug.tpl did not display correctly when it was compiled with escape_html = true
       
   874 
       
   875 21.09.2011
       
   876 - bugfix look for mixed case plugin file names as in 3.0 if not found try all lowercase
       
   877 - added $error_muting to suppress error messages even for badly implemented error_handlers
       
   878 - optimized autoloader
       
   879 - reverted ./ and ../ handling in fetch() and display() - they're allowed again
       
   880 
       
   881 20.09.2011
       
   882 - bugfix removed debug echo output while compiling template inheritance
       
   883 - bugfix relative paths in $template_dir broke relative path resolving in {include "../foo.tpl"}
       
   884 - bugfix {include} did not work inside nested {block} tags
       
   885 - bugfix {assign} with scope root and global did not work in all cases
       
   886 
       
   887 19.09.2011
       
   888 - bugfix regression in Smarty_CacheReource_KeyValueStore introduced by r4261
       
   889 - bugfix output filter shall not run on included subtemplates
       
   890 
       
   891 18.09.2011
       
   892 - bugfix template caching did not care about file.tpl in different template_dir
       
   893 - bugfix {include $file} was broken when merge_compiled_incluges = true
       
   894 - bugfix {include} was broken when merge_compiled_incluges = true and same indluded template
       
   895   was used in different main templates in one compilation run
       
   896 - bugfix for Smarty2 style compiler plugins on unnamed attribute passing like {tag $foo $bar}
       
   897 - bugfix debug.tpl did not display correctly when it was compiled with escape_html = true
       
   898 
       
   899 17.09.2011
       
   900 - bugfix lock_id for file resource would create invalid filepath
       
   901 - bugfix resource caching did not care about file.tpl in different template_dir
       
   902 
       
   903 ===== Smarty 3.1.0  =====
       
   904 15/09/2011
       
   905 - optimization of {foreach}; call internal _count() method only when "total" or "last" {foreach} properties are used
       
   906 
       
   907 11/09/2011
       
   908 - added  unregisterObject() method
       
   909 
       
   910 06/09/2011
       
   911 - bugfix  isset() did not work in templates on config variables
       
   912 
       
   913 03/09/2011
       
   914 - bugfix createTemplate() must default to cache_id and compile_id of Smarty object
       
   915 - bugfix Smarty_CacheResource_KeyValueStore must include $source->uid in cache filepath to keep templates with same
       
   916   name but different folders separated
       
   917 - added cacheresource.apc.php example in demo folder
       
   918 
       
   919 02/09/2011
       
   920 - bugfix cache lock file must use absolute filepath
       
   921 
       
   922 01/09/2011
       
   923 - update of cache locking
       
   924 
       
   925 30/08/2011
       
   926 - added locking mechanism to CacheResource API (implemented with File and KeyValueStores)
       
   927 
       
   928 28/08/2011
       
   929 - bugfix clearCompileTemplate() did not work for specific template subfolder or resource
       
   930 
       
   931 27/08/2011
       
   932 - bugfix {$foo|bar+1} did create syntax error
       
   933 
       
   934 26/08/2011
       
   935 - bugfix when generating nocache code which contains double \
       
   936 - bugfix handle race condition if cache file was deleted between filemtime and include
       
   937 
       
   938 17/08/2011
       
   939 - bugfix CacheResource_Custom bad internal fetch() call
       
   940 
       
   941 15/08/2011
       
   942 - bugfix CacheResource would load content twice for KeyValueStore and Custom handlers
       
   943 
       
   944 06/08/2011
       
   945 - bugfix {include} with scope attribute could execute in wrong scope
       
   946 - optimization of compile_check processing
       
   947 
       
   948 03/08/2011
       
   949 - allow comment tags to comment {block} tags out in child templates
       
   950 
       
   951 26/07/2011
       
   952 - bugfix experimental getTags() method did not work
       
   953 
       
   954 24/07/2011
       
   955 - sure opened output buffers are closed on exception
       
   956 - bugfix {foreach} did not work on IteratorAggregate
       
   957 
       
   958 22/07/2011
       
   959 - clear internal caches on clearAllCache(), clearCache(), clearCompiledTemplate()
       
   960 
       
   961 21/07/2011
       
   962 - bugfix value changes of variable values assigned to Smarty object could not be seen on repeated $smarty->fetch() calls
       
   963 
       
   964 17/07/2011
       
   965 - bugfix {$smarty.block.child} did drop a notice at undefined child
       
   966 
       
   967 15/07/2011
       
   968 - bugfix individual cache_lifetime of {include} did not work correctly inside {block} tags
       
   969 - added caches for Smarty_Internal_TemplateSource and Smarty_Internal_TemplateCompiled to reduce I/O for multiple cache_id rendering
       
   970 
       
   971 14/07/2011
       
   972 - made Smarty::loadPlugin() respect the include_path if required
       
   973 
       
   974 13/07/2011
       
   975 - optimized internal file write functionality
       
   976 - bugfix PHP did eat line break on nocache sections
       
   977 - fixed typo of Smarty_Security properties $allowed_modifiers and $disabled_modifiers
       
   978 
       
   979 06/07/2011
       
   980 - bugfix variable modifier must run befor gereral filtering/escaping
       
   981 
       
   982 04/07/2011
       
   983 - bugfix use (?P<name>) syntax at preg_match as some pcre libraries failed on (?<name>)
       
   984 - some performance improvement when using generic getter/setter on template objects
       
   985 
       
   986 30/06/2011
       
   987 - bugfix generic getter/setter of Smarty properties used on template objects did throw exception
       
   988 - removed is_dir and is_readable checks from directory setters for better performance
       
   989 
       
   990 28/06/2011
       
   991 - added back support of php template resource as undocumented feature
       
   992 - bugfix automatic recompilation on version change could drop undefined index notice on old 3.0 cache and compiled files
       
   993 - update of README_3_1_DEV.txt and moved into the distribution folder
       
   994 - improvement show first characters of eval and string templates instead sha1 Uid in debug window
       
   995 
       
   996 ===== Smarty 3.1-RC1 =====
       
   997 25/06/2011
       
   998 - revert change of 17/06/2011. $_smarty varibale removed. call loadPlugin() from inside plugin code if required
       
   999 - code cleanup, remove no longer used properties and methods
       
  1000 - update of PHPdoc comments
       
  1001 
       
  1002 23/06/2011
       
  1003 - bugfix {html_select_date} would not respect current time zone
       
  1004 
       
  1005 19/06/2011
       
  1006 - added $errors argument to testInstall() functions to suppress output.
       
  1007 - added plugin-file checks to testInstall()
       
  1008 
       
  1009 18/06/2011
       
  1010 - bugfix mixed use of same subtemplate inline and not inline in same script could cause a warning during compilation
       
  1011 
       
  1012 17/06/2011
       
  1013 - bugfix/change use $_smarty->loadPlugin() when loading nested depending plugins via loadPlugin
       
  1014 - bugfix {include ... inline} within {block}...{/block} did fail
       
  1015 
       
  1016 16/06/2011
       
  1017 - bugfix do not overwrite '$smarty' template variable when {include ... scope=parent} is called
       
  1018 - bugfix complete empty inline subtemplates did fail
       
  1019 
       
  1020 15/06/2011
       
  1021 - bugfix template variables where not accessable within inline subtemplates
       
  1022 
       
  1023 12/06/2011
       
  1024 - bugfix removed unneeded merging of template variable when fetching includled subtemplates
       
  1025 
       
  1026 10/06/2011
       
  1027 - made protected properties $template_dir, $plugins_dir, $cache_dir, $compile_dir, $config_dir accessible via magic methods
       
  1028 
       
  1029 09/06/2011
       
  1030 - fix smarty security_policy issue in plugins {html_image} and {fetch}
       
  1031 
       
  1032 05/06/2011
       
  1033 - update of SMARTY_VERSION
       
  1034 - bugfix made getTags() working again
       
  1035 
       
  1036 04/06/2011
       
  1037 - allow extends resource in file attribute of {extends} tag
       
  1038 
       
  1039 03/06/2011
       
  1040 - added {setfilter} tag to set filters for variable output
       
  1041 - added escape_html property to control autoescaping of variable output
       
  1042 
       
  1043 27/05/2011
       
  1044 - added allowed/disabled tags and modifiers in security for sandboxing
       
  1045 
       
  1046 23/05/2011
       
  1047 - added base64: and urlencode: arguments to eval and string resource types
       
  1048 
       
  1049 22/05/2011
       
  1050 - made time-attribute of {html_select_date} and {html_select_time} accept arrays as defined by attributes prefix and field_array
       
  1051 
       
  1052 13/05/2011
       
  1053 - remove setOption / getOption calls from SamrtyBC class
       
  1054 
       
  1055 02/05/2011
       
  1056 - removed experimental setOption() getOption() methods
       
  1057 - output returned content also on opening tag calls of block plugins
       
  1058 - rewrite of default plugin handler
       
  1059 - compile code of variable filters for better performance 
       
  1060 
       
  1061 20/04/2011
       
  1062 - allow {php} {include_php} tags and PHP_ALLOW handling only with the SmartyBC class
       
  1063 - removed support of php template resource
       
  1064 
       
  1065 20/04/2011
       
  1066 - added extendsall resource example
       
  1067 - optimization of template variable access
       
  1068 - optimization of subtemplate handling {include}
       
  1069 - optimization of template class
       
  1070 
       
  1071 01/04/2011
       
  1072 - bugfix quote handling in capitalize modifier
       
  1073 
       
  1074 28/03/2011
       
  1075 - bugfix stripslashes() requried when using PCRE e-modifier
       
  1076 
       
  1077 04/03/2011
       
  1078 - upgrade to new PHP_LexerGenerator version 0.4.0 for better performance
       
  1079 
       
  1080 27/02/2011
       
  1081 - ignore .svn folders when clearing cache and compiled files
       
  1082 - string resources do not need a modify check
       
  1083 
       
  1084 26/02/2011
       
  1085 - replaced smarty_internal_wrapper by SmartyBC class
       
  1086 - load utility functions as static methods instead through __call()
       
  1087 - bugfix in extends resource when subresources are used
       
  1088 - optimization of modify checks
       
  1089 
       
  1090 25/02/2011
       
  1091 - use $smarty->error_unassigned to control NOTICE handling on unassigned variables
       
  1092 
       
  1093 21/02/2011
       
  1094 - added new new compile_check mode COMPILECHECK_CACHEMISS
       
  1095 - corrected new cloning behaviour of createTemplate()
       
  1096 - do no longer store the compiler object as property in the compile_tag classes to avoid possible memory leaks 
       
  1097   during compilation
       
  1098 
       
  1099 19/02/2011
       
  1100 - optimizations on merge_compiled_includes handling
       
  1101 - a couple of optimizations and bugfixes related to new resource structure
       
  1102 
       
  1103 17/02/2011
       
  1104 - changed ./ and ../ behaviour
       
  1105 
       
  1106 14/02/2011
       
  1107 - added {block ... hide} option to suppress block if no child is defined
       
  1108 
       
  1109 13/02/2011
       
  1110 - update handling of recursive subtemplate calls
       
  1111 - bugfix replace $smarty->triggerError() by exception in smarty_internal_resource_extends.php
       
  1112 
       
  1113 12/02/2011
       
  1114 - new class Smarty_Internal_TemplateBase with shared methods of Smarty and Template objects
       
  1115 - optimizations of template processing
       
  1116 - made register... methods permanet
       
  1117 - code for default_plugin_handler
       
  1118 - add automatic recompilation at version change
       
  1119 
       
  1120 04/02/2011
       
  1121 - change in Smarty_CacheResource_Custom
       
  1122 - bugfix cache_lifetime did not compile correctly at {include} after last update
       
  1123 - moved isCached processing into CacheResource class
       
  1124 - bugfix new CacheResource API did not work with disabled compile_check
       
  1125 
       
  1126 03/02/2011
       
  1127 - handle template content as function to improve speed on multiple calls of same subtemplate and isCached()/display() calls
       
  1128 - bugfixes and improvents in the new resource API
       
  1129 - optimizations of template class code
       
  1130 
       
  1131 25/01/2011
       
  1132 - optimized function html_select_time
       
  1133 
       
  1134 22/01/2011
       
  1135 - added Smarty::$use_include_path configuration directive for Resource API
       
  1136 
       
  1137 21/01/2011
       
  1138 - optimized function html_select_date
       
  1139 
       
  1140 19/01/2011
       
  1141 - optimized outputfilter trimwhitespace
       
  1142 
       
  1143 18/01/2011
       
  1144 - bugfix Config to use Smarty_Resource to fetch sources
       
  1145 - optimized Smarty_Security's isTrustedDir() and isTrustedPHPDir()
       
  1146 
       
  1147 17/01/2011
       
  1148 - bugfix HTTP headers for CGI SAPIs
       
  1149 
       
  1150 16/01/2011
       
  1151 - optimized internals of Smarty_Resource and Smarty_CacheResource
       
  1152 
       
  1153 14/01/2011
       
  1154 - added modifiercompiler escape to improve performance of escaping html, htmlall, url, urlpathinfo, quotes, javascript
       
  1155 - added support to choose template_dir to load from: [index]filename.tpl
       
  1156 
       
  1157 12/01/2011
       
  1158 - added unencode modifier to revert results of encode modifier
       
  1159 - added to_charset and from_charset modifier for character encoding
       
  1160 
       
  1161 11/01/2011
       
  1162 - added SMARTY_MBSTRING to generalize MBString detection
       
  1163 - added argument $lc_rest to modifier.capitalize to lower-case anything but the first character of a word
       
  1164 - changed strip modifier to consider unicode white-space, too
       
  1165 - changed wordwrap modifier to accept UTF-8 strings
       
  1166 - changed count_sentences modifier to consider unicode characters and treat sequences delimited by ? and ! as sentences, too
       
  1167 - added argument $double_encode to modifier.escape (applies to html and htmlall only)
       
  1168 - changed escape modifier to be UTF-8 compliant
       
  1169 - changed textformat block to be UTF-8 compliant
       
  1170 - optimized performance of mailto function
       
  1171 - fixed spacify modifier so characters are not prepended and appended, made it unicode compatible
       
  1172 - fixed truncate modifier to properly use mb_string if possible
       
  1173 - removed UTF-8 frenzy from count_characters modifier
       
  1174 - fixed count_words modifier to treat "hello-world" as a single word like str_count_words() does
       
  1175 - removed UTF-8 frenzy from upper modifier
       
  1176 - removed UTF-8 frenzy from lower modifier
       
  1177 
       
  1178 01/01/2011
       
  1179 - optimize smarty_modified_escape for hex, hexentity, decentity.
       
  1180 
       
  1181 28/12/2010
       
  1182 - changed $tpl_vars, $config_vars and $parent to belong to Smarty_Internal_Data
       
  1183 - added Smarty::registerCacheResource() for dynamic cache resource object registration
       
  1184 
       
  1185 27/12/2010
       
  1186 - added Smarty_CacheResource API and refactored existing cache resources accordingly
       
  1187 - added Smarty_CacheResource_Custom and Smarty_CacheResource_Mysql
       
  1188 
       
  1189 26/12/2010
       
  1190 - added Smarty_Resource API and refactored existing resources accordingly
       
  1191 - added Smarty_Resource_Custom and Smarty_Resource_Mysql
       
  1192 - bugfix Smarty::createTemplate() to return properly cloned template instances
       
  1193 
       
  1194 24/12/2010
       
  1195 - optimize smarty_function_escape_special_chars() for PHP >= 5.2.3
       
  1196 
       
  1197 ===== SVN 3.0 trunk  =====
       
  1198 14/05/2011
       
  1199 - bugfix error handling at stream resources
       
  1200 
       
  1201 13/05/2011
       
  1202 - bugfix condition starting with "-" did fail at {if} and {while} tags
       
  1203 
       
  1204 22/04/2011
       
  1205 - bugfix allow only fixed string as file attribute at {extends} tag
       
  1206 
       
  1207 01/04/2011
       
  1208 - bugfix do not run filters and default modifier when displaying the debug template
       
  1209 - bugfix of embedded double quotes within multi line strings (""")
       
  1210 
       
  1211 29/03/2011
       
  1212 - bugfix on error message in smarty_internal_compile_block.php
       
  1213 - bugfix mb handling in strip modifier
       
  1214 - bugfix for Smarty2 style registered compiler function on unnamed attribute passing like {tag $foo $bar}
       
  1215 
       
  1216 17/03/2011
       
  1217 - bugfix on default {function} parameters when {function} was used in nocache sections
       
  1218 - bugfix on compiler object destruction. compiler_object property was by mistake unset.
       
  1219 
       
  1220 09/03/2011
       
  1221 -bugfix a variable filter should run before modifiers on an output tag (see change of 23/07/2010)
       
  1222 
       
  1223 08/03/2011
       
  1224 - bugfix loading config file without section should load only defaults
       
  1225 
       
  1226 03/03/2011
       
  1227 - bugfix "smarty" template variable was not recreated when cached templated had expired
       
  1228 - bugfix internal rendered_content must be cleared after subtemplate was included
       
  1229 
       
  1230 01/03/2011
       
  1231 - bugfix replace modifier did not work in 3.0.7 on systems without multibyte support
       
  1232 - bugfix {$smarty.template} could return in 3.0.7 parent template name instead of 
       
  1233          child name when it needed to compile
       
  1234 
       
  1235 25/02/2011
       
  1236 - bugfix for Smarty2 style compiler plugins on unnamed attribute passing like {tag $foo $bar}
       
  1237 
       
  1238 24/02/2011
       
  1239 - bugfix $smarty->clearCache('some.tpl') did by mistake cache the template object
       
  1240 
       
  1241 18/02/2011
       
  1242 - bugfix removed possible race condition when isCached() was called for an individually cached subtemplate
       
  1243 - bugfix force default debug.tpl to be loaded by the file resource
       
  1244 
       
  1245 17/02/2011
       
  1246 -improvement not to delete files starting with '.' from cache and template_c folders on clearCompiledTemplate() and clearCache()
       
  1247 
       
  1248 16/02/2011
       
  1249 -fixed typo in exception message of Smarty_Internal_Template
       
  1250 -improvement allow leading spaces on } tag closing if auto_literal is enabled
       
  1251 
       
  1252 13/02/2011
       
  1253 - bufix replace $smarty->triggerError() by exception
       
  1254 - removed obsolete {popup_init..} plugin from demo templates
       
  1255 - bugfix replace $smarty->triggerError() by exception in smarty_internal_resource_extends.php
       
  1256 
       
  1257 ===== Smarty 3.0.7  =====
       
  1258 09/02/2011
       
  1259 - patched vulnerability when using {$smarty.template}
       
  1260 
       
  1261 01/02/2011
       
  1262 - removed assert() from config and template parser
       
  1263 
       
  1264 31/01/2011
       
  1265 - bugfix the lexer/parser did fail on special characters like VT
       
  1266 
       
  1267 16/01/2011
       
  1268 -bugfix of ArrayAccess object handling in internal _count() method
       
  1269 -bugfix of Iterator object handling in internal _count() method
       
  1270 
       
  1271 14/01/2011
       
  1272 -bugfix removed memory leak while processing compileAllTemplates
       
  1273 
       
  1274 12/01/2011
       
  1275 - bugfix in {if} and {while} tag compiler when using assignments as condition and nocache mode
       
  1276 
       
  1277 10/01/2011
       
  1278 - bugfix when using {$smarty.block.child} and name of {block} was in double quoted string
       
  1279 - bugfix updateParentVariables() was called twice when leaving {include} processing
       
  1280 
       
  1281 - bugfix mb_str_replace in replace and escape modifiers work with utf8
       
  1282 
       
  1283 31/12/2010
       
  1284 - bugfix dynamic configuration of $debugging_crtl did not work
       
  1285 - bugfix default value of $config_read_hidden changed to false
       
  1286 - bugfix format of attribute array on compiler plugins
       
  1287 - bugfix getTemplateVars() could return value from wrong scope
       
  1288 
       
  1289 28/12/2010
       
  1290 - bugfix multiple {append} tags failed to compile.
       
  1291 
       
  1292 22/12/2010
       
  1293 - update do not clone the Smarty object an internal createTemplate() calls to increase performance
       
  1294 
       
  1295 21/12/2010
       
  1296 - update html_options to support class and id attrs
       
  1297 
       
  1298 17/12/2010
       
  1299 - bugfix added missing support of $cache_attrs for registered plugins
       
  1300 
       
  1301 15/12/2010
       
  1302 - bugfix assignment as condition in {while} did drop an E_NOTICE
       
  1303 
       
  1304 14/12/2010
       
  1305 - bugfix when passing an array as default parameter at {function} tag
       
  1306 
       
  1307 13/12/2010
       
  1308 - bugfix {$smarty.template} in child template did not return right content
       
  1309 - bugfix Smarty3 did not search the PHP include_path for template files
       
  1310 
       
  1311 ===== Smarty 3.0.6  =====
       
  1312 
       
  1313 12/12/2010
       
  1314 - bugfix fixed typo regarding yesterdays change to allow streamWrapper
       
  1315 
       
  1316 11/12/2010
       
  1317 - bugfix nested block tags in template inheritance child templates did not work correctly
       
  1318 - bugfix {$smarty.current_dir} in child template did not point to dir of child template
       
  1319 - bugfix changed code when writing temporary compiled files to allow stream_wrapper
       
  1320 
       
  1321 06/12/2010
       
  1322 - bugfix getTemplateVars() should return 'null' instead dropping E_NOTICE on an unassigned variable
       
  1323 
       
  1324 05/12/2010
       
  1325 - bugfix missing declaration of $smarty in Smarty class
       
  1326 - bugfix empty($foo) in {if} did drop a notice when $foo was not assigned
       
  1327 
       
  1328 01/12/2010
       
  1329 - improvement of {debug} tag output
       
  1330 
       
  1331 27/11/2010
       
  1332 -change run output filter before cache file is written. (same as in Smarty2)
       
  1333 
       
  1334 24/11/2011
       
  1335 -bugfix on parser at  !$foo|modifier
       
  1336 -change parser logic when assignments used as condition in {if] and {while} to allow assign to array element
       
  1337 
       
  1338 23/11/2011
       
  1339 -bugfix allow integer as attribute name in plugin calls
       
  1340 -change  trimm whitespace from error message, removed long list of expected tokens
       
  1341 
       
  1342 22/11/2010
       
  1343 - bugfix on template inheritance when an {extends} tag was inserted by a prefilter
       
  1344 - added error message for illegal variable file attributes at {extends...} tags
       
  1345 
       
  1346 ===== Smarty 3.0.5  =====
       
  1347 
       
  1348 
       
  1349 19/11/2010
       
  1350 - bugfix on block plugins with modifiers
       
  1351 
       
  1352 18/11/2010
       
  1353 - change on handling of unassigned template variable -- default will drop E_NOTICE
       
  1354 - bugfix on Smarty2 wrapper load_filter() did not work
       
  1355 
       
  1356 17/11/2010
       
  1357 - bugfix on {call} with variable function name
       
  1358 - bugfix on {block} if name did contain '-'
       
  1359 - bugfix in function.fetch.php , referece to undefined $smarty
       
  1360 
       
  1361 16/11/2010
       
  1362 - bugfix whitespace in front of "<?php" in smarty_internal_compile_private_block_plugin.php
       
  1363 - bugfix {$smarty.now} did compile incorrectly
       
  1364 - bugfix on reset(),end(),next(),prev(),current() within templates
       
  1365 - bugfix on default parameter for {function}
       
  1366 
       
  1367 15/11/2010
       
  1368 - bugfix when using {$smarty.session} as object
       
  1369 - bugfix scoping problem on $smarty object passed to filters
       
  1370 - bugfix captured content could not be accessed globally
       
  1371 - bugfix Smarty2 wrapper functions could not be call from within plugins
       
  1372 
       
  1373 ===== Smarty 3.0.4  =====
       
  1374 
       
  1375 14/11/2010
       
  1376 - bugfix isset() did not allow multiple parameter
       
  1377 - improvment of some error messages
       
  1378 - bugfix html_image did use removed property $request_use_auto_globals
       
  1379 - small performace patch in Smarty class
       
  1380 
       
  1381 13/11/2010
       
  1382 - bugfix  overloading problem when $smarty->fetch()/display() have been used in plugins
       
  1383 				(introduced with 3.0.2)
       
  1384 - code cleanup
       
  1385 								
       
  1386 ===== Smarty 3.0.3  =====
       
  1387 
       
  1388 13/11/2010
       
  1389 - bugfix on {debug}
       
  1390 - reverted location of loadPlugin() to Smarty class
       
  1391 - fixed comments in plugins
       
  1392 - fixed internal_config (removed unwanted code line)
       
  1393 - improvement  remove last linebreak from {function} definition
       
  1394 
       
  1395 ===== Smarty 3.0.2  =====
       
  1396 
       
  1397 12/11/2010
       
  1398 - reactivated $error_reporting property handling
       
  1399 - fixed typo in compile_continue
       
  1400 - fixed security in {fetch} plugin
       
  1401 - changed back plugin parameters to two. second is template object 
       
  1402   with transparent access to Smarty object
       
  1403 - fixed {config_load} scoping form compile time to run time
       
  1404 
       
  1405 ===== Smarty 3.0.0  =====
       
  1406 
       
  1407 
       
  1408 
       
  1409 11/11/2010
       
  1410 - major update including some API changes
       
  1411 
       
  1412 10/11/2010
       
  1413 - observe compile_id also for config files
       
  1414 
       
  1415 09/11/2010
       
  1416 -bugfix on  complex expressions as start value for {for} tag
       
  1417 request_use_auto_globals
       
  1418 04/11/2010
       
  1419 - bugfix do not allow access of dynamic and private object members of assigned objects when
       
  1420   security is enabled.
       
  1421 
       
  1422 01/11/2010
       
  1423 - bugfix related to E_NOTICE change.  {if empty($foo)} did fail when $foo contained a string 
       
  1424 
       
  1425 28/10/2010
       
  1426 - bugfix on compiling modifiers within $smarty special vars like {$smarty.post.{$foo|lower}}
       
  1427 
       
  1428 27/10/2010
       
  1429 - bugfix default parameter values did not work for template functions included with {include}
       
  1430 
       
  1431 25/10/2010
       
  1432 - bugfix for E_NOTICE change, array elements did not work as modifier parameter
       
  1433 
       
  1434 20/10/2010
       
  1435 - bugfix for the E_NOTICE change
       
  1436 
       
  1437 19/10/2010
       
  1438 - change Smarty does no longer mask out E_NOTICE by default during template processing
       
  1439 
       
  1440 13/10/2010
       
  1441 - bugfix removed ambiguity between ternary and stream variable in template syntax
       
  1442 - bugfix use caching properties of template instead of smarty object when compiling child {block}
       
  1443 - bugfix {*block}...{/block*} did throw an exception in template inheritance
       
  1444 - bugfix on template inheritance using nested eval or string resource in {extends} tags
       
  1445 - bugfix on output buffer handling in isCached() method
       
  1446 
       
  1447 =====  RC4 =====
       
  1448 
       
  1449 01/10/2010
       
  1450 - added {break} and {continue} tags for flow control of {foreach},{section},{for} and {while} loops
       
  1451 - change of 'string' resource. It's no longer evaluated and compiled files are now stored
       
  1452 - new 'eval' resource which evaluates a template without saving the compiled file
       
  1453 - change in isCached() method to allow multiple calls for the same template
       
  1454 
       
  1455 25/09/2010
       
  1456 - bugfix on some compiling modifiers
       
  1457 
       
  1458 24/09/2010
       
  1459 - bugfix merge_compiled_includes flag was not restored correctly in {block} tag
       
  1460 
       
  1461 22/09/2010
       
  1462 - bugfix on default modifier
       
  1463 
       
  1464 18/09/2010
       
  1465 - bugfix untility compileAllConfig() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS
       
  1466 - bugfix on templateExists() for extends resource
       
  1467 
       
  1468 17/09/2010
       
  1469 - bugfix {$smarty.template} and {$smarty.current_dir} did not compile correctly within {block} tags
       
  1470 - bugfix corrected error message on missing template files in extends resource
       
  1471 - bugfix untility compileAllTemplates() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS
       
  1472 
       
  1473 16/09/2010
       
  1474 - bugfix when a doublequoted modifier parameter did contain Smarty tags and ':'
       
  1475 
       
  1476 15/09/2010
       
  1477 - bugfix resolving conflict between '<%'/'%>' as custom Smarty delimiter and ASP tags
       
  1478 - use ucfirst for resource name on internal resource class names
       
  1479 
       
  1480 12/09/2010
       
  1481 - bugfix for change of 08/09/2010 (final {block} tags in subtemplates did not produce correct results)
       
  1482 
       
  1483 10/09/2010
       
  1484 - bugfix for change of 08/09/2010 (final {block} tags in subtemplates did not produce correct results)
       
  1485 
       
  1486 08/09/2010
       
  1487 - allow multiple template inheritance branches starting in subtemplates
       
  1488 
       
  1489 07/09/2010
       
  1490 - bugfix {counter} and {cycle} plugin assigned result to smarty variable not in local(template) scope
       
  1491 - bugfix templates containing just {strip} {/strip} tags did produce an error
       
  1492 
       
  1493 
       
  1494 23/08/2010
       
  1495 - fixed E_STRICT errors for uninitialized variables
       
  1496 
       
  1497 22/08/2010
       
  1498 - added attribute cache_id to {include} tag
       
  1499 
       
  1500 13/08/2010
       
  1501 - remove exception_handler property from Smarty class
       
  1502 - added Smarty's own exceptions SmartyException and SmartyCompilerException
       
  1503 
       
  1504 09/08/2010
       
  1505 - bugfix on modifier with doublequoted strings as parameter containing embedded tags
       
  1506 
       
  1507 06/08/2010
       
  1508 - bugfix when cascading some modifier like |strip|strip_tags modifier
       
  1509 
       
  1510 05/08/2010
       
  1511 - added plugin type modifiercompiler to produce compiled modifier code
       
  1512 - changed standard modifier plugins to the compiling versions whenever possible
       
  1513 - bugfix in nocache sections {include} must not cache the subtemplate
       
  1514 
       
  1515 02/08/2010
       
  1516 - bugfix strip did not work correctly in conjunction with comment lines
       
  1517 
       
  1518 31/07/2010
       
  1519 - bugfix on nocache attribute at {assign} and {append}
       
  1520 
       
  1521 30/07/2010
       
  1522 - bugfix passing scope attributes in doublequoted strings did not work at {include} {assign} and {append}
       
  1523 
       
  1524 25/07/2010
       
  1525 - another bugfix of change from 23/07/2010 when compiling modifier
       
  1526 
       
  1527 24/07/2010
       
  1528 - bugfix of change from 23/07/2010 when compiling modifier
       
  1529 
       
  1530 23/07/2010
       
  1531 - changed execution order. A variable filter does now run before modifiers on output of variables
       
  1532 - bugfix use always { and } as delimiter for debug.tpl
       
  1533 
       
  1534 
       
  1535 22/07/2010
       
  1536 - bugfix in templateExists() method
       
  1537 
       
  1538 20/07/2010
       
  1539 - fixed handling of { strip } tag with whitespaces
       
  1540 
       
  1541 15/07/2010
       
  1542 - bufix  {$smarty.template} does include now the relative path, not just filename
       
  1543 
       
  1544 =====  RC3 =====
       
  1545 
       
  1546 
       
  1547 
       
  1548 
       
  1549 15/07/2010
       
  1550 - make the date_format modifier work also on objects of the DateTime class
       
  1551 - implementation of parsetrees in the parser to close security holes and remove unwanted empty line in HTML output
       
  1552 
       
  1553 08/07/2010
       
  1554 - bugfix on assigning multidimensional arrays within templates
       
  1555 - corrected bugfix for truncate modifier
       
  1556 
       
  1557 07/07/2010
       
  1558 - bugfix the truncate modifier needs to check if the string is utf-8 encoded or not
       
  1559 - bugfix support of script files relative to trusted_dir
       
  1560 
       
  1561 06/07/2010
       
  1562 - create exception on recursive {extends} calls
       
  1563 - fixed reported line number at "unexpected closing tag " exception
       
  1564 - bugfix on escape:'mail' modifier
       
  1565 - drop exception if 'item' variable is equal 'from' variable in {foreach} tag
       
  1566 
       
  1567 01/07/2010
       
  1568 - removed call_user_func_array calls for optimization of compiled code when using registered modifiers and plugins
       
  1569 
       
  1570 25/06/2010
       
  1571 - bugfix escaping " when block tags are used within doublequoted strings
       
  1572 
       
  1573 24/06/2010
       
  1574 - replace internal get_time() calls with standard PHP5 microtime(true) calls in Smarty_Internal_Utility
       
  1575 - added $smarty->register->templateClass() and $smarty->unregister->templateClass() methods for supporting static classes with namespace
       
  1576 
       
  1577 
       
  1578 22/06/2010
       
  1579 - allow spaces between typecast and value in template syntax
       
  1580 - bugfix get correct count of traversables in {foreach} tag
       
  1581 
       
  1582 21/06/2010
       
  1583 - removed use of PHP shortags SMARTY_PHP_PASSTHRU mode
       
  1584 - improved speed of cache->clear() when a compile_id was specified and use_sub_dirs is true 
       
  1585 
       
  1586 20/06/2010
       
  1587 - replace internal get_time() calls with standard PHP5 microtime(true) calls
       
  1588 - closed security hole when php.ini asp_tags = on
       
  1589 
       
  1590 18/06/2010
       
  1591 - added __toString method to the Smarty_Variable class
       
  1592 
       
  1593 
       
  1594 14/06/2010
       
  1595 - make handling of Smarty comments followed by newline BC to Smarty2
       
  1596 
       
  1597 
       
  1598 =====  RC2 =====
       
  1599 
       
  1600 
       
  1601 
       
  1602 13/06/2010
       
  1603 - bugfix Smarty3 did not handle hexadecimals like 0x0F as numerical value
       
  1604 - bugifx Smarty3 did not accept numerical constants like .1 or 2. (without a leading or trailing digit)
       
  1605 
       
  1606 11/06/2010
       
  1607 - bugfix the lexer did fail on larger {literal} ... {/literal} sections
       
  1608 
       
  1609 03/06/2010
       
  1610 - bugfix on calling template functions like Smarty tags
       
  1611 
       
  1612 01/06/2010
       
  1613 - bugfix on template functions used with template inheritance
       
  1614 - removed /* vim: set expandtab: */ comments
       
  1615 - bugfix of auto literal problem introduce with fix of 31/05/2010
       
  1616 
       
  1617 31/05/2010
       
  1618 - bugfix the parser did not allow some smarty variables with special name like $for, $if, $else and others.
       
  1619 
       
  1620 27/05/2010
       
  1621 - bugfix on object chaining using variable properties
       
  1622 - make scope of {counter} and {cycle} tags again global as in Smarty2
       
  1623 
       
  1624 26/05/2010
       
  1625 - bugfix removed decrepated register_resource call in smarty_internal_template.php
       
  1626 
       
  1627 25/05/2010
       
  1628 - rewrite of template function handling to improve speed
       
  1629 - bugfix on file dependency when merge_compiled_includes = true
       
  1630 
       
  1631 
       
  1632 16/05/2010
       
  1633 - bugfix when passing parameter with numeric name like {foo 1='bar' 2='blar'}
       
  1634 
       
  1635 14/05/2010
       
  1636 - bugfix compile new config files if compile_check and force_compile = false
       
  1637 - added variable static classes names to template syntax
       
  1638 
       
  1639 11/05/2010
       
  1640 - bugfix  make sure that the cache resource is loaded in all conditions when template methods getCached... are called externally
       
  1641 - reverted the change 0f 30/04/2010. With the exception of forward references template functions can be again called by a standard tag.
       
  1642 
       
  1643 10/05/2010
       
  1644 - bugfix on {foreach} and {for} optimizations of 27/04/2010 
       
  1645 
       
  1646 09/05/2010
       
  1647 - update of template and config file parser because of minor parser generator bugs 
       
  1648 
       
  1649 07/05/2010
       
  1650 - bugfix on {insert} 
       
  1651 
       
  1652 06/05/2010
       
  1653 - bugfix when merging compiled templates and objects are passed as parameter of the {include} tag
       
  1654 
       
  1655 05/05/2010
       
  1656 - bugfix on {insert} to cache parameter
       
  1657 - implementation of $smarty->default_modifiers as in Smarty2
       
  1658 - bugfix on getTemplateVars method 
       
  1659 
       
  1660 01/05/2010
       
  1661 - bugfix on handling of variable method names at object chaning
       
  1662 
       
  1663 30/04/2010
       
  1664 - bugfix when comparing timestamps in sysplugins/smarty_internal_config.php
       
  1665 - work around of a substr_compare bug in older PHP5 versions
       
  1666 - bugfix on template inheritance for tag names starting with "block"
       
  1667 - bugfix on {function} tag with name attribute in doublequoted strings
       
  1668 - fix to make calling of template functions unambiguously by madatory usage of the {call} tag
       
  1669 
       
  1670 =====  RC1 =====
       
  1671 
       
  1672 27/04/2010
       
  1673 - change default of $debugging_ctrl to 'NONE'
       
  1674 - optimization of compiled code of {foreach} and {for} loops
       
  1675 - change of compiler for config variables
       
  1676 
       
  1677 27/04/2010
       
  1678 - bugfix in $smarty->cache->clear() method. (do not cache template object)
       
  1679 
       
  1680 
       
  1681 17/04/2010
       
  1682 - security fix in {math} plugin
       
  1683 
       
  1684 
       
  1685 12/04/2010
       
  1686 - bugfix in smarty_internal_templatecompilerbase (overloaded property)
       
  1687 - removed parser restrictions in using true,false and null as ID
       
  1688 
       
  1689 07/04/2010
       
  1690 - bugfix typo in smarty_internal_templatecompilerbase 
       
  1691 
       
  1692 31/03/2010
       
  1693 - compile locking by touching old compiled files to avoid concurrent compilations
       
  1694 
       
  1695 29/03/2010
       
  1696 - bugfix allow array definitions as modifier parameter
       
  1697 - bugfix observe compile_check property when loading config files
       
  1698 - added the template object as third filter parameter
       
  1699 
       
  1700 25/03/2010
       
  1701 - change of utility->compileAllTemplates() log messages
       
  1702 - bugfix on nocache code in {function} tags 
       
  1703 - new method utility->compileAllConfig() to compile all config files
       
  1704 
       
  1705 24/03/2010
       
  1706 - bugfix on register->modifier() error messages
       
  1707 
       
  1708 23/03/2010
       
  1709 - bugfix on template inheritance when calling multiple child/parent relations
       
  1710 - bugfix on caching mode SMARTY_CACHING_LIFETIME_SAVED and cache_lifetime = 0
       
  1711 
       
  1712 22/03/2010
       
  1713 - bugfix make directory separator operating system independend in compileAllTemplates()
       
  1714 
       
  1715 21/03/2010
       
  1716 - removed unused code in compileAllTemplates()
       
  1717 
       
  1718 19/03/2010
       
  1719 - bugfix for multiple {/block} tags on same line
       
  1720 
       
  1721 17/03/2010
       
  1722 - bugfix make $smarty->cache->clear() function independent from caching status
       
  1723 
       
  1724 16/03/2010
       
  1725 - bugfix on assign attribute at registered template objects
       
  1726 - make handling of modifiers on expression BC to Smarty2
       
  1727  
       
  1728 15/03/2010
       
  1729 - bugfix on block plugin calls
       
  1730 
       
  1731 11/03/2010
       
  1732 - changed parsing of <?php and ?> back to Smarty2 behaviour
       
  1733 
       
  1734 08/03/2010
       
  1735 - bugfix on uninitialized properties in smarty_internal_template
       
  1736 - bugfix on $smarty->disableSecurity()
       
  1737 
       
  1738 04/03/2010
       
  1739 - bugfix allow uppercase chars in registered resource names
       
  1740 - bugfix on accessing chained objects of static classes
       
  1741 
       
  1742 01/03/2010
       
  1743 - bugfix on nocache code in {block} tags if child template was included by {include}
       
  1744 
       
  1745 27/02/2010
       
  1746 - allow block tags inside double quoted string 
       
  1747 
       
  1748 26/02/2010
       
  1749 - cache modified check implemented
       
  1750 - support of access to a class constant from an object (since PHP 5.3)
       
  1751 
       
  1752 24/02/2010
       
  1753 - bugfix on expressions in doublequoted string enclosed in backticks
       
  1754 - added security property $static_classes for static class security
       
  1755 
       
  1756 18/02/2010
       
  1757 - bugfix on parsing Smarty tags inside <?xml ... ?>
       
  1758 - bugfix on truncate modifier
       
  1759 
       
  1760 17/02/2010
       
  1761 - removed restriction that modifiers did require surrounding parenthesis in some cases
       
  1762 - added {$smarty.block.child} special variable for template inheritance
       
  1763 
       
  1764 16/02/2010
       
  1765 - bugfix on <?xml ... ?> tags for all php_handling modes
       
  1766 - bugfix on parameter of variablefilter.htmlspecialchars.php plugin
       
  1767 
       
  1768 14/02/2010
       
  1769 - added missing _plugins property in smarty.class.php
       
  1770 - bugfix $smarty.const... inside doublequoted strings and backticks was compiled into wrong PHP code
       
  1771 
       
  1772 12/02/2010
       
  1773 - bugfix on nested {block} tags
       
  1774 - changed Smarty special variable $smarty.parent to $smarty.block.parent
       
  1775 - added support of nested {bock} tags
       
  1776 
       
  1777 10/02/2010
       
  1778 - avoid possible notice on $smarty->cache->clear(...), $smarty->clear_cache(....)
       
  1779 - allow Smarty tags inside <? ... ?> tags in SMARTY_PHP_QUOTE and SMARTY_PHP_PASSTHRU mode
       
  1780 - bugfix at new "for" syntax like {for $x=1 to 10 step 2}
       
  1781 
       
  1782 09/02/2010
       
  1783 - added $smarty->_tag_stack for tracing block tag hierarchy
       
  1784 
       
  1785 08/02/2010
       
  1786 - bugfix  use template fullpath at §smarty->cache->clear(...), $smarty->clear_cache(....)
       
  1787 - bugfix of cache filename on extended templates when force_compile=true
       
  1788 
       
  1789 07/02/2010
       
  1790 - bugfix on changes of 05/02/2010
       
  1791 - preserve line endings type form template source
       
  1792 - API changes (see README file)
       
  1793 
       
  1794 05/02/2010
       
  1795 - bugfix on modifier and block plugins with same name
       
  1796 
       
  1797 02/02/2010
       
  1798 - retaining newlines at registered functions and function plugins
       
  1799 
       
  1800 01/25/2010
       
  1801 - bugfix cache resource was not loaded when caching was globally off but enabled at a template object
       
  1802 - added test that $_SERVER['SCRIPT_NAME'] does exist in Smarty.class.php
       
  1803 
       
  1804 01/22/2010
       
  1805 - new method $smarty->createData([$parent]) for creating a data object (required for bugfixes below)
       
  1806 - bugfix config_load() method now works also on a data object
       
  1807 - bugfix get_config_vars() method now works also on a data and template objects
       
  1808 - bugfix clear_config() method now works also on a data and template objects
       
  1809 
       
  1810 01/19/2010
       
  1811 - bugfix on plugins if same plugin was called from a nocache section first and later from a cached section
       
  1812 
       
  1813 
       
  1814 ###beta 7###
       
  1815 
       
  1816 
       
  1817 01/17/2010
       
  1818 - bugfix on $smarty.const... in double quoted strings
       
  1819 
       
  1820 01/16/2010
       
  1821 - internal change of config file lexer/parser on handling of section names
       
  1822 - bugfix on registered objects (format parameter of register_object was not handled correctly)
       
  1823 
       
  1824 01/14/2010
       
  1825 - bugfix on backslash within single quoted strings
       
  1826 - bugfix allow absolute filepath for config files
       
  1827 - bugfix on special Smarty variable $smarty.cookies
       
  1828 - revert handling of newline on no output tags like {if...} 
       
  1829 - allow special characters in config file section names for Smarty2 BC
       
  1830 
       
  1831 01/13/2010
       
  1832 - bugfix on {if} tags 
       
  1833 
       
  1834 01/12/2010
       
  1835 - changed back modifier handling in parser. Some restrictions still apply:
       
  1836     if modifiers are used in side {if...} expression or in mathematical expressions 
       
  1837     parentheses must be used.
       
  1838 - bugfix the {function..} tag did not accept the name attribute in double quotes
       
  1839 - closed possible security hole at <?php ... ?> tags
       
  1840 - bugfix of config file parser on large config files
       
  1841 
       
  1842 
       
  1843 ###beta 6####
       
  1844 
       
  1845 01/11/2010
       
  1846 - added \n to the compiled code of the {if},{else},{elseif},{/if} tags to get output of newlines as expected by the template source
       
  1847 - added missing support of insert plugins
       
  1848 - added optional nocache attribute to {block} tags in parent template
       
  1849 - updated <?php...?> handling supporting now heredocs and newdocs. (thanks to Thue Jnaus Kristensen)
       
  1850 
       
  1851 01/09/2010
       
  1852 - bugfix on nocache {block} tags in parent templates
       
  1853 
       
  1854 01/08/2010
       
  1855 - bugfix on variable filters. filter/nofilter attributes did not work on output statements
       
  1856 
       
  1857 01/07/2010
       
  1858 - bugfix on file dependency at template inheritance
       
  1859 - bugfix on nocache code at template inheritance
       
  1860 
       
  1861 01/06/2010
       
  1862 - fixed typo in smarty_internal_resource_registered
       
  1863 - bugfix for custom delimiter at extends resource and {extends} tag
       
  1864 
       
  1865 01/05/2010
       
  1866 - bugfix sha1() calculations at extends resource and some general improvments on sha1() handling 
       
  1867 
       
  1868 
       
  1869 01/03/2010
       
  1870 - internal change on building cache files
       
  1871 
       
  1872 01/02/2010
       
  1873 - update cached_timestamp at the template object after cache file is written to avoid possible side effects
       
  1874 - use internally always SMARTY_CACHING_LIFETIME_* constants
       
  1875 
       
  1876 01/01/2010
       
  1877 - bugfix for obtaining plugins which must be included (related to change of 12/30/2009)
       
  1878 - bugfix for {php} tag (trow an exception if allow_php_tag = false)
       
  1879 
       
  1880 12/31/2009
       
  1881 - optimization of generated code for doublequoted strings containing variables
       
  1882 - rewrite of {function} tag handling
       
  1883   - can now be declared in an external subtemplate
       
  1884   - can contain nocache sections (nocache_hash handling)
       
  1885   - can be called in noccache sections (nocache_hash handling)
       
  1886   - new {call..} tag to call template functions with a variable name {call name=$foo}
       
  1887 - fixed nocache_hash handling in merged compiled templates
       
  1888 
       
  1889 12/30/2009
       
  1890 - bugfix for plugins defined in the script as smarty_function_foo
       
  1891 
       
  1892 12/29/2009
       
  1893 - use sha1() for filepath encoding
       
  1894 - updates on nocache_hash handling
       
  1895 - internal change on merging some data
       
  1896 - fixed cache filename for custom resources 
       
  1897 
       
  1898 12/28/2009
       
  1899 - update for security fixes
       
  1900 - make modifier plugins always trusted
       
  1901 - fixed bug loading modifiers in child template at template inheritance
       
  1902 
       
  1903 12/27/2009
       
  1904 --- this is a major update with a couple of internal changes ---
       
  1905 - new config file lexer/parser (thanks to Thue Jnaus Kristensen)
       
  1906 - template lexer/parser fixes for PHP and {literal} handing (thanks to Thue Jnaus Kristensen)
       
  1907 - fix on registered plugins with different type but same name
       
  1908 - rewrite of plugin handling (optimized execution speed)
       
  1909 - closed a security hole regarding PHP code injection into cache files
       
  1910 - fixed bug in clear cache handling
       
  1911 - Renamed a couple of internal classes
       
  1912 - code cleanup for merging compiled templates
       
  1913 - couple of runtime optimizations (still not all done)
       
  1914 - update of getCachedTimestamp()
       
  1915 - fixed bug on modifier plugins at nocache output
       
  1916 
       
  1917 12/19/2009
       
  1918 - bugfix on comment lines in config files
       
  1919 
       
  1920 12/17/2009
       
  1921 - bugfix of parent/global variable update at included/merged subtemplates
       
  1922 - encode final template filepath into filename of compiled and cached files
       
  1923 - fixed {strip} handling in auto literals
       
  1924 
       
  1925 12/16/2009
       
  1926 - update of changelog
       
  1927 - added {include file='foo.tpl' inline}  inline option to merge compiled code of subtemplate into the calling template
       
  1928 
       
  1929 12/14/2009
       
  1930 - fixed sideefect of last modification (objects in array index did not work anymore)
       
  1931 
       
  1932 12/13/2009
       
  1933 - allow boolean negation ("!") as operator on variables outside {if} tag
       
  1934 
       
  1935 12/12/2009
       
  1936 - bugfix on single quotes inside {function} tag
       
  1937 - fix short append/prepend attributes in {block} tags
       
  1938 
       
  1939 12/11/2009
       
  1940 - bugfix on clear_compiled_tpl (avoid possible warning)
       
  1941 
       
  1942 12/10/2009
       
  1943 - bugfix on {function} tags and template inheritance
       
  1944 
       
  1945 12/05/2009
       
  1946 - fixed problem when a cached file was fetched several times
       
  1947 - removed unneeded lexer code
       
  1948 
       
  1949 12/04/2009
       
  1950 - added max attribute to for loop
       
  1951 - added security mode allow_super_globals
       
  1952 
       
  1953 12/03/2009
       
  1954 - template inheritance: child templates can now call functions defined by the {function} tag in the parent template
       
  1955 - added {for $foo = 1 to 5 step 2}  syntax
       
  1956 - bugfix for {$foo.$x.$y.$z}
       
  1957 
       
  1958 12/01/2009
       
  1959 - fixed parsing of names of special formated tags like if,elseif,while,for,foreach
       
  1960 - removed direct access to constants in templates because of some syntax problems
       
  1961 - removed cache resource plugin for mysql from the distribution
       
  1962 - replaced most hard errors (exceptions) by softerrors(trigger_error) in plugins
       
  1963 - use $template_class property for template class name when compiling {include},{eval} and {extends} tags
       
  1964 
       
  1965 11/30/2009
       
  1966 - map 'true' to SMARTY_CACHING_LIFETIME_CURRENT for the $smarty->caching parameter
       
  1967 - allow {function} tags within {block} tags
       
  1968 
       
  1969 11/28/2009
       
  1970 - ignore compile_id at debug template
       
  1971 - added direct access to constants in templates
       
  1972 - some lexer/parser optimizations
       
  1973 
       
  1974 11/27/2009
       
  1975 - added cache resource MYSQL plugin
       
  1976 
       
  1977 11/26/2009
       
  1978 - bugfix on nested doublequoted strings
       
  1979 - correct line number on unknown tag error message
       
  1980 - changed {include} compiled code
       
  1981 - fix on checking dynamic varibales with error_unassigned = true
       
  1982 
       
  1983 11/25/2009
       
  1984 - allow the following writing for boolean: true, TRUE, True, false, FALSE, False
       
  1985 - {strip} tag functionality rewritten
       
  1986 
       
  1987 11/24/2009
       
  1988 - bugfix for $smarty->config_overwrite = false
       
  1989 
       
  1990 11/23/2009
       
  1991 - suppress warnings on unlink caused by race conditions
       
  1992 - correct line number on unknown tag error message
       
  1993 
       
  1994 ------- beta 5
       
  1995 11/23/2009
       
  1996 - fixed configfile parser for text starting with a numeric char
       
  1997 - the default_template_handler_func may now return a filepath to a template source
       
  1998 
       
  1999 11/20/2009
       
  2000 - bugfix for empty config files
       
  2001 - convert timestamps of registered resources to integer
       
  2002 
       
  2003 11/19/2009
       
  2004 - compiled templates are no longer touched with the filemtime of template source
       
  2005 
       
  2006 11/18/2009
       
  2007 - allow integer as attribute name in plugin calls
       
  2008 
       
  2009 ------- beta 4
       
  2010 11/18/2009
       
  2011 - observe umask settings when setting file permissions
       
  2012 - avoide unneeded cache file creation for subtemplates which did occur in some situations
       
  2013 - make $smarty->_current_file available during compilation for Smarty2 BC
       
  2014 
       
  2015 11/17/2009
       
  2016 - sanitize compile_id and cache_id (replace illegal chars with _)
       
  2017 - use _dir_perms and _file_perms properties at file creation
       
  2018 - new constant SMARTY_RESOURCE_DATE_FORMAT (default '%b %e, %Y') which is used as default format in modifier date_format
       
  2019 - added {foreach $array as $key=>$value} syntax
       
  2020 - renamed extend tag and resource to extends: {extends file='foo.tol'} , $smarty->display('extends:foo.tpl|bar.tpl);
       
  2021 - bugfix cycle plugin
       
  2022 
       
  2023 11/15/2009
       
  2024 - lexer/parser optimizations on quoted strings
       
  2025 
       
  2026 11/14/2009
       
  2027 - bugfix on merging compiled templates when source files got removed or renamed.
       
  2028 - bugfix modifiers on registered object tags
       
  2029 - fixed locaion where outputfilters are running
       
  2030 - fixed config file definitions at EOF
       
  2031 - fix on merging compiled templates with nocache sections in nocache includes
       
  2032 - parser could run into a PHP error on wrong file attribute
       
  2033 
       
  2034 11/12/2009
       
  2035 - fixed variable filenames in {include_php} and {insert}
       
  2036 - added scope to Smarty variables in the {block} tag compiler
       
  2037 - fix on nocache code in child {block} tags
       
  2038 
       
  2039 11/11/2009
       
  2040 - fixed {foreachelse}, {forelse}, {sectionelse} compiled code at nocache variables
       
  2041 - removed checking for reserved variables
       
  2042 - changed debugging handling
       
  2043 
       
  2044 11/10/2009
       
  2045 - fixed preg_qoute on delimiters
       
  2046 
       
  2047 11/09/2009
       
  2048 - lexer/parser bugfix 
       
  2049 - new SMARTY_SPL_AUTOLOAD constant to control the autoloader option
       
  2050 - bugfix for {function} block tags in included templates
       
  2051 
       
  2052 11/08/2009
       
  2053 - fixed alphanumeric array index 
       
  2054 - bugfix on complex double quoted strings
       
  2055 
       
  2056 11/05/2009
       
  2057 - config_load method can now be called on data and template objects
       
  2058 
       
  2059 11/04/2009
       
  2060 - added typecasting support for template variables
       
  2061 - bugfix on complex indexed special Smarty variables
       
  2062 
       
  2063 11/03/2009
       
  2064 - fixed parser error on objects with special smarty vars
       
  2065 - fixed file dependency for {incude} inside {block} tag
       
  2066 - fixed not compiling on non existing compiled templates when compile_check = false
       
  2067 - renamed function names of autoloaded Smarty methods to Smarty_Method_....
       
  2068 - new security_class property (default is Smarty_Security)
       
  2069 
       
  2070 11/02/2009
       
  2071 - added neq,lte,gte,mod as aliases to if conditions 
       
  2072 - throw exception on illegal Smarty() constructor calls
       
  2073 
       
  2074 10/31/2009
       
  2075 - change of filenames in sysplugins folder for internal spl_autoload function
       
  2076 - lexer/parser changed for increased compilation speed
       
  2077 
       
  2078 10/27/2009
       
  2079 - fixed missing quotes in include_php.php
       
  2080 
       
  2081 10/27/2009
       
  2082 - fixed typo in method.register_resource
       
  2083 - pass {} through as literal
       
  2084 
       
  2085 10/26/2009
       
  2086 - merge only compiled subtemplates into the compiled code of the main template
       
  2087 
       
  2088 10/24/2009
       
  2089 - fixed nocache vars at internal block tags
       
  2090 - fixed merging of recursive includes
       
  2091 
       
  2092 10/23/2009
       
  2093 - fixed nocache var problem
       
  2094 
       
  2095 10/22/2009
       
  2096 - fix trimwhitespace outputfilter parameter
       
  2097 
       
  2098 10/21/2009
       
  2099 - added {$foo++}{$foo--} syntax
       
  2100 - buxfix changed PHP "if (..):" to "if (..){" because of possible bad code when concenating PHP tags
       
  2101 - autoload Smarty internal classes
       
  2102 - fixed file dependency for config files 
       
  2103 - some code optimizations
       
  2104 - fixed function definitions on some autoloaded methods
       
  2105 - fixed nocache variable inside if condition of {if} tag
       
  2106 
       
  2107 10/20/2009
       
  2108 - check at compile time for variable filter to improve rendering speed if no filter is used
       
  2109 - fixed bug at combination of {elseif} tag and {...} in double quoted strings of static class parameter
       
  2110 
       
  2111 10/19/2009
       
  2112 - fixed compiled template merging on variable double quoted strings as name
       
  2113 - fixed bug in caching mode 2 and cache_lifetime -1 
       
  2114 - fixed modifier support on block tags
       
  2115 
       
  2116 10/17/2009
       
  2117 - remove ?>\n<?php and ?><?php sequences from compiled template
       
  2118 
       
  2119 10/15/2009
       
  2120 - buxfix on assigning array elements inside templates
       
  2121 - parser bugfix on array access
       
  2122 
       
  2123 10/15/2009
       
  2124 - allow bit operator '&' inside {if} tag
       
  2125 - implementation of ternary operator
       
  2126 
       
  2127 10/13/2009
       
  2128 - do not recompile evaluated templates if reused just with other data
       
  2129 - recompile config files when config properties did change
       
  2130 - some lexer/parser otimizations
       
  2131 
       
  2132 10/11/2009
       
  2133 - allow {block} tags inside included templates
       
  2134 - bugfix for resource plugins in Smarty2 format
       
  2135 - some optimizations of internal.template.php
       
  2136 
       
  2137 10/11/2009
       
  2138 - fixed bug when template with same name is used with different data objects
       
  2139 - fixed bug with double quoted name attribute at {insert} tag
       
  2140 - reenabled assign_by_ref and append_by_ref methods
       
  2141 
       
  2142 10/07/2009
       
  2143 - removed block nesting checks for {capture}
       
  2144 
       
  2145 10/05/2009
       
  2146 - added support of "isinstance" to {if} tag
       
  2147 
       
  2148 10/03/2009
       
  2149 - internal changes to improve performance
       
  2150 - fix registering of filters for classes
       
  2151 
       
  2152 10/01/2009
       
  2153 - removed default timezone setting
       
  2154 - reactivated PHP resource for simple PHP templates. Must set allow_php_templates = true to enable
       
  2155 - {PHP} tag can be enabled by allow_php_tag = true
       
  2156 
       
  2157 09/30/2009
       
  2158 - fixed handling template_exits method for all resource types
       
  2159 - bugfix for other cache resources than file
       
  2160 - the methods assign_by_ref is now wrapped to assign, append_by_ref to append
       
  2161 - allow arrays of variables pass in display, fetch and createTemplate calls
       
  2162   $data = array('foo'=>'bar','foo2'=>'blar');
       
  2163   $smarty->display('my.tpl',$data);
       
  2164 
       
  2165 09/29/2009
       
  2166 - changed {php} tag handling
       
  2167 - removed support of Smarty::instance()
       
  2168 - removed support of PHP resource type
       
  2169 - improved execution speed of {foreach} tags
       
  2170 - fixed bug in {section} tag
       
  2171 
       
  2172 09/23/2009
       
  2173 - improvements and bugfix on {include} tag handling
       
  2174 NOTICE: existing compiled template and cache files must be deleted
       
  2175 
       
  2176 09/19/2009
       
  2177 - replace internal "eval()" calls by "include" during rendering process
       
  2178 - speed improvment for templates which have included subtemplates
       
  2179     the compiled code of included templates is merged into the compiled code of the parent template
       
  2180 - added logical operator "xor" for {if} tag
       
  2181 - changed parameter ordering for Smarty2 BC
       
  2182     fetch($template, $cache_id = null, $compile_id = null, $parent = null)
       
  2183     display($template, $cache_id = null, $compile_id = null, $parent = null)
       
  2184     createTemplate($template, $cache_id = null, $compile_id = null, $parent = null)
       
  2185 - property resource_char_set is now replaced by constant SMARTY_RESOURCE_CHAR_SET
       
  2186 - fixed handling of classes in registered blocks
       
  2187 - speed improvement of lexer on text sections
       
  2188 
       
  2189 09/01/2009
       
  2190 - dropped nl2br as plugin
       
  2191 - added '<>' as comparission operator in {if} tags
       
  2192 - cached caching_lifetime property to cache_liftime for backward compatibility with Smarty2.
       
  2193   {include} optional attribute is also now cache_lifetime
       
  2194 - fixed trigger_error method (moved into Smarty class)
       
  2195 - version is now  Beta!!!
       
  2196 
       
  2197 
       
  2198 08/30/2009
       
  2199 - some speed optimizations on loading internal plugins
       
  2200 
       
  2201 
       
  2202 08/29/2009
       
  2203 - implemented caching of registered Resources
       
  2204 - new property 'auto_literal'. if true(default)  '{ ' and ' }' interpreted as literal, not as Smarty delimiter
       
  2205 
       
  2206 
       
  2207 08/28/2009
       
  2208 - Fix on line breaks inside {if} tags
       
  2209 
       
  2210 08/26/2009
       
  2211 - implemented registered resources as in Smarty2. NOTE: caching does not work yet
       
  2212 - new property 'force_cache'. if true it forces the creation of a new cache file
       
  2213 - fixed modifiers on arrays
       
  2214 - some speed optimization on loading internal classes
       
  2215 
       
  2216 
       
  2217 08/24/2009
       
  2218 - fixed typo in lexer definition for '!==' operator
       
  2219 - bugfix - the ouput of plugins was not cached
       
  2220 - added global variable SCRIPT_NAME
       
  2221 
       
  2222 08/21/2009
       
  2223 - fixed problems whitespace in conjuction with custom delimiters
       
  2224 - Smarty tags can now be used as value anywhere
       
  2225 
       
  2226 08/18/2009
       
  2227 - definition of template class name moded in internal.templatebase.php
       
  2228 - whitespace parser changes
       
  2229 
       
  2230 08/12/2009
       
  2231 - fixed parser problems
       
  2232 
       
  2233 08/11/2009
       
  2234 - fixed parser problems with custom delimiter
       
  2235 
       
  2236 08/10/2009
       
  2237 - update of mb support in plugins
       
  2238 
       
  2239 
       
  2240 08/09/2009
       
  2241 - fixed problems with doublequoted strings at name attribute of {block} tag
       
  2242 - bugfix at scope attribute of {append} tag
       
  2243 
       
  2244 08/08/2009
       
  2245 - removed all internal calls of Smarty::instance()
       
  2246 - fixed code in double quoted strings
       
  2247 
       
  2248 08/05/2009
       
  2249 - bugfix mb_string support
       
  2250 - bugfix of \n.\t etc in double quoted strings
       
  2251 
       
  2252 07/29/2009
       
  2253 - added syntax for variable config vars  like  #$foo#
       
  2254 
       
  2255 07/28/2009
       
  2256 - fixed parsing of $smarty.session vars containing objects
       
  2257 
       
  2258 07/22/2009
       
  2259 - fix of "$" handling in double quoted strings
       
  2260 
       
  2261 07/21/2009
       
  2262 - fix that {$smarty.current_dir} return correct value within {block} tags.
       
  2263 
       
  2264 07/20/2009
       
  2265 - drop error message on unmatched {block} {/block} pairs
       
  2266 
       
  2267 07/01/2009
       
  2268 - fixed smarty_function_html_options call in plugin function.html_select_date.php (missing ,)
       
  2269 
       
  2270 06/24/2009
       
  2271 - fixed smarty_function_html_options call in plugin function.html_select_date.php
       
  2272 
       
  2273 06/22/2009
       
  2274 - fix on \n and spaces inside smarty tags
       
  2275 - removed request_use_auto_globals propert as it is no longer needed because Smarty 3 will always run under PHP 5
       
  2276 
       
  2277 
       
  2278 06/18/2009
       
  2279 - fixed compilation of block plugins when caching enabled
       
  2280 - added $smarty.current_dir  which returns the current working directory
       
  2281 
       
  2282 06/14/2009
       
  2283 - fixed array access on super globals
       
  2284 - allow smarty tags within xml tags
       
  2285 
       
  2286 06/13/2009
       
  2287 - bugfix at extend resource: create unique files for compiled template and cache for each combination of template files
       
  2288 - update extend resource to handle appen and prepend block attributes
       
  2289 - instantiate classes of plugins instead of calling them static
       
  2290 
       
  2291 06/03/2009
       
  2292 - fixed repeat at block plugins
       
  2293 
       
  2294 05/25/2009
       
  2295 - fixed problem with caching of compiler plugins
       
  2296 
       
  2297 05/14/2009
       
  2298 - fixed directory separator handling
       
  2299 
       
  2300 05/09/2009
       
  2301 - syntax change for stream variables
       
  2302 - fixed bug when using absolute template filepath and caching
       
  2303 
       
  2304 05/08/2009
       
  2305 - fixed bug of {nocache}  tag in included templates
       
  2306 
       
  2307 05/06/2009
       
  2308 - allow that plugins_dir folder names can end without directory separator
       
  2309 
       
  2310 05/05/2009
       
  2311 - fixed E_STRICT incompabilities
       
  2312 - {function} tag bug fix 
       
  2313 - security policy definitions have been moved from plugins folder to file Security.class.php in libs folder
       
  2314 - added allow_super_global configuration to security
       
  2315 
       
  2316 04/30/2009
       
  2317 - functions defined with the {function} tag now always have global scope
       
  2318 
       
  2319 04/29/2009
       
  2320 - fixed problem with directory setter methods
       
  2321 - allow that cache_dir can end without directory separator
       
  2322 
       
  2323 04/28/2009
       
  2324 - the {function} tag can no longer overwrite standard smarty tags
       
  2325 - inherit functions defined by the {fuction} tag into subtemplates
       
  2326 - added {while <statement>} sytax to while tag
       
  2327 
       
  2328 04/26/2009
       
  2329 - added trusted stream checking to security
       
  2330 - internal changes at file dependency check for caching
       
  2331 
       
  2332 04/24/2009
       
  2333 - changed name of {template} tag to {function}
       
  2334 - added new {template} tag
       
  2335 
       
  2336 04/23/2009
       
  2337 - fixed access of special smarty variables from included template
       
  2338 
       
  2339 04/22/2009
       
  2340 - unified template stream syntax with standard Smarty resource syntax  $smarty->display('mystream:mytemplate')
       
  2341 
       
  2342 04/21/2009
       
  2343 - change of new style syntax for forach. Now:  {foreach $array as $var}  like in PHP
       
  2344 
       
  2345 04/20/2009
       
  2346 - fixed "$foo.bar  ..." variable replacement in double quoted strings
       
  2347 - fixed error in {include} tag with variable file attribute
       
  2348 
       
  2349 04/18/2009
       
  2350 - added stream resources  ($smarty->display('mystream://mytemplate'))
       
  2351 - added stream variables  {$mystream:myvar}
       
  2352 
       
  2353 04/14/2009
       
  2354 - fixed compile_id handling on {include} tags
       
  2355 - fixed append/prepend attributes in {block} tag
       
  2356 - added  {if  'expression' is in 'array'}  syntax
       
  2357 - use crc32 as hash for compiled config files.
       
  2358 
       
  2359 04/13/2009
       
  2360 - fixed scope problem with parent variables when appending variables within templates.
       
  2361 - fixed code for {block} without childs (possible sources for notice errors removed)
       
  2362 
       
  2363 04/12/2009
       
  2364 - added append and prepend attribute to {block} tag
       
  2365 
       
  2366 04/11/2009
       
  2367 - fixed variables in 'file' attribute of {extend} tag
       
  2368 - fixed problems in modifiers (if mb string functions not present)
       
  2369 
       
  2370 04/10/2009
       
  2371 - check if mb string functions available otherwise fallback to normal string functions
       
  2372 - added global variable scope SMARTY_GLOBAL_SCOPE 
       
  2373 - enable 'variable' filter by default
       
  2374 - fixed {$smarty.block.parent.foo} 
       
  2375 - implementation of a 'variable' filter as replacement for default modifier
       
  2376 
       
  2377 04/09/2009
       
  2378 - fixed execution of filters defined by classes
       
  2379 - compile the always the content of {block} tags to make shure that the filters are running over it
       
  2380 - syntax corrections on variable object property
       
  2381 - syntax corrections on array access in dot syntax
       
  2382 
       
  2383 04/08/2009
       
  2384 - allow variable object property
       
  2385 
       
  2386 04/07/2009
       
  2387 - changed variable scopes to SMARTY_LOCAL_SCOPE, SMARTY_PARENT_SCOPE, SMARTY_ROOT_SCOPE to avoid possible conflicts with user constants
       
  2388 - Smarty variable global attribute replaced with scope attribute
       
  2389 
       
  2390 04/06/2009
       
  2391 - variable scopes LOCAL_SCOPE, PARENT_SCOPE, ROOT_SCOPE
       
  2392 - more getter/setter methods
       
  2393 
       
  2394 04/05/2009
       
  2395 - replaced new array looping syntax {for $foo in $array} with {foreach $foo in $array} to avoid confusion
       
  2396 - added append array for short form of assign  {$foo[]='bar'} and allow assignments to nested arrays {$foo['bla']['blue']='bar'}
       
  2397 
       
  2398 04/04/2009
       
  2399 - make output of template default handlers cachable and save compiled source
       
  2400 - some fixes on yesterdays update
       
  2401 
       
  2402 04/03/2006
       
  2403 - added registerDefaultTemplateHandler method and functionallity
       
  2404 - added registerDefaultPluginHandler method and functionallity
       
  2405 - added {append} tag to extend Smarty array variabled
       
  2406 
       
  2407 04/02/2009
       
  2408 - added setter/getter methods
       
  2409 - added $foo@first and $foo@last properties at {for} tag
       
  2410 - added $set_timezone (true/false) property to setup optionally the default time zone
       
  2411 
       
  2412 03/31/2009
       
  2413 - bugfix smarty.class and internal.security_handler
       
  2414 - added compile_check configuration 
       
  2415 - added setter/getter methods
       
  2416 
       
  2417 03/30/2009
       
  2418 - added all major setter/getter methods
       
  2419 
       
  2420 03/28/2009
       
  2421 - {block} tags can be nested now
       
  2422 - md5 hash function replace with crc32 for speed optimization
       
  2423 - file order for exted resource inverted
       
  2424 - clear_compiled_tpl and clear_cache_all will not touch .svn folder any longer
       
  2425 
       
  2426 03/27/2009
       
  2427 - added extend resource
       
  2428 
       
  2429 03/26/2009
       
  2430 - fixed parser not to create error on `word` in double quoted strings
       
  2431 - allow PHP  array(...)
       
  2432 - implemented  $smarty.block.name.parent to access parent block content
       
  2433 - fixed smarty.class
       
  2434 
       
  2435 
       
  2436 03/23/2009
       
  2437 - fixed {foreachelse} and {forelse} tags
       
  2438 
       
  2439 03/22/2009
       
  2440 - fixed possible sources for notice errors
       
  2441 - rearrange SVN into distribution and development folders
       
  2442 
       
  2443 03/21/2009
       
  2444 - fixed exceptions in function plugins
       
  2445 - fixed notice error in Smarty.class.php
       
  2446 - allow chained objects to span multiple lines
       
  2447 - fixed error in modifiers 
       
  2448 
       
  2449 03/20/2009
       
  2450 - moved /plugins folder into /libs folder
       
  2451 - added noprint modifier
       
  2452 - autoappend a directory separator if the xxxxx_dir definition have no trailing one
       
  2453 
       
  2454 03/19/2009
       
  2455 - allow array definition as modifier parameter
       
  2456 - changed modifier to use multi byte string funktions. 
       
  2457 
       
  2458 03/17/2009
       
  2459 - bugfix 
       
  2460 
       
  2461 03/15/2009
       
  2462 - added {include_php} tag for BC
       
  2463 - removed @ error suppression 
       
  2464 - bugfix fetch did always repeat output of first call when calling same template several times
       
  2465 - PHPunit tests extended
       
  2466 
       
  2467 03/13/2009
       
  2468 - changed block syntax to be Smarty like  {block:titel} -> {block name=titel}
       
  2469 - compiling of {block} and {extend} tags rewriten for better performance
       
  2470 - added special Smarty variable block  ($smarty.block.foo} returns the parent definition of block foo
       
  2471 - optimization of {block} tag compiled code.
       
  2472 - fixed problem with escaped double quotes in double quoted strings
       
  2473 
       
  2474 03/12/2009
       
  2475 - added support of template inheritance by {extend } and {block } tags.
       
  2476 - bugfix comments within literals
       
  2477 - added scope attribuie to {include} tag
       
  2478 
       
  2479 03/10/2009
       
  2480 - couple of bugfixes and improvements
       
  2481 - PHPunit tests extended
       
  2482 
       
  2483 03/09/2009
       
  2484 - added support for global template vars.  {assign_global...}  $smarty->assign_global(...)
       
  2485 - added direct_access_security
       
  2486 - PHPunit tests extended
       
  2487 - added missing {if} tag conditions like "is div by" etc.
       
  2488 
       
  2489 03/08/2009
       
  2490 - splitted up the Compiler class to make it easier to use a coustom compiler
       
  2491 - made default plugins_dir relative to Smarty root and not current working directory
       
  2492 - some changes to make the lexer parser better configurable
       
  2493 - implemented {section} tag for Smarty2 BC
       
  2494 
       
  2495 03/07/2009
       
  2496 - fixed problem with comment tags
       
  2497 - fixed problem with #xxxx in double quoted string
       
  2498 - new {while} tag implemented
       
  2499 - made lexer and paser class configurable as $smarty property
       
  2500 - Smarty method get_template_vars implemented
       
  2501 - Smarty method get_registered_object implemented
       
  2502 - Smarty method trigger_error implemented
       
  2503 - PHPunit tests extended
       
  2504 
       
  2505 03/06/2009
       
  2506 - final changes on config variable handling
       
  2507 - parser change - unquoted strings will by be converted into single quoted strings
       
  2508 - PHPunit tests extended
       
  2509 - some code cleanup
       
  2510 - fixed problem on catenate strings with expression
       
  2511 - update of count_words modifier
       
  2512 - bugfix on comment tags
       
  2513 
       
  2514 
       
  2515 03/05/2009
       
  2516 - bugfix on <?xml...> tag with caching enabled
       
  2517 - changes on exception handling (by Monte)
       
  2518 
       
  2519 03/04/2009
       
  2520 - added support for config variables
       
  2521 - bugfix on <?xml...> tag
       
  2522 
       
  2523 03/02/2009
       
  2524 - fixed unqouted strings within modifier parameter
       
  2525 - bugfix parsing of mofifier parameter
       
  2526 
       
  2527 03/01/2009
       
  2528 - modifier chaining works now as in Smarty2
       
  2529 
       
  2530 02/28/2009
       
  2531 - changed handling of unqouted strings
       
  2532 
       
  2533 02/26/2009
       
  2534 - bugfix
       
  2535 - changed $smarty.capture.foo to be global for Smarty2 BC.
       
  2536 
       
  2537 02/24/2009
       
  2538 - bugfix {php} {/php} tags for backward compatibility
       
  2539 - bugfix for expressions on arrays
       
  2540 - fixed usage of "null" value
       
  2541 - added $smarty.foreach.foo.first and $smarty.foreach.foo.last
       
  2542 
       
  2543 02/06/2009
       
  2544 - bugfix for request variables without index  for example $smarty.get
       
  2545 - experimental solution for variable functions in static class
       
  2546 
       
  2547 02/05/2009
       
  2548 - update of popup plugin
       
  2549 - added config variables to template parser (load config functions still missing)
       
  2550 - parser bugfix for empty quoted strings
       
  2551 
       
  2552 02/03/2009
       
  2553 - allow array of objects as static class variabales.
       
  2554 - use htmlentities at source output at template errors.
       
  2555 
       
  2556 02/02/2009
       
  2557 - changed search order on modifiers to look at plugins folder first
       
  2558 - parser bug fix for modifier on array elements  $foo.bar|modifier
       
  2559 - parser bug fix on single quoted srings
       
  2560 - internal: splitted up compiler plugin files 
       
  2561 
       
  2562 02/01/2009
       
  2563 - allow method chaining on static classes
       
  2564 - special Smarty variables  $smarty.... implemented
       
  2565 - added {PHP} {/PHP} tags for backward compatibility
       
  2566 
       
  2567 01/31/2009
       
  2568 - added {math} plugin for Smarty2 BC
       
  2569 - added template_exists method
       
  2570 - changed Smarty3 method enable_security() to enableSecurity() to follow camelCase standards
       
  2571 
       
  2572 01/30/2009
       
  2573 - bugfix in single quoted strings
       
  2574 - changed syntax for variable property access from $foo:property to $foo@property because of ambiguous syntax at modifiers
       
  2575 
       
  2576 01/29/2009
       
  2577 - syntax for array definition changed from (1,2,3) to [1,2,3] to remove ambiguous syntax
       
  2578 - allow  {for $foo in [1,2,3]} syntax
       
  2579 - bugfix in double quoted strings
       
  2580 - allow <?xml...?> tags in template even if short_tags are enabled
       
  2581 
       
  2582 01/28/2009
       
  2583 - fixed '!==' if condition.
       
  2584 
       
  2585 01/28/2009
       
  2586 - added support of {strip} {/strip} tag.
       
  2587 
       
  2588 01/27/2009
       
  2589 - bug fix on backticks in double quoted strings at objects
       
  2590 
       
  2591 01/25/2009
       
  2592 - Smarty2 modfiers added to SVN
       
  2593 
       
  2594 01/25/2009
       
  2595 - bugfix allow arrays at object properties in Smarty syntax
       
  2596 - the template object is now passed as additional parameter at plugin calls
       
  2597 - clear_compiled_tpl method completed
       
  2598 
       
  2599 01/20/2009
       
  2600 - access to class constants implemented  ( class::CONSTANT )
       
  2601 - access to static class variables implemented ( class::$variable )
       
  2602 - call of static class methods implemented ( class::method() )
       
  2603 
       
  2604 01/16/2009
       
  2605 - reallow leading _ in variable names  {$_var}
       
  2606 - allow array of objects  {$array.index->method()} syntax
       
  2607 - finished work on clear_cache and clear_cache_all methods
       
  2608 
       
  2609 01/11/2009
       
  2610 - added support of {literal} tag
       
  2611 - added support of {ldelim} and {rdelim} tags
       
  2612 - make code compatible to run with E_STRICT error setting
       
  2613 
       
  2614 01/08/2009
       
  2615 - moved clear_assign and clear_all_assign to internal.templatebase.php
       
  2616 - added assign_by_ref, append and append_by_ref methods
       
  2617 
       
  2618 01/02/2009
       
  2619 - added load_filter method
       
  2620 - fished work on filter handling
       
  2621 - optimization of plugin loading
       
  2622 
       
  2623 12/30/2008
       
  2624 - added compiler support of registered object 
       
  2625 - added backtick support in doubled quoted strings for backward compatibility
       
  2626 - some minor bug fixes and improvments
       
  2627 
       
  2628 12/23/2008
       
  2629 - fixed problem of not working "not" operator in if-expressions
       
  2630 - added handling of compiler function plugins
       
  2631 - finished work on (un)register_compiler_function method
       
  2632 - finished work on (un)register_modifier method
       
  2633 - plugin handling from plugins folder changed for modifier plugins
       
  2634   deleted - internal.modifier.php
       
  2635 - added modifier chaining to parser 
       
  2636 
       
  2637 12/17/2008
       
  2638 - finished (un)register_function method
       
  2639 - finished (un)register_block method
       
  2640 - added security checking for PHP functions in PHP templates
       
  2641 - plugin handling from plugins folder rewritten
       
  2642   new - internal.plugin_handler.php
       
  2643   deleted - internal.block.php
       
  2644   deleted - internal.function.php
       
  2645 - removed plugin checking from security handler
       
  2646 
       
  2647 12/16/2008
       
  2648 
       
  2649 - new start of this change_log file