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