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