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