1# Changelog
2All notable changes to this project will be documented in this file.
3
4The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
7## [Unreleased]
8
9## [3.1.36] - 2020-04-14
10
11### Fixed
12 - Smarty::SMARTY_VERSION wasn't updated in v3.1.35 https://github.com/smarty-php/smarty/issues/584
13
14## [3.1.35] - 2020-04-14
15 - remove whitespaces after comments https://github.com/smarty-php/smarty/issues/447
16 - fix foreachelse on arrayiterators https://github.com/smarty-php/smarty/issues/506
17 - fix files contained in git export archive for package maintainers https://github.com/smarty-php/smarty/issues/325
18 - throw SmartyException when setting caching attributes for cacheable plugin https://github.com/smarty-php/smarty/issues/457
19 - fix errors that occured where isset was replaced with null check such as https://github.com/smarty-php/smarty/issues/453
20 - unit tests are now in the repository
21
22## 3.1.34 release - 05.11.2019
2313.01.2020
24 - fix typo in exception message (JercSi)
25 - fix typehint warning with callable (bets4breakfast)
26 - add travis badge and compatability info to readme (matks)
27 - fix stdClass cast when compiling foreach (carpii)
28 - fix wrong set/get methods for memcached (IT-Experte)
29 - fix pborm assigning value to object variables in smarty_internal_compile_assign (Hunman)
30 - exclude error_reporting.ini from git export (glensc)
31
32## 3.1.34-dev-6 -
3330.10.2018
34 - bugfix a nested subblock in an inheritance child template was not replace by
35 outer level block with same name in same child template https://github.com/smarty-php/smarty/issues/500
36
3729.10.2018
38 - bugfix Smarty::$php_handling == PHP_PASSTHRU (default) did eat the "\n" (newline) character if it did directly followed
39 a PHP tag like "?>" or other https://github.com/smarty-php/smarty/issues/501
40
4114.10.2018
42 - bugfix autoloader exit shortcut https://github.com/smarty-php/smarty/issues/467
43
4411.10.2018
45 - bugfix {insert} not works when caching is enabled and included template is present
46 https://github.com/smarty-php/smarty/issues/496
47 - bugfix in date-format modifier; NULL at date string or default_date did not produce correct output
48 https://github.com/smarty-php/smarty/pull/458
49
5009.10.2018
51 - bugfix fix of 26.8.2017 https://github.com/smarty-php/smarty/issues/327
52 modifier is applied to sum expression https://github.com/smarty-php/smarty/issues/491
53 - bugfix indexed arrays could not be defined "array(...)""
54
5518.09.2018
56 - bugfix large plain text template sections without a Smarty tag > 700kB could
57 could fail in version 3.1.32 and 3.1.33 because PHP preg_match() restrictions
58 https://github.com/smarty-php/smarty/issues/488
59
60## 3.1.33 release - 12.09.2018
61## 3.1.33-dev-12 -
6203.09.2018
63 - bugfix {foreach} using new style property access like {$item@property} on
64 Smarty 2 style named foreach loop could produce errors https://github.com/smarty-php/smarty/issues/484
65
6631.08.2018
67 - bugfix some custom left and right delimiters like '{^' '^}' did not work
68 https://github.com/smarty-php/smarty/issues/450 https://github.com/smarty-php/smarty/pull/482
69
70 - reformating for PSR-2 coding standards https://github.com/smarty-php/smarty/pull/483
71
72 - bugfix on Windows absolute filepathes did fail if the drive letter was followed by a linux DIRECTORY_SEPARATOR
73 like C:/ at Smarty > 3.1.33-dev-5 https://github.com/smarty-php/smarty/issues/451
74
75 - PSR-2 code style fixes for config and template file Lexer/Parser generated with
76 the Smarty Lexer/Parser generator from https://github.com/smarty-php/smarty-lexer
77 https://github.com/smarty-php/smarty/pull/483
78
7926.08.2018
80 - bugfix/enhancement {capture} allow variable as capture block name in Smarty special variable
81 like $smarty.capture.$foo https://github.com/smarty-php/smarty/issues/478 https://github.com/smarty-php/smarty/pull/481
82
83## 3.1.33-dev-6 -
8419.08.2018
85 - fix PSR-2 coding standards and PHPDoc blocks https://github.com/smarty-php/smarty/pull/452
86 https://github.com/smarty-php/smarty/pull/475
87 https://github.com/smarty-php/smarty/pull/473
88 - bugfix PHP5.2 compatibility https://github.com/smarty-php/smarty/pull/472
89
90## 3.1.33-dev-4 -
9117.05.2018
92 - bugfix strip-block produces different output in Smarty v3.1.32 https://github.com/smarty-php/smarty/issues/436
93 - bugfix Smarty::compileAllTemplates ignores `$extension` parameter https://github.com/smarty-php/smarty/issues/437
94 https://github.com/smarty-php/smarty/pull/438
95 - improvement do not compute total property in {foreach} if not needed https://github.com/smarty-php/smarty/issues/443
96 - bugfix plugins may not be loaded when setMergeCompiledIncludes is true https://github.com/smarty-php/smarty/issues/435
97
9826.04.2018
99 - bugfix regarding Security Vulnerability did not solve the problem under Linux.
100 Security issue CVE-2018-16831
101
102## 3.1.32 - (24.04.2018)
10324.04.2018
104 - bugfix possible Security Vulnerability in Smarty_Security class.
105
10626.03.2018
107 - bugfix plugins may not be loaded if {function} or {block} tags are executed in nocache mode
108 https://github.com/smarty-php/smarty/issues/371
109
11026.03.2018
111 - new feature {parent} = {$smarty.block.parent} {child} = {$smarty.block.child}
112
11323.03.2018
114 - bugfix preg_replace could fail on large content resulting in a blank page https://github.com/smarty-php/smarty/issues/417
115
11621.03.2018
117 - bugfix {$smarty.section...} used outside {section}{/section} showed incorrect values if {section}{/section} was called inside
118 another loop https://github.com/smarty-php/smarty/issues/422
119 - bugfix short form of {section} attributes did not work https://github.com/smarty-php/smarty/issues/428
120
12117.03.2018
122 - improvement Smarty::compileAllTemplates() exit with a non-zero status code if max errors is reached https://github.com/smarty-php/smarty/pull/402
123
12416.03.2018
125 - bugfix extends resource did not work with user defined left/right delimiter https://github.com/smarty-php/smarty/issues/419
126
12722.11.2017
128 - bugfix {break} and {continue} could fail if {foreach}{/foreach} did contain other
129 looping tags like {for}, {section} and {while} https://github.com/smarty-php/smarty/issues/323
130
13120.11.2017
132 - bugfix rework of newline spacing between tag code and template text.
133 now again identical with Smarty2 (forum topic 26878)
134 - replacement of " by '
135
13605.11.2017
137 - lexer/parser optimization
138 - code cleanup and optimizations
139 - bugfix {$smarty.section.name.loop} used together with {$smarty.section.name.total} could produce
140 wrong results (forum topic 27041)
141
14226.10.2017
143 - bugfix Smarty version was not filled in header comment of compiled and cached files
144 - optimization replace internal Smarty::$ds property by DIRECTORY_SEPARATOR
145 - deprecate functions Smarty::muteExpectedErrors() and Smarty::unmuteExpectedErrors()
146 as Smarty does no longer use error suppression like @filemtime().
147 for backward compatibility code is moved from Smarty class to an external class and still can be
148 called.
149 - correction of PHPDoc blocks
150 - minor code cleanup
151
15221.10.2017
153 - bugfix custom delimiters could fail since modification of version 3.1.32-dev-23
154 https://github.com/smarty-php/smarty/issues/394
155
15618.10.2017
157 - bugfix fix implementation of unclosed block tag in double quoted string of 12.10.2017
158 https://github.com/smarty-php/smarty/issues/396 https://github.com/smarty-php/smarty/issues/397
159 https://github.com/smarty-php/smarty/issues/391 https://github.com/smarty-php/smarty/issues/392
160
16112.10.2017
162 - bugfix $smarty.block.child and $smarty.block.parent could not be used like any
163 $smarty special variable https://github.com/smarty-php/smarty/issues/393
164 - unclosed block tag in double quoted string must throw compiler exception.
165 https://github.com/smarty-php/smarty/issues/391 https://github.com/smarty-php/smarty/issues/392
166
16707.10.2017
168 - bugfix modification of 9.8.2017 did fail on some recursive
169 tag nesting. https://github.com/smarty-php/smarty/issues/389
170
17126.8.2017
172 - bugfix chained modifier failed when last modifier parameter is a signed value
173 https://github.com/smarty-php/smarty/issues/327
174 - bugfix templates filepath with multibyte characters did not work
175 https://github.com/smarty-php/smarty/issues/385
176 - bugfix {make_nocache} did display code if the template did not contain other nocache code
177 https://github.com/smarty-php/smarty/issues/369
178
17909.8.2017
180 - improvement repeated delimiter like {{ and }} will be treated as literal
181 https://groups.google.com/forum/#!topic/smarty-developers/h9r82Bx4KZw
182
18305.8.2017
184 - bugfix wordwrap modifier could fail if used in nocache code.
185 converted plugin file shared.mb_wordwrap.php into modifier.mb_wordwrap.php
186 - cleanup of _getSmartyObj()
187
18831.7.2017
189 - Call clearstatcache() after mkdir() failure https://github.com/smarty-php/smarty/pull/379
190
19130.7.2017
192 - rewrite mkdir() bugfix to retry automatically see https://github.com/smarty-php/smarty/pull/377
193 https://github.com/smarty-php/smarty/pull/379
194
19521.7.2017
196 - security possible PHP code injection on custom resources at display() or fetch()
197 calls if the resource does not sanitize the template name
198 - bugfix fix 'mkdir(): File exists' error on create directory from parallel
199 processes https://github.com/smarty-php/smarty/pull/377
200 - bugfix solve preg_match() hhvm parameter problem https://github.com/smarty-php/smarty/pull/372
201
20227.5.2017
203 - bugfix change compiled code for registered function and modifiers to called as callable to allow closures
204 https://github.com/smarty-php/smarty/pull/368, https://github.com/smarty-php/smarty/issues/273
205 - bugfix https://github.com/smarty-php/smarty/pull/368 did break the default plugin handler
206 - improvement replace phpversion() by PHP_VERSION constant.
207 https://github.com/smarty-php/smarty/pull/363
208
20921.5.2017
210 - performance store flag for already required shared plugin functions in static variable or
211 Smarty's $_cache to improve performance when plugins are often called
212 https://github.com/smarty-php/smarty/commit/51e0d5cd405d764a4ea257d1bac1fb1205f74528#commitcomment-22280086
213 - bugfix remove special treatment of classes implementing ArrayAccess in {foreach}
214 https://github.com/smarty-php/smarty/issues/332
215 - bugfix remove deleted files by clear_cache() and clear_compiled_template() from
216 ACP cache if present, add some is_file() checks to avoid possible warnings on filemtime()
217 caused by above functions.
218 https://github.com/smarty-php/smarty/issues/341
219 - bugfix version 3.1.31 did fail under PHP 5.2
220 https://github.com/smarty-php/smarty/issues/365
221
22219.5.2017
223 - change properties $accessMap and $obsoleteProperties from private to protected
224 https://github.com/smarty-php/smarty/issues/351
225 - new feature The named capture buffers can now be accessed also as array
226 See NEWS_FEATURES.txt https://github.com/smarty-php/smarty/issues/366
227 - improvement check if ini_get() and ini_set() not disabled
228 https://github.com/smarty-php/smarty/pull/362
229
23024.4.2017
231 - fix spelling https://github.com/smarty-php/smarty/commit/e3eda8a5f5653d8abb960eb1bc47e3eca679b1b4#commitcomment-21803095
232
23317.4.2017
234 - correct generated code on empty() and isset() call, observe change PHP behaviour since PHP 5.5
235 https://github.com/smarty-php/smarty/issues/347
236
23714.4.2017
238 - 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
239
24013.4.2017
241 - bugfix array_merge() parameter should be checked https://github.com/smarty-php/smarty/issues/350
242
243## 3.1.31 - (14.12.2016)
244 23.11.2016
245 - move template object cache into static variables
246
247 19.11.2016
248 - bugfix inheritance root child templates containing nested {block}{/block} could call sub-bock content from parent
249 template https://github.com/smarty-php/smarty/issues/317
250 - change version checking
251
252 11.11.2016
253 - bugfix when Smarty is using a cached template object on Smarty::fetch() or Smarty::isCached() the inheritance data
254 must be removed https://github.com/smarty-php/smarty/issues/312
255 - smaller speed optimization
256
257 08.11.2016
258 - add bootstrap file to load and register Smarty_Autoloader. Change composer.json to make it known to composer
259
260 07.11.2016
261 - optimization of lexer speed https://github.com/smarty-php/smarty/issues/311
262
263 27.10.2016
264 - bugfix template function definitions array has not been cached between Smarty::fetch() and Smarty::display() calls
265 https://github.com/smarty-php/smarty/issues/301
266
267 23.10.2016
268 - improvement/bugfix when Smarty::fetch() is called on a template object the inheritance and tplFunctions property
269 should be copied to the called template object
270
271 21.10.2016
272 - bugfix for compile locking touched timestamp of old compiled file was not restored on compilation error https://github.com/smarty-php/smarty/issues/308
273
274 20.10.2016
275 - bugfix nocache code was not removed in cache file when subtemplate did contain PHP short tags in text but no other
276 nocache code https://github.com/smarty-php/smarty/issues/300
277
278 19.10.2016
279 - bugfix {make_nocache $var} did fail when variable value did contain '\' https://github.com/smarty-php/smarty/issues/305
280 - bugfix {make_nocache $var} remove spaces from variable value https://github.com/smarty-php/smarty/issues/304
281
282 12.10.2016
283 - bugfix {include} with template names including variable or constants could fail after bugfix from
284 28.09.2016 https://github.com/smarty-php/smarty/issues/302
285
286 08.10.2016
287 - optimization move runtime extension for template functions into Smarty objects
288
289 29.09.2016
290 - improvement new Smarty::$extends_recursion property to disable execution of {extends} in templates called by extends resource
291 https://github.com/smarty-php/smarty/issues/296
292
293 28.09.2016
294 - 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
295 - bugfix nocache hash was not removed for <?xml ?> tags in subtemplates https://github.com/smarty-php/smarty/issues/300
296
297 27.09.2016
298 - bugfix when Smarty does use an internally cached template object on Smarty::fetch() calls
299 the template and config variables must be cleared https://github.com/smarty-php/smarty/issues/297
300
301 20.09.2016
302 - bugfix some $smarty special template variables are no longer accessed as real variable.
303 using them on calls like {if isset($smarty.foo)} or {if empty($smarty.foo)} will fail
304 http://www.smarty.net/forums/viewtopic.php?t=26222
305 - temporary fix for https://github.com/smarty-php/smarty/issues/293 main reason still under investigation
306 - improvement new tags {block_parent} {block_child} in template inheritance
307
308 19.09.2016
309 - optimization clear compiled and cached folder completely on detected version change
310 - cleanup convert cache resource file method clear into runtime extension
311
312 15.09.2016
313 - 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
314 - bugfix function plugins called with assign attribute like {foo assign='bar'} did not output returned content because
315 because assumption was made that it was assigned to a variable https://github.com/smarty-php/smarty/issues/292
316 - 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
317 - improvement make Smarty::clearCompiledTemplate() on custom resource independent from changes of templateId computation
318
319 11.09.2016
320 - improvement {math} misleading E_USER_WARNING messages when parameter value = null https://github.com/smarty-php/smarty/issues/288
321 - improvement move often used code snippets into methods
322 - performance Smarty::configLoad() did load unneeded template source object
323
324 09.09.2016
325 - bugfix/optimization {foreach} did not execute the {foreachelse} when iterating empty objects https://github.com/smarty-php/smarty/pull/287
326 - 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
327 - improvement {foreach} observe {break n} and {continue n} nesting levels when restoring saved $item and $key variables
328
329 08.09.2016
330 - bugfix implement wrapper for removed method getConfigVariable() https://github.com/smarty-php/smarty/issues/286
331
332 07.09.2016
333 - bugfix using nocache like attribute with value true like {plugin nocache=true} did not work https://github.com/smarty-php/smarty/issues/285
334 - bugfix uppercase TRUE, FALSE and NULL did not work when security was enabled https://github.com/smarty-php/smarty/issues/282
335 - 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
336 - bugfix {capture}{/capture} did add in 3.1.30 unintended additional blank lines https://github.com/smarty-php/smarty/issues/268
337
338 01.09.2016
339 - performance require_once should be called only once for shared plugins https://github.com/smarty-php/smarty/issues/280
340
341 26.08.2016
342 - bugfix change of 23.08.2016 failed on linux when use_include_path = true
343
344 23.08.2016
345 - 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
346
347 20.08-2016
348 - bugfix {config_load ... scope="global"} shall not throw an arror but fallback to scope="smarty" https://github.com/smarty-php/smarty/issues/274
349 - bugfix {make_nocache} failed when using composer autoloader https://github.com/smarty-php/smarty/issues/275
350
351 14.08.2016
352 - bugfix $smarty_>debugging = true; did E_NOTICE messages when {eval} tag was used https://github.com/smarty-php/smarty/issues/266
353 - bugfix Class 'Smarty_Internal_Runtime_ValidateCompiled' not found when upgrading from some older Smarty versions with existing
354 compiled or cached template files https://github.com/smarty-php/smarty/issues/269
355 - optimization remove unneeded call to update acopes when {assign} scope and template scope was local (default)
356
357## 3.1.30 - (07.08.2016)
358
359 07.08.2016
360 - bugfix update of 04.08.2016 was incomplete
361
362 05.08.2016
363 - bugfix compiling of templates failed when the Smarty delimiter did contain '/' https://github.com/smarty-php/smarty/issues/264
364 - updated error checking at template and config default handler
365
366 04.08.2016
367 - improvement move template function source parameter into extension
368
369 26.07.2016
370 - optimization unneeded loading of compiled resource
371
372 24.07.2016
373 - regression this->addPluginsDir('/abs/path/to/dir') adding absolute path without trailing '/' did fail https://github.com/smarty-php/smarty/issues/260
374
375 23.07.2016
376 - bugfix setTemplateDir('/') and setTemplateDir('') did create wrong absolute filepath https://github.com/smarty-php/smarty/issues/245
377 - optimization of filepath normalization
378 - improvement remove double function declaration in plugin shared.escape_special_cars.php https://github.com/smarty-php/smarty/issues/229
379
380 19.07.2016
381 - bugfix multiple {include} with relative filepath within {block}{/block} could fail https://github.com/smarty-php/smarty/issues/246
382 - bugfix {math} shell injection vulnerability patch provided by Tim Weber
383
384 18.07.2016
385 - 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
386 - bugfix modifier on plugins like {plugin|modifier ... } did fail when the plugin does return an array https://github.com/smarty-php/smarty/issues/228
387 - bugfix avoid opcache_invalidate to result in ErrorException when opcache.restrict_api is not empty https://github.com/smarty-php/smarty/pull/244
388 - bugfix multiple {include} with relative filepath within {block}{/block} could fail https://github.com/smarty-php/smarty/issues/246
389
390 14.07.2016
391 - bugfix wrong parameter on compileAllTemplates() and compileAllConfig() https://github.com/smarty-php/smarty/issues/231
392
393 13.07.2016
394 - bugfix PHP 7 compatibility on registered compiler plugins https://github.com/smarty-php/smarty/issues/241
395 - update testInstall() https://github.com/smarty-php/smarty/issues/248https://github.com/smarty-php/smarty/issues/248
396 - bugfix enable debugging could fail when template objects did already exists https://github.com/smarty-php/smarty/issues/237
397 - bugfix template function data should be merged when loading subtemplate https://github.com/smarty-php/smarty/issues/240
398 - bugfix wrong parameter on compileAllTemplates() https://github.com/smarty-php/smarty/issues/231
399
400 12.07.2016
401 - 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
402 - bugfix enableSecurity() must init cache flags https://github.com/smarty-php/smarty/issues/247
403
404 27.05.2016
405 - bugfix/improvement of compileAlltemplates() follow symlinks in template folder (PHP >= 5.3.1) https://github.com/smarty-php/smarty/issues/224
406 clear internal cache and expension handler for each template to avoid possible conflicts https://github.com/smarty-php/smarty/issues/231
407
408 16.05.2016
409 - optimization {foreach} compiler and processing
410 - broken PHP 5.3 and 5.4 compatibility
411
412 15.05.2016
413 - optimization and cleanup of resource code
414
415 10.05.2016
416 - optimization of inheritance processing
417
418 07.05.2016
419 -bugfix Only variables should be assigned by reference https://github.com/smarty-php/smarty/issues/227
420
421 02.05.2016
422 - enhancement {block} tag names can now be variable https://github.com/smarty-php/smarty/issues/221
423
424 01.05.2016
425 - bugfix same relative filepath at {include} called from template in different folders could display wrong sub-template
426
427 29.04.2016
428 - bugfix {strip} remove space on linebreak between html tags https://github.com/smarty-php/smarty/issues/213
429
430 24.04.2016
431 - bugfix nested {include} with relative file path could fail when called in {block} ... {/block} https://github.com/smarty-php/smarty/issues/218
432
433 14.04.2016
434 - bugfix special variable {$smarty.capture.name} was not case sensitive on name https://github.com/smarty-php/smarty/issues/210
435 - bugfix the default template handler must calculate the source uid https://github.com/smarty-php/smarty/issues/205
436
437 13.04.2016
438 - bugfix template inheritance status must be saved when calling sub-templates https://github.com/smarty-php/smarty/issues/215
439
440 27.03.2016
441 - 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
442
443 11.03.2016
444 - optimization of capture and security handling
445 - improvement $smarty->clearCompiledTemplate() should return on recompiled or uncompiled resources
446
447 10.03.2016
448 - optimization of resource processing
449
450 09.03.2016
451 - improvement rework of 'scope' attribute handling see see NEW_FEATURES.txt https://github.com/smarty-php/smarty/issues/194
452 https://github.com/smarty-php/smarty/issues/186 https://github.com/smarty-php/smarty/issues/179
453 - bugfix correct Autoloader update of 2.3.2014 https://github.com/smarty-php/smarty/issues/199
454
455 04.03.2016
456 - bugfix change from 01.03.2016 will cause $smarty->isCached(..) failure if called multiple time for same template
457 (forum topic 25935)
458
459 02.03.2016
460 - revert autoloader optimizations because of unexplainable warning when using plugins https://github.com/smarty-php/smarty/issues/199
461
462 01.03.2016
463 - bugfix template objects must be cached on $smarty->fetch('foo.tpl) calls incase the template is fetched
464 multiple times (forum topic 25909)
465
466 25.02.2016
467 - bugfix wrong _realpath with 4 or more parent-directories https://github.com/smarty-php/smarty/issues/190
468 - optimization of _realpath
469 - bugfix instanceof expression in template code must be treated as value https://github.com/smarty-php/smarty/issues/191
470
471 20.02.2016
472 - bugfix {strip} must keep space between hmtl tags. Broken by changes of 10.2.2016 https://github.com/smarty-php/smarty/issues/184
473 - new feature/bugfix {foreach}{section} add 'properties' attribute to force compilation of loop properties
474 see NEW_FEATURES.txt https://github.com/smarty-php/smarty/issues/189
475
476 19.02.2016
477 - revert output buffer flushing on display, echo content again because possible problems when PHP files had
478 characters (newline} after ?> at file end https://github.com/smarty-php/smarty/issues/187
479
480 14.02.2016
481 - new tag {make_nocache} read NEW_FEATURES.txt https://github.com/smarty-php/smarty/issues/110
482 - optimization of sub-template processing
483 - bugfix using extendsall as default resource and {include} inside {block} tags could produce unexpected results https://github.com/smarty-php/smarty/issues/183
484 - optimization of tag attribute compiling
485 - optimization make compiler tag object cache static for higher compilation speed
486
487 11.02.2016
488 - improvement added KnockoutJS comments to trimwhitespace outputfilter https://github.com/smarty-php/smarty/issues/82
489 https://github.com/smarty-php/smarty/pull/181
490
491 10.02.2016
492 - bugfix {strip} must keep space on output creating smarty tags within html tags https://github.com/smarty-php/smarty/issues/177
493 - bugfix wrong precedence on special if conditions like '$foo is ... by $bar' could cause wrong code https://github.com/smarty-php/smarty/issues/178
494 - improvement because of ambiguities the inline constant support has been removed from the $foo.bar syntax https://github.com/smarty-php/smarty/issues/149
495 - bugfix other {strip} error with output tags between hmtl https://github.com/smarty-php/smarty/issues/180
496
497 09.02.2016
498 - move some code from parser into compiler
499 - reformat all code for unique style
500 - update/bugfix scope attribute handling reworked. Read the newfeatures.txt file
501
502 05.02.2016
503 - improvement internal compiler changes
504
505 01.02.2016
506 - bugfix {foreach} compilation failed when $smarty->merge_compiled_includes = true and pre-filters are used.
507
508 29.01.2016
509 - bugfix implement replacement code for _tag_stack property https://github.com/smarty-php/smarty/issues/151
510
511 28.01.2016
512 - bugfix allow windows network filepath or wrapper (forum topic 25876) https://github.com/smarty-php/smarty/issues/170
513 - 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
514
515 27.01.2016
516 - revert bugfix compiling {section} did create warning
517 - bugfix {$smarty.section.customer.loop} did throw compiler error https://github.com/smarty-php/smarty/issues/161
518 update of yesterdays fix
519 - bugfix string resource could inject code at {block} or inline subtemplates through PHP comments https://github.com/smarty-php/smarty/issues/157
520 - bugfix output filters did not observe nocache code flhttps://github.com/smarty-php/smarty/issues/154g https://github.com/smarty-php/smarty/issues/160
521 - bugfix {extends} with relative file path did not work https://github.com/smarty-php/smarty/issues/154
522 https://github.com/smarty-php/smarty/issues/158
523 - bugfix {capture} data could not been seen in other templates with {$smarty.capture.name} https://github.com/smarty-php/smarty/issues/153
524
525 26.01.2016
526 - improvement observe Smarty::$_CHARSET in debugging console https://github.com/smarty-php/smarty/issues/169
527 - bugfix compiling {section} did create warning
528 - bugfix {$smarty.section.customer.loop} did throw compiler error https://github.com/smarty-php/smarty/issues/161
529
530 02.01.2016
531 - update scope handling
532 - optimize block plugin compiler
533 - improvement runtime checks if registered block plugins are callable
534
535 01.01.2016
536 - remove Smarty::$resource_cache_mode property
537
538 31.12.2015
539 - optimization of {assign}, {if} and {while} compiled code
540
541 30.12.2015
542 - bugfix plugin names starting with "php" did not compile https://github.com/smarty-php/smarty/issues/147
543
544 29.12.2015
545 - bugfix Smarty::error_reporting was not observed when display() or fetch() was called on template objects https://github.com/smarty-php/smarty/issues/145
546
547 28.12.2015
548 - optimization of {foreach} code size and processing
549
550 27.12.2015
551 - improve inheritance code
552 - update external methods
553 - code fixes
554 - PHPdoc updates
555
556 25.12.2015
557 - compile {block} tag code and its processing into classes
558 - optimization replace hhvm extension by inline code
559 - new feature If ACP is enabled force an apc_compile_file() when compiled or cached template was updated
560
561 24.12.2015
562 - new feature Compiler does now observe the template_dir setting and will create separate compiled files if required
563 - bugfix post filter did fail on template inheritance https://github.com/smarty-php/smarty/issues/144
564
565 23.12.2015
566 - optimization move internal method decodeProperties back into template object
567 - optimization move subtemplate processing back into template object
568 - new feature Caching does now observe the template_dir setting and will create separate cache files if required
569
570 22.12.2015
571 - change $xxx_dir properties from private to protected in case Smarty class gets extended
572 - code optimizations
573
574 21.12.2015
575 - bugfix a filepath starting with '/' or '\' on windows should normalize to the root dir
576 of current working drive https://github.com/smarty-php/smarty/issues/134
577 - optimization of filepath normalization
578 - bugfix {strip} must remove all blanks between html tags https://github.com/smarty-php/smarty/issues/136
579
580 - 3.1.29 - (21.12.2015)
581 21.12.2015
582 - optimization improve speed of filetime checks on extends and extendsall resource
583
584 20.12.2015
585 - bugfix failure when the default resource type was set to 'extendsall' https://github.com/smarty-php/smarty/issues/123
586 - update compilation of Smarty special variables
587 - bugfix add addition check for OS type on normalization of file path https://github.com/smarty-php/smarty/issues/134
588 - bugfix the source uid of the extendsall resource must contain $template_dir settings https://github.com/smarty-php/smarty/issues/123
589
590 19.12.2015
591 - bugfix using $smarty.capture.foo in expressions could fail https://github.com/smarty-php/smarty/pull/138
592 - bugfix broken PHP 5.2 compatibility https://github.com/smarty-php/smarty/issues/139
593 - remove no longer used code
594 - improvement make sure that compiled and cache templates never can contain a trailing '?>?
595
596 18.12.2015
597 - bugfix regression when modifier parameter was followed by math https://github.com/smarty-php/smarty/issues/132
598
599 17.12.2015
600 - bugfix {$smarty.capture.nameFail} did lowercase capture name https://github.com/smarty-php/smarty/issues/135
601 - bugfix using {block append/prepend} on same block in multiple levels of inheritance templates could fail (forum topic 25827)
602 - bugfix text content consisting of just a single '0' like in {if true}0{/if} was suppressed (forum topic 25834)
603
604 16.12.2015
605 - bugfix {foreach} did fail if from atrribute is a Generator class https://github.com/smarty-php/smarty/issues/128
606 - bugfix direct access $smarty->template_dir = 'foo'; should call Smarty::setTemplateDir() https://github.com/smarty-php/smarty/issues/121
607
608 15.12.2015
609 - bugfix {$smarty.cookies.foo} did return the $_COOKIE array not the 'foo' value https://github.com/smarty-php/smarty/issues/122
610 - bugfix a call to clearAllCache() and other should clear all internal template object caches (forum topic 25828)
611
612 14.12.2015
613 - bugfix {$smarty.config.foo} broken in 3.1.28 https://github.com/smarty-php/smarty/issues/120
614 - bugfix multiple calls of {section} with same name droped E_NOTICE error https://github.com/smarty-php/smarty/issues/118
615
616 - 3.1.28 - (13.12.2015)
617 13.12.2015
618 - bugfix {foreach} and {section} with uppercase characters in name attribute did not work (forum topic 25819)
619 - bugfix $smarty->debugging_ctrl = 'URL' did not work (forum topic 25811)
620 - bugfix Debug Console could display incorrect data when using subtemplates
621
622 09.12.2015
623 - bugfix Smarty did fail under PHP 7.0.0 with use_include_path = true;
624
625 09.12.2015
626 - bugfix {strip} should exclude some html tags from stripping, related to fix for https://github.com/smarty-php/smarty/issues/111
627
628 08.12.2015
629 - bugfix internal template function data got stored in wrong compiled file https://github.com/smarty-php/smarty/issues/114
630
631 05.12.2015
632 -bugfix {strip} should insert a single space https://github.com/smarty-php/smarty/issues/111
633
634 25.11.2015
635 -bugfix a left delimter like '[%' did fail on [%$var_[%$variable%]%] (forum topic 25798)
636
637 02.11.2015
638 - 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
639
640 01.11.2015
641 - update config file processing
642
643 31.10.2015
644 - bugfix add missing $trusted_dir property to SmartyBC class (forum topic 25751)
645
646 29.10.2015
647 - improve template scope handling
648
649 24.10.2015
650 - more optimizations of template processing
651 - bugfix Error when using {include} within {capture} https://github.com/smarty-php/smarty/issues/100
652
653 21.10.2015
654 - move some code into runtime extensions
655
656 18.10.2015
657 - optimize filepath normalization
658 - rework of template inheritance
659 - speed and size optimizations
660 - bugfix under HHVM temporary cache file must only be created when caches template was updated
661 - fix compiled code for new {block} assign attribute
662 - update code generated by template function call handler
663
664 18.09.2015
665 - bugfix {if $foo instanceof $bar} failed to compile if 2nd value is a variable https://github.com/smarty-php/smarty/issues/92
666
667 17.09.2015
668 - bugfix {foreach} first attribute was not correctly reset since commit 05a8fa2 of 02.08.2015 https://github.com/smarty-php/smarty/issues/90
669
670 16.09.2015
671 - update compiler by moving no longer needed properties, code optimizations and other
672
673 14.09.2015
674 - optimize autoloader
675 - optimize subtemplate handling
676 - update template inheritance processing
677 - move code of {call} processing back into Smarty_Internal_Template class
678 - improvement invalidate OPCACHE for cleared compiled and cached template files (forum topic 25557)
679 - bugfix unintended multiple debug windows (forum topic 25699)
680
681 30.08.2015
682 - size optimization move some runtime functions into extension
683 - optimize inline template processing
684 - optimization merge inheritance child and parent templates into one compiled template file
685
686 29.08.2015
687 - improvement convert template inheritance into runtime processing
688 - bugfix {$smarty.block.parent} did always reference the root parent block https://github.com/smarty-php/smarty/issues/68
689
690 23.08.2015
691 - introduce Smarty::$resource_cache_mode and cache template object of {include} inside loop
692 - load seldom used Smarty API methods dynamically to reduce memory footprint
693 - cache template object of {include} if same template is included several times
694 - convert debug console processing to object
695 - use output buffers for better performance and less memory usage
696 - optimize nocache hash processing
697 - remove not really needed properties
698 - optimize rendering
699 - move caching to Smarty::_cache
700 - remove properties with redundant content
701 - optimize Smarty::templateExists()
702 - optimize use_include_path processing
703 - relocate properties for size optimization
704 - remove redundant code
705 - bugfix compiling super globals like {$smarty.get.foo} did fail in the master branch https://github.com/smarty-php/smarty/issues/77
706
707 06.08.2015
708 - avoid possible circular object references caused by parser/lexer objects
709 - rewrite compileAll... utility methods
710 - commit several internal improvements
711 - bugfix Smarty failed when compile_id did contain "|"
712
713 03.08.2015
714 - rework clear cache methods
715 - bugfix compileAllConfig() was broken since 3.1.22 because of the changes in config file processing
716 - improve getIncludePath() to return directory if no file was given
717
718 02.08.2015
719 - optimization and code cleanup of {foreach} and {section} compiler
720 - rework {capture} compiler
721
722 01.08.2015
723 - update DateTime object can be instance of DateTimeImmutable since PHP5.5 https://github.com/smarty-php/smarty/pull/75
724 - improvement show resource type and start of template source instead of uid on eval: and string: resource (forum topic 25630)
725
726 31.07.2015
727 - optimize {foreach} and {section} compiler
728
729 29.07.2015
730 - optimize {section} compiler for speed and size of compiled code
731
732 28.07.2015
733 - update for PHP 7 compatibility
734
735 26.07.2015
736 - improvement impement workaround for HHVM PHP incompatibillity https://github.com/facebook/hhvm/issues/4797
737
738 25.07.2015
739 - bugfix parser did hang on text starting <?something https://github.com/smarty-php/smarty/issues/74
740
741 20.07.2015
742 - bugfix config files got recompiled on each request
743 - improvement invalidate PHP 5.5 opcache for recompiled and cached templates https://github.com/smarty-php/smarty/issues/72
744
745 12.07.2015
746 - optimize {extends} compilation
747
748 10.07.2015
749 - bugfix force file: resource in demo resource.extendsall.php
750
751 08.07.2015
752 - bugfix convert each word of class names to ucfirst in in compiler. (forum topic 25588)
753
754 07.07.2015
755 - improvement allow fetch() or display() called on a template object to get output from other template
756 like $template->fetch('foo.tpl') https://github.com/smarty-php/smarty/issues/70
757 - improvement Added $limit parameter to regex_replace modifier #71
758 - new feature multiple indices on file: resource
759
760 06.07.2015
761 - optimize {block} compilation
762 - optimization get rid of __get and __set in source object
763
764 01.07.2015
765 - optimize compile check handling
766 - update {foreach} compiler
767 - bugfix debugging console did not display string values containing \n, \r or \t correctly https://github.com/smarty-php/smarty/issues/66
768 - optimize source resources
769
770 28.06.2015
771 - move $smarty->enableSecurity() into Smarty_Security class
772 - optimize security isTrustedResourceDir()
773 - move auto load filter methods into extension
774 - move $smarty->getTemplateVars() into extension
775 - move getStreamVariable() into extension
776 - move $smarty->append() and $smarty->appendByRef() into extension
777 - optimize autoloader
778 - optimize file path normalization
779 - bugfix PATH_SEPARATOR was replaced by mistake in autoloader
780 - remove redundant code
781
782 27.06.2015
783 - bugfix resolve naming conflict between custom Smarty delimiter '<%' and PHP ASP tags https://github.com/smarty-php/smarty/issues/64
784 - update $smarty->_realpath for relative path not starting with './'
785 - update Smarty security with new realpath handling
786 - update {include_php} with new realpath handling
787 - move $smarty->loadPlugin() into extension
788 - minor compiler optimizations
789 - bugfix allow function plugins with name ending with 'close' https://github.com/smarty-php/smarty/issues/52
790 - rework of $smarty->clearCompiledTemplate() and move it to its own extension
791
792 19.06.2015
793 - improvement allow closures as callback at $smarty->registerFilter() https://github.com/smarty-php/smarty/issues/59
794
795 - 3.1.27- (18.06.2015)
796 18.06.2015
797 - bugfix another update on file path normalization failed on path containing something like "/.foo/" https://github.com/smarty-php/smarty/issues/56
798
799 - 3.1.26- (18.06.2015)
800 18.06.2015
801 - bugfix file path normalization failed on path containing something like "/.foo/" https://github.com/smarty-php/smarty/issues/56
802
803 17.06.2015
804 - 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
805
806 - 3.1.25- (15.06.2015)
807 15.06.2015
808 - optimization of smarty_cachereource_keyvaluestore.php code
809
810 14.06.2015
811 - bugfix a relative sub template path could fail if template_dir path did contain /../ https://github.com/smarty-php/smarty/issues/50
812 - optimization rework of path normalization
813 - 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
814
815 13.06.2015
816 - bugfix a custom cache resource using smarty_cachereource_keyvaluestore.php did fail if php.ini mbstring.func_overload = 2 (forum topic 25568)
817
818 11.06.2015
819 - bugfix the lexer could hang on very large quoted strings (forum topic 25570)
820
821 08.06.2015
822 - 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
823
824 04.06.2015
825 - bugfix possible error message on unset() while compiling {block} tags https://github.com/smarty-php/smarty/issues/46
826
827 01.06.2015
828 - bugfix <?xml ... ?> including template variables broken since 3.1.22 https://github.com/smarty-php/smarty/issues/47
829
830 27.05.2015
831 - 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
832
833 24.05.2015
834 - bugfix if condition string 'neq' broken due to a typo https://github.com/smarty-php/smarty/issues/42
835
836 - 3.1.24- (23.05.2015)
837 23.05.2015
838 - improvement on php_handling to allow very large PHP sections, better error handling
839 - improvement allow extreme large comment sections (forum 25538)
840
841 21.05.2015
842 - bugfix broken PHP 5.2 compatibility when compiling <?php tags https://github.com/smarty-php/smarty/issues/40
843 - bugfix named {foreach} comparison like $smarty.foreach.foobar.index > 1 did compile into wrong code https://github.com/smarty-php/smarty/issues/41
844
845 19.05.2015
846 - bugfix compiler did overwrite existing variable value when setting the nocache attribute https://github.com/smarty-php/smarty/issues/39
847 - bugfix output filter trimwhitespace could run into the pcre.backtrack_limit on large output (code.google issue 220)
848 - bugfix compiler could run into the pcre.backtrack_limit on larger comment or {php} tag sections (forum 25538)
849
850 18.05.2015
851 - improvement introduce shortcuts in lexer/parser rules for most frequent terms for higher
852 compilation speed
853
854 16.05.2015
855 - bugfix {php}{/php} did work just for single lines https://github.com/smarty-php/smarty/issues/33
856 - improvement remove not needed ?><?php transitions from compiled code
857 - improvement reduce number of lexer tokens on operators and if conditions
858 - improvement higher compilation speed by modified lexer/parser generator at "smarty/smarty-lexer"
859
860 13.05.2015
861 - improvement remove not needed ?><?php transitions from compiled code
862 - improvement of debugging:
863 - use fresh Smarty object to display the debug console because of possible problems when the Smarty
864 was extended or Smarty properties had been modified in the class source
865 - display Smarty version number
866 - Truncate lenght of Origin display and extend strin value display to 80 character
867 - bugfix in Smarty_Security 'nl2br' should be a trusted modifier, not PHP function (code.google issue 223)
868
869 12.05.2015
870 - bugfix {$smarty.constant.TEST} did fail on undefined constant https://github.com/smarty-php/smarty/issues/28
871 - bugfix access to undefined config variable like {#undef#} did fail https://github.com/smarty-php/smarty/issues/29
872 - bugfix in nested {foreach} saved item attributes got overwritten https://github.com/smarty-php/smarty/issues/33
873
874 - 3.1.23 - (12.05.2015)
875 12.05.2015
876 - bugfix of smaller performance issue introduce in 3.1.22 when caching is enabled
877 - bugfix missig entry for smarty-temmplate-config in autoloader
878
879 - 3.1.22 - tag was deleted because 3.1.22 did fail caused by the missing entry for smarty-temmplate-config in autoloader
880 10.05.2015
881 - bugfix custom cache resource did not observe compile_id and cache_id when $cache_locking == true
882 - bugfix cache lock was not handled correctly after timeout when $cache_locking == true
883 - improvement added constants for $debugging
884
885 07.05.2015
886 - improvement of the debugging console. Read NEW_FEATURES.txt
887 - optimization of resource class loading
888
889 06.05.2015
890 - bugfix in 3.1.22-dev cache resource must not be loaded for subtemplates
891 - bugfix/improvement in 3.1.22-dev cache locking did not work as expected
892
893 05.05.2015
894 - optimization on cache update when main template is modified
895 - optimization move <?php ?> handling from parser to new compiler module
896
897 05.05.2015
898 - bugfix code could be messed up when {tags} are used in multiple attributes https://github.com/smarty-php/smarty/issues/23
899
900 04.05.2015
901 - bugfix Smarty_Resource::parseResourceName incompatible with Google AppEngine (https://github.com/smarty-php/smarty/issues/22)
902 - improvement use is_file() checks to avoid errors suppressed by @ which could still cause problems (https://github.com/smarty-php/smarty/issues/24)
903
904 28.04.2015
905 - bugfix plugins of merged subtemplates not loaded in 3.1.22-dev (forum topic 25508) 2nd fix
906
907 28.04.2015
908 - bugfix plugins of merged subtemplates not loaded in 3.1.22-dev (forum topic 25508)
909
910 23.04.2015
911 - bugfix a nocache template variable used as parameter at {insert} was by mistake cached
912
913 20.04.2015
914 - bugfix at a template function containing nocache code a parmeter could overwrite a template variable of same name
915
916 27.03.2015
917 - bugfix Smarty_Security->allow_constants=false; did also disable true, false and null (change of 16.03.2015)
918 - improvement added a whitelist for trusted constants to security Smarty_Security::$trusted_constants (forum topic 25471)
919
920 20.03.2015
921 - bugfix make sure that function properties get saved only in compiled files containing the fuction definition {forum topic 25452}
922 - bugfix correct update of global variable values on exit of template functions. (reported under Smarty Developers)
923
924 16.03.2015
925 - bugfix problems with {function}{/function} and {call} tags in different subtemplate cache files {forum topic 25452}
926 - bugfix Smarty_Security->allow_constants=false; did not disallow direct usage of defined constants like {SMARTY_DIR} {forum topic 25457}
927 - bugfix {block}{/block} tags did not work inside double quoted strings https://github.com/smarty-php/smarty/issues/18
928
929
930 15.03.2015
931 - bugfix $smarty->compile_check must be restored before rendering of a just updated cache file {forum 25452}
932
933 14.03.2015
934 - bugfix {nocache} {/nocache} tags corrupted code when used within a nocache section caused by a nocache template variable.
935
936 - bugfix template functions defined with {function} in an included subtemplate could not be called in nocache
937 mode with {call... nocache} if the subtemplate had it's own cache file {forum 25452}
938
939 10.03.2015
940 - bugfix {include ... nocache} whith variable file or compile_id attribute was not executed in nocache mode.
941
942 12.02.2015
943 - bugfix multiple Smarty::fetch() of same template when $smarty->merge_compiled_includes = true; could cause function already defined error
944
945 11.02.2015
946 - bugfix recursive {includes} did create E_NOTICE message when $smarty->merge_compiled_includes = true; (github issue #16)
947
948 22.01.2015
949 - new feature security can now control access to static methods and properties
950 see also NEW_FEATURES.txt
951
952 21.01.2015
953 - bugfix clearCompiledTemplates(), clearAll() and clear() could try to delete whole drive at wrong path permissions because realpath() fail (forum 25397)
954 - bugfix 'self::' and 'parent::' was interpreted in template syntax as static class
955
956 04.01.2015
957 - push last weeks changes to github
958
959 - different optimizations
960 - improvement automatically create different versions of compiled templates and config files depending
961 on property settings.
962 - optimization restructure template processing by moving code into classes it better belongs to
963 - optimization restructure config file processing
964
965 31.12.2014
966 - bugfix use function_exists('mb_get_info') for setting Smarty::$_MBSTRING.
967 Function mb_split could be overloaded depending on php.ini mbstring.func_overload
968
969
970 29.12.2014
971 - new feature security can now limit the template nesting level by property $max_template_nesting
972 see also NEW_FEATURES.txt (forum 25370)
973
974 29.12.2014
975 - new feature security can now disable special $smarty variables listed in property $disabled_special_smarty_vars
976 see also NEW_FEATURES.txt (forum 25370)
977
978 27.12.2014
979 - bugfix clear internal _is_file_cache when plugins_dir was modified
980
981 13.12.2014
982 - improvement optimization of lexer and parser resulting in a up to 30% higher compiling speed
983
984 11.12.2014
985 - bugfix resolve parser ambiguity between constant print tag {CONST} and other smarty tags after change of 09.12.2014
986
987 09.12.2014
988 - bugfix variables $null, $true and $false did not work after the change of 12.11.2014 (forum 25342)
989 - bugfix call of template function by a variable name did not work after latest changes (forum 25342)
990
991 23.11.2014
992 - bugfix a plugin with attached modifier could fail if the tag was immediately followed by another Smarty tag (since 3.1.21) (forum 25326)
993
994 13.11.2014
995 - improvement move autoload code into Autoloader.php. Use Composer autoloader when possible
996
997 12.11.2014
998 - new feature added support of namespaces to template code
999
1000 08.11.2014 - 10.11.2014
1001 - bugfix subtemplate called in nocache mode could be called with wrong compile_id when it did change on one of the calling templates
1002 - improvement add code of template functions called in nocache mode dynamically to cache file (related to bugfix of 01.11.2014)
1003 - bugfix Debug Console did not include all data from merged compiled subtemplates
1004
1005 04.11.2014
1006 - new feature $smarty->debugging = true; => overwrite existing Debug Console window (old behaviour)
1007 $smarty->debugging = 2; => individual Debug Console window by template name
1008
1009 03.11.2014
1010 - bugfix Debug Console did not show included subtemplates since 3.1.17 (forum 25301)
1011 - bugfix Modifier debug_print_var did not limit recursion or prevent recursive object display at Debug Console
1012 (ATTENTION: parameter order has changed to be able to specify maximum recursion)
1013 - bugfix Debug consol did not include subtemplate information with $smarty->merge_compiled_includes = true
1014 - improvement The template variables are no longer displayed as objects on the Debug Console
1015 - improvement $smarty->createData($parent = null, $name = null) new optional name parameter for display at Debug Console
1016 - addition of some hooks for future extension of Debug Console
1017
1018 01.11.2014
1019 - bugfix and enhancement on subtemplate {include} and template {function} tags.
1020 * Calling a template which has a nocache section could fail if it was called from a cached and a not cached subtemplate.
1021 * Calling the same subtemplate cached and not cached with the $smarty->merge_compiled_includes enabled could cause problems
1022 * Many smaller related changes
1023
1024 30.10.2014
1025 - bugfix access to class constant by object like {$object::CONST} or variable class name {$class::CONST} did not work (forum 25301)
1026
1027 26.10.2014
1028 - bugfix E_NOTICE message was created during compilation when ASP tags '<%' or '%>' are in template source text
1029 - bugfix merge_compiled_includes option failed when caching enables and same subtemplate was included cached and not cached
1030
1031 - 3.1.21 - (18.10.2014)
1032 18.10.2014
1033 - composer moved to github
1034
1035 17.10.2014
1036 - bugfix on $php_handling security and optimization of smarty_internal_parsetree (Thue Kristensen)
1037
1038 16.10.2014
1039 - bugfix composer.json update
1040
1041 15.10.2014
1042 - bugfix calling a new created cache file with fetch() and Smarty::CACHING_LIFETIME_SAVED multiple times did fail (forum 22350)
1043
1044 14.10.2014
1045 - bugfix any tag placed within "<script language=php>" will throw a security exception to close all thinkable holes
1046 - bugfix classmap in root composer.json should start at "libs/..."
1047 - improvement cache is_file(file_exists) results of loadPlugin() to avoid unnecessary calls during compilation (Issue 201}
1048
1049 12.10.2014
1050 - bugfix a comment like "<script{*foo*} language=php>" bypassed $php_handling checking (Thue Kristensen)
1051 - bugfix change of 08.10.2014 could create E_NOTICE meassage when using "<?php" tags
1052 - bugfix "<script language=php>" with $php_handling PHP_PASSTHRU was executed in {nocache} sections
1053
1054 - 3.1.20 - (09.10.2014)
1055 08.10.2014
1056 - bugfix security mode of "<script language=php>" must be controlled by $php_handling property (Thue Kristensen)
1057
1058 01.10.2014
1059 - bugfix template resource of inheritance blocks could get invalid if the default resource type is not 'file'(Issue 202)
1060 - bugfix existing child {block} tag must override parent {block} tag append / prepend setting (topic 25259)
1061
1062 02.08.2014
1063 - bugfix modifier wordwrap did output break string wrong if first word was exceeding length with cut = true (topic 25193)
1064
1065 24.07.2014
1066 - bugfix cache clear when cache folder does not exist
1067
1068 16.07.2014
1069 - enhancement remove BOM automatically from template source (topic 25161)
1070
1071 04.07.2014
1072 - 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)
1073
1074 - 3.1.19 - (30.06.2014)
1075 20.06.2014
1076 - bugfix template variables could not be passed as parameter in {include} when the include was in a {nocache} section (topic 25131)
1077
1078 17.06.2014
1079 - bugfix large template text of some charsets could cause parsing errors (topic 24630)
1080
1081 08.06.2014
1082 - bugfix registered objects did not work after spelling fixes of 06.06.2014
1083 - bugfix {block} tags within {literal} .. {/literal} got not displayed correctly (topic 25024)
1084 - bugfix UNC WINDOWS PATH like "\\psf\path\to\dir" did not work as template directory (Issue 192)
1085 - bugfix {html_image} security check did fail on files relative to basedir (Issue 191)
1086
1087 06.06.2014
1088 - fixed PHPUnit outputFilterTrimWhitespaceTests.php assertion of test result
1089 - fixed spelling, PHPDoc , minor errors, code cleanup
1090
1091 02.06.2014
1092 - using multiple cwd with relative template dirs could result in identical compiled file names. (issue 194 and topic 25099)
1093
1094 19.04.2014
1095 - bugfix calling createTemplate(template, data) with empty data array caused notice of array to string conversion (Issue 189)
1096 - bugfix clearCompiledTemplate() did not delete files on WINDOWS when a compile_id was specified
1097
1098 18.04.2014
1099 - revert bugfix of 5.4.2014 because %-e date format is not supported on all operating systems
1100
1101 - 3.1.18 - (07.04.2014)
1102 06.04.2014
1103 - bugfix template inheritance fail when using custom resource after patch of 8.3.2014 (Issue 187)
1104 - bugfix update of composer file (Issue 168 and 184)
1105
1106 05.04.2014
1107 - bugfix default date format leads to extra spaces when displaying dates with single digit days (Issue 165)
1108
1109 26.03.2014
1110 - bugfix Smart_Resource_Custom should not lowercase the resource name (Issue 183)
1111
1112 24.03.2014
1113 - bugfix using a {foreach} property like @iteration could fail when used in inheritance parent templates (Issue 182)
1114
1115 20.03.2014
1116 - bugfix $smarty->auto_literal and mbsting.func_overload 2, 6 or 7 did fail (forum topic 24899)
1117
1118 18.03.2014
1119 - revert change of 17.03.2014
1120
112117.03.2014
1122 - bugfix $smarty->auto_literal and mbsting.func_overload 2, 6 or 7 did fail (forum topic 24899)
1123
1124 15.03.2014
1125 - bugfix Smarty_CacheResource_Keyvaluestore did use different keys on read/writes and clearCache() calls (Issue 169)
1126
1127 13.03.2014
1128 - bugfix clearXxx() change of 27.1.2014 did not work when specifing cache_id or compile_id (forum topic 24868 and 24867)
1129
1130 - 3.1.17 -
1131 08.03.2014
1132 - bugfix relative file path {include} within {block} of child templates did throw exception on first call (Issue 177)
1133
1134 17.02.2014
1135 - bugfix Smarty failed when executing PHP on HHVM (Hip Hop 2.4) because uniqid('',true) does return string with ',' (forum topic 20343)
1136
1137 16.02.2014
1138 - bugfix a '//' or '\\' in template_dir path could produce wrong path on relative filepath in {include} (Issue 175)
1139
1140 05.02.2014
1141 - bugfix shared.literal_compiler_param.php did throw an exception when literal did contain a '-' (smarty-developers group)
1142
1143 27.01.2014
1144 - bugfix $smarty->debugging = true; did show the variable of the $smarty object not the variables used in display() call (forum topic 24764)
1145 - bugfix clearCompiledTemplate(), clearAll() and clear() should use realpath to avoid possible exception from RecursiveDirectoryIterator (Issue 171)
1146
1147 26.01.2014
1148 - bugfix undo block nesting checks for {nocache} for reasons like forum topic 23280 (forum topic 24762)
1149
1150 18.01.2014
1151 - bugfix the compiler did fail when using template inheritance and recursive {include} (smarty-developers group)
1152
1153 11.01.2014
1154 - bugfix "* }" (spaces before right delimiter) was interpreted by mistake as comment end tag (Issue 170)
1155 - internals content cache should be clear when updating cache file
1156
1157 08.01.2014
1158 - bugfix Smarty_CacheResource_Custom did not handle template resource type specifications on clearCache() calls (Issue 169)
1159 - bugfix SmartyBC.class.php should use require_once to load Smarty.class.php (forum topic 24683)
1160
1161 - 3.1.16 -
1162 15.12.2013
1163 - bugfix {include} with {block} tag handling (forum topic 24599, 24594, 24682) (Issue 161)
1164 Read 3.1.16_RELEASE_NOTES for more details
1165 - enhancement additional debug output at $smarty->_parserdebug = true;
1166
1167 07.11.2013
1168 - bugfix too restrictive handling of {include} within {block} tags. 3.1.15 did throw errors where 3.1.14 did not (forum topic 24599)
1169 - bugfix compiler could fail if PHP mbstring.func_overload is enabled (Issue 164)
1170
1171 28.10.2013
1172 - bugfix variable resource name at custom resource plugin did not work within {block} tags (Issue 163)
1173 - bugfix notice "Trying to get property of non-object" removed (Issue 163)
1174 - bugfix correction of modifier capitalize fix from 3.10.2013 (issue 159)
1175 - bugfix multiple {block}s with same name in parent did not work (forum topic 24631)
1176
1177 20.10.2013
1178 - bugfix a variable file name at {extends} tag did fail (forum topic 24618)
1179
1180 14.10.2013
1181 - bugfix yesterdays fix could result in an undefined variable
1182
1183 13.10.2013
1184 - bugfix variable names on {include} in template inheritance did unextepted error message (forum topic 24594) (Issue 161)
1185.- bugfix relative includes with same name like {include './foo.tpl'} from different folder failed (forum topic 24590)(Issue 161)
1186
1187 04.10.2013
1188 - bugfix variable file names at {extends} had been disbabled by mistake with the rewrite of
1189 template inheritance of 24.08.2013 (forum topic 24585)
1190
119103.10.2013
1192 - bugfix loops using modifier capitalize did eat up memory (issue 159)
1193
1194 - Smarty 3.1.15 -
119501.10.2013
1196 - use current delimiters in compiler error messages (issue 157)
1197 - improvement on performance when using error handler and multiple template folders (issue 152)
1198
119917.09.2013
1200 - improvement added patch for additional SmartyCompilerException properties for better access to source information (forum topic 24559)
1201
120216.09.2013
1203 - bugfix recompiled templates did not show on first request with zend opcache cache (forum topic 24320)
1204
120513.09.2013
1206 - bugfix html_select_time defaulting error for the Meridian dropdown (forum topic 24549)
1207
120809.09.2012
1209- bugfix incorrect compiled code with array(object,method) callback at registered Variable Filter (forum topic 24542)
1210
121127.08.2013
1212- bugfix delimiter followed by linebreak did not work as auto literal after update from 24.08.2013 (forum topic 24518)
1213
121424.08.2013
1215- bugfix and enhancement
1216 Because several recent problems with template inheritance the {block} tag compiler has been rewriten
1217 - Error messages shown now the correct child template file and line number
1218 - The compiler could fail on some larger UTF-8 text block (forum topic 24455)
1219 - The {strip} tag can now be placed outside {block} tags in child templates (forum topic 24289)
1220- change SmartyException::$escape is now false by default
1221- change PHP traceback has been remove for SmartyException and SmartyCompilerException
1222
122314.08.2013
1224- bugfix compiled filepath of config file did not observe different config_dir (forum topic 24493)
1225
122613.08.2013
1227- bugfix the internal resource cache did not observe config_dir changes (forum topic 24493)
1228
122912.08.2013
1230- bugfix internal $tmpx variables must be unique over all inheritance templates (Issue 149)
1231
123210.08.2013
1233- bugfix a newline was eaten when a <?xml ... ?> was passed by a Smarty variable and caching was enabled (forum topic 24482)
1234
123529.07.2013
1236- bugfix headers already send warning thrown when using 'SMARTY_DEBUG=on' from URL (Issue 148)
1237
123827.07.2013
1239- enhancement allow access to properties of registered opjects for Smarty2 BC (forum topic 24344)
1240
124126.07.2013
1242- bugfix template inheritance nesting problem (forum topic 24387)
1243
124415.7.2013
1245- update code generated by PSR-2 standards fixer which introduced PHP 5.4 incompatibilities of 14.7.2013
1246
124714.7.2013
1248- bugfix increase of internal maximum parser stacksize to allow more complex tag code {forum topic 24426}
1249- update for PHP 5.4 compatibility
1250- reformat source to PSR-2 standard
1251
125212.7.2013
1253- bugfix Do not remove '//' from file path at normalization (Issue 142)
1254
12552.7.2013
1256- bugfix trimwhitespace would replace captured items in wrong order (forum topic 24387)
1257
1258## Smarty-3.1.14 -
125927.06.2013
1260- bugfix removed PHP 5.5 deprecated preg_replace /e option in modifier capitalize (forum topic 24389)
1261
126217.06.2013
1263- fixed spelling in sources and documentation (from smarty-developers forum Veres Lajos)
1264- enhancement added constant SMARTY::CLEAR_EXPIRED for the change of 26.05.2013 (forum topic 24310)
1265- bugfix added smarty_security.php to composer.json (Issue 135)
1266
126726.05.2013
1268- enhancement an expire_time of -1 in clearCache() and clearAllCache() will delete outdated cache files
1269 by their individual cache_lifetime used at creation (forum topic 24310)
1270
127121.05.2013
1272- bugfix modifier strip_tags:true was compiled into wrong code (Forum Topic 24287)
1273- bugfix /n after ?> in Smarty.class.php did start output buffering (Issue 138)
1274
127525.04.2013
1276- bugfix escape and wordrap modifier could be compiled into wrong code when used in {nocache}{/nocache}
1277 section but caching is disabled (Forum Topic 24260)
1278
127905.04.2013
1280- bugfix post filter must not run when compiling inheritance child blocks (Forum Topic 24094)
1281- bugfix after the fix for Issue #130 compiler exceptions got double escaped (Forum Topic 24199)
1282
128328.02.2013
1284- bugfix nocache blocks could be lost when using CACHING_LIFETIME_SAVED (Issue #133)
1285- bugfix Compile ID gets nulled when compiling child blocks (Issue #134)
1286
1287
128824.01.2013
1289- bugfix wrong tag type in smarty_internal_templatecompilerbase.php could cause wrong plugin search order (Forum Topic 24028)
1290
1291## Smarty-3.1.13 -
129213.01.2013
1293- enhancement allow to disable exception message escaping by SmartyException::$escape = false; (Issue #130)
1294
129509.01.2013
1296- bugfix compilation did fail when a prefilter did modify an {extends} tag c
1297- bugfix template inheritance could fail if nested {block} tags in childs did contain {$smarty.block.child} (Issue #127)
1298- bugfix template inheritance could fail if {block} tags in childs did have similar name as used plugins (Issue #128)
1299- added abstract method declaration doCompile() in Smarty_Internal_TemplateCompilerBase (Forum Topic 23969)
1300
130106.01.2013
1302- Allow '://' URL syntax in template names of stream resources (Issue #129)
1303
130427.11.2012
1305- bugfix wrong variable usage in smarty_internal_utility.php (Issue #125)
1306
130726.11.2012
1308- bugfix global variable assigned within template function are not seen after template function exit (Forum Topic 23800)
1309
131024.11.2012
1311- made SmartyBC loadable via composer (Issue #124)
1312
131320.11.2012
1314- bugfix assignGlobal() called from plugins did not work (Forum Topic 23771)
1315
131613.11.2012
1317- 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)
1318
131901.11.2012
1320- bugfix muteExcpetedErrors() would screw up for non-readable paths (Issue #118)
1321
1322## Smarty-3.1.12 -
132314.09.2012
1324- bugfix template inheritance failed to compile with delimiters {/ and /} (Forum Topic 23008)
1325
132611.09.2012
1327- bugfix escape Smarty exception messages to avoid possible script execution
1328
132910.09.2012
1330- bugfix tag option flags and shorttag attributes did not work when rdel started with '=' (Forum Topic 22979)
1331
133231.08.2012
1333- bugfix resolving relative paths broke in some circumstances (Issue #114)
1334
133522.08.2012
1336- bugfix test MBString availability through mb_split, as it could've been compiled without regex support (--enable-mbregex).
1337 Either we get MBstring's full package, or we pretend it's not there at all.
1338
133921.08.2012
1340- bugfix $auto_literal = false did not work with { block} tags in child templates
1341 (problem was reintroduced after fix in 3.1.7)(Forum Topic 20581)
1342
134317.08.2012
1344- bugfix compiled code of nocache sections could contain wrong escaping (Forum Topic 22810)
1345
134615.08.2012
1347- bugfix template inheritance did produce wrong code if subtemplates with {block} was
1348 included several times (from smarty-developers forum)
1349
135014.08.2012
1351- bugfix PHP5.2 compatibility compromised by SplFileInfo::getBasename() (Issue 110)
1352
135301.08.2012
1354- bugfix avoid PHP error on $smarty->configLoad(...) with invalid section specification (Forum Topic 22608)
1355
135630.07.2012
1357-bugfix {assign} in a nocache section should not overwrite existing variable values
1358 during compilation (issue 109)
1359
136028.07.2012
1361- bugfix array access of config variables did not work (Forum Topic 22527)
1362
136319.07.2012
1364- bugfix the default plugin handler did create wrong compiled code for static class methods
1365 from external script files (issue 108)
1366
1367## Smarty-3.1.11 -
136830.06.2012
1369- bugfix {block.. hide} did not work as nested child (Forum Topic 22216)
1370
137125.06.2012
1372- bugfix the default plugin handler did not allow static class methods for modifier (issue 85)
1373
137424.06.2012
1375- bugfix escape modifier support for PHP < 5.2.3 (Forum Topic 21176)
1376
137711.06.2012
1378- bugfix the patch for Topic 21856 did break tabs between tag attributes (Forum Topic 22124)
1379
1380## Smarty-3.1.10 -
138109.06.2012
1382- bugfix the compiler did ignore registered compiler plugins for closing tags (Forum Topic 22094)
1383- bugfix the patch for Topic 21856 did break multiline tags (Forum Topic 22124)
1384
1385## Smarty-3.1.9 -
138607.06.2012
1387- bugfix fetch() and display() with relative paths (Issue 104)
1388- bugfix treat "0000-00-00" as 0 in modifier.date_format (Issue 103)
1389
139024.05.2012
1391- bugfix Smarty_Internal_Write_File::writeFile() could cause race-conditions on linux systems (Issue 101)
1392- bugfix attribute parameter names of plugins may now contain also "-" and ":" (Forum Topic 21856)
1393- bugfix add compile_id to cache key of of source (Issue 97)
1394
139522.05.2012
1396- bugfix recursive {include} within {section} did fail (Smarty developer group)
1397
139812.05.2012
1399- bugfix {html_options} did not properly escape values (Issue 98)
1400
140103.05.2012
1402- bugfix make HTTP protocall version variable (issue 96)
1403
140402.05.2012
1405- bugfix {nocache}{block}{plugin}... did produce wrong compiled code when caching is disabled (Forum Topic 21572, issue 95)
1406
140712.04.2012
1408- bugfix Smarty did eat the linebreak after the <?xml...?> closing tag (Issue 93)
1409- bugfix concurrent cache updates could create a warning (Forum Topic 21403)
1410
141108.04.2012
1412- bugfix "\\" was not escaped correctly when generating nocache code (Forum Topic 21364)
1413
141430.03.2012
1415- bugfix template inheritance did not throw exception when a parent template was deleted (issue 90)
1416
141727.03.2012
1418- bugfix prefilter did run multiple times on inline subtemplates compiled into several main templates (Forum Topic 21325)
1419- bugfix implement Smarty2's behaviour of variables assigned by reference in SmartyBC. {assign} will affect all references.
1420 (issue 88)
1421
142221.03.2012
1423- bugfix compileAllTemplates() and compileAllConfig() did not return the number of compiled files (Forum Topic 21286)
1424
142513.03.2012
1426- correction of yesterdays bugfix (Forum Topic 21175 and 21182)
1427
142812.03.2012
1429- bugfix a double quoted string of "$foo" did not compile into PHP "$foo" (Forum Topic 21175)
1430- bugfix template inheritance did set $merge_compiled_includes globally true
1431
143203.03.2012
1433- optimization of compiling speed when same modifier was used several times
1434
143502.03.2012
1436- enhancement the default plugin handler can now also resolve undefined modifier (Smarty::PLUGIN_MODIFIER)
1437 (Issue 85)
1438
1439## Smarty-3.1.8 -
144019.02.2012
1441- bugfix {include} could result in a fatal error if used in appended or prepended nested {block} tags
1442 (reported by mh and Issue 83)
1443- enhancement added Smarty special variable $smarty.template_object to return the current template object (Forum Topic 20289)
1444
1445
144607.02.2012
1447- bugfix increase entropy of internal function names in compiled and cached template files (Forum Topic 20996)
1448- enhancement cacheable parameter added to default plugin handler, same functionality as in registerPlugin (request by calguy1000)
1449
145006.02.2012
1451- improvement stream_resolve_include_path() added to Smarty_Internal_Get_Include_Path (Forum Topic 20980)
1452- bugfix fetch('extends:foo.tpl') always yielded $source->exists == true (Forum Topic 20980)
1453- added modifier unescape:"url", fix (Forum Topic 20980)
1454- improvement replaced some calls of preg_replace with str_replace (Issue 73)
1455
145630.01.2012
1457- bugfix Smarty_Security internal $_resource_dir cache wasn't properly propagated
1458
145927.01.2012
1460- bugfix Smarty did not a template name of "0" (Forum Topic 20895)
1461
146220.01.2012
1463- bugfix typo in Smarty_Internal_Get_IncludePath did cause runtime overhead (Issue 74)
1464- improvment remove unneeded assigments (Issue 75 and 76)
1465- fixed typo in template parser
1466- bugfix output filter must not run before writing cache when template does contain nocache code (Issue 71)
1467
146802.01.2012
1469- bugfix {block foo nocache} did not load plugins within child {block} in nocache mode (Forum Topic 20753)
1470
147129.12.2011
1472- bugfix enable more entropy in Smarty_Internal_Write_File for "more uniqueness" and Cygwin compatibility (Forum Topic 20724)
1473- bugfix embedded quotes in single quoted strings did not compile correctly in {nocache} sections (Forum Topic 20730)
1474
147528.12.2011
1476- bugfix Smarty's internal header code must be excluded from postfilters (issue 71)
1477
147822.12.2011
1479- bugfix the new lexer of 17.12.2011 did fail if mbstring.func_overload != 0 (issue 70) (Forum Topic 20680)
1480- bugfix template inheritace did fail if mbstring.func_overload != 0 (issue 70) (Forum Topic 20680)
1481
148220.12.2011
1483- bugfix template inheritance: {$smarty.block.child} in nested child {block} tags did not return
1484 content after {$smarty.block.child} (Forum Topic 20564)
1485
1486## Smarty-3.1.7 -
148718.12.2011
1488- bugfix strings ending with " in multiline strings of config files failed to compile (issue #67)
1489- added chaining to Smarty_Internal_Templatebase
1490- changed unloadFilter() to not return a boolean in favor of chaining and API conformity
1491- bugfix unregisterObject() raised notice when object to unregister did not exist
1492- changed internals to use Smarty::$_MBSTRING ($_CHARSET, $_DATE_FORMAT) for better unit testing
1493- added Smarty::$_UTF8_MODIFIER for proper PCRE charset handling (Forum Topic 20452)
1494- added Smarty_Security::isTrustedUri() and Smarty_Security::$trusted_uri to validate
1495 remote resource calls through {fetch} and {html_image} (Forum Topic 20627)
1496
149717.12.2011
1498- improvement of compiling speed by new handling of plain text blocks in the lexer/parser (issue #68)
1499
150016.12.2011
1501- bugfix the source exits flag and timestamp was not setup when template was in php include path (issue #69)
1502
15039.12.2011
1504- bugfix {capture} tags around recursive {include} calls did throw exception (Forum Topic 20549)
1505- bugfix $auto_literal = false did not work with { block} tags in child templates (Forum Topic 20581)
1506- bugfix template inheritance: do not include code of {include} in overloaded {block} into compiled
1507 parent template (Issue #66}
1508- bugfix template inheritance: {$smarty.block.child} in nested child {block} tags did not return expected
1509 result (Forum Topic 20564)
1510
1511## Smarty-3.1.6 -
151230.11.2011
1513- bugfix is_cache() for individual cached subtemplates with $smarty->caching = CACHING_OFF did produce
1514 an exception (Forum Topic 20531)
1515
151629.11.2011
1517- bugfix added exception if the default plugin handler did return a not static callback (Forum Topic 20512)
1518
151925.11.2011
1520- bugfix {html_select_date} and {html_slecet_time} did not default to current time if "time" was not specified
1521 since r4432 (issue 60)
1522
152324.11.2011
1524- bugfix a subtemplate later used as main template did use old variable values
1525
152621.11.2011
1527- bugfix cache file could include unneeded modifier plugins under certain condition
1528
152918.11.2011
1530- bugfix declare all directory properties private to map direct access to getter/setter also on extended Smarty class
1531
153216.11.2011
1533- bugfix Smarty_Resource::load() did not always return a proper resource handler (Forum Topic 20414)
1534- added escape argument to html_checkboxes and html_radios (Forum Topic 20425)
1535
1536## Smarty-3.1.5 -
153714.11.2011
1538- bugfix allow space between function name and open bracket (forum topic 20375)
1539
154009.11.2011
1541- bugfix different behaviour of uniqid() on cygwin. See https://bugs.php.net/bug.php?id=34908
1542 (forum topic 20343)
1543
154401.11.2011
1545- bugfix {if} and {while} tags without condition did not throw a SmartyCompilerException (Issue #57)
1546- bugfix multiline strings in config files could fail on longer strings (reopened Issue #55)
1547
154822.10.2011
1549- bugfix smarty_mb_from_unicode() would not decode unicode-points properly
1550- bugfix use catch Exception instead UnexpectedValueException in
1551 clearCompiledTemplate to be PHP 5.2 compatible
1552
155321.10.2011
1554- bugfix apostrophe in plugins_dir path name failed (forum topic 20199)
1555- improvement sha1() for array keys longer than 150 characters
1556- add Smarty::$allow_ambiguous_resources to activate unique resource handling (Forum Topic 20128)
1557
155820.10.2011
1559- @silenced unlink() in Smarty_Internal_Write_File since debuggers go haywire without it.
1560- bugfix Smarty::clearCompiledTemplate() threw an Exception if $cache_id was not present in $compile_dir when $use_sub_dirs = true.
1561- bugfix {html_select_date} and {html_select_time} did not properly handle empty time arguments (Forum Topic 20190)
1562- improvement removed unnecessary sha1()
1563
156419.10.2011
1565- revert PHP4 constructor message
1566- fixed PHP4 constructor message
1567
1568## Smarty-3.1.4 -
156919.10.2011
1570- added exception when using PHP4 style constructor
1571
157216.10.2011
1573- bugfix testInstall() did not propery check cache_dir and compile_dir
1574
157515.10.2011
1576- bugfix Smarty_Resource and Smarty_CacheResource runtime caching (Forum Post 75264)
1577
157814.10.2011
1579- bugfix unique_resource did not properly apply to compiled resources (Forum Topic 20128)
1580- add locking to custom resources (Forum Post 75252)
1581- add Smarty_Internal_Template::clearCache() to accompany isCached() fetch() etc.
1582
158313.10.2011
1584- add caching for config files in Smarty_Resource
1585- bugfix disable of caching after isCached() call did not work (Forum Topic 20131)
1586- add concept unique_resource to combat potentially ambiguous template_resource values when custom resource handlers are used (Forum Topic 20128)
1587- bugfix multiline strings in config files could fail on longer strings (Issue #55)
1588
158911.10.2011
1590- add runtime checks for not matching {capture}/{/capture} calls (Forum Topic 20120)
1591
159210.10.2011
1593- bugfix variable name typo in {html_options} and {html_checkboxes} (Issue #54)
1594- bugfix <?xml> tag did create wrong output when caching enabled and the tag was in included subtemplate
1595- bugfix Smarty_CacheResource_mysql example was missing strtotime() calls
1596
1597## Smarty-3.1.3 -
159807.10.2011
1599- improvement removed html comments from {mailto} (Forum Topic 20092)
1600- bugfix testInstall() would not show path to internal plugins_dir (Forum Post 74627)
1601- improvement testInstall() now showing resolved paths and checking the include_path if necessary
1602- bugfix html_options plugin did not handle object values properly (Issue #49, Forum Topic 20049)
1603- improvement html_checkboxes and html_radios to accept null- and object values, and label_ids attribute
1604- improvement removed some unnecessary count()s
1605- bugfix parent pointer was not set when fetch() for other template was called on template object
1606
160706.10.2011
1608- bugfix switch lexer internals depending on mbstring.func_overload
1609- bugfix start_year and end_year of {html_select_date} did not use current year as offset base (Issue #53)
1610
161105.10.2011
1612- bugfix of problem introduced with r4342 by replacing strlen() with isset()
1613- add environment configuration issue with mbstring.func_overload Smarty cannot compensate for (Issue #45)
1614- bugfix nofilter tag option did not disable default modifier
1615- bugfix html_options plugin did not handle null- and object values properly (Issue #49, Forum Topic 20049)
1616
161704.10.2011
1618- bugfix assign() in plugins called in subtemplates did change value also in parent template
1619- bugfix of problem introduced with r4342 on math plugin
1620- bugfix output filter should not run on individually cached subtemplates
1621- add unloadFilter() method
1622- bugfix has_nocache_code flag was not reset before compilation
1623
1624## Smarty-3.1.2 -
162503.10.2011
1626- improvement add internal $joined_template_dir property instead computing it on the fly several times
1627
162801.10.2011
1629- improvement replaced most in_array() calls by more efficient isset() on array_flip()ed haystacks
1630- improvement replaced some strlen($foo) > 3 calls by isset($foo[3])
1631- improvement Smarty_Internal_Utility::clearCompiledTemplate() removed redundant strlen()s
1632
163329.09.2011
1634- improvement of Smarty_Internal_Config::loadConfigVars() dropped the in_array for index look up
1635
163628.09.2011
1637- bugfix on template functions called nocache calling other template functions
1638
163927.09.2011
1640- bugfix possible warning "attempt to modify property of non-object" in {section} (issue #34)
1641- added chaining to Smarty_Internal_Data so $smarty->assign('a',1)->assign('b',2); is possible now
1642- bugfix remove race condition when a custom resource did change timestamp during compilation
1643- bugfix variable property did not work on objects variable in template
1644- bugfix smarty_make_timestamp() failed to process DateTime objects properly
1645- bugfix wrong resource could be used on compile check of custom resource
1646
164726.09.2011
1648- bugfix repeated calls to same subtemplate did not make use of cached template object
1649
165024.09.2011
1651- removed internal muteExpectedErrors() calls in favor of having the implementor call this once from his application
1652- optimized muteExpectedErrors() to pass errors to the latest registered error handler, if appliccable
1653- added compile_dir and cache_dir to list of muted directories
1654- improvment better error message for undefined templates at {include}
1655
165623.09.2011
1657- remove unused properties
1658- optimization use real function instead anonymous function for preg_replace_callback
1659- bugfix a relative {include} in child template blocks failed
1660- bugfix direct setting of $template_dir, $config_dir, $plugins_dir in __construct() of an
1661 extended Smarty class created problems
1662- bugfix error muting was not implemented for cache locking
1663
1664## Smarty 3.1.1 -
166522.09.2011
1666- bugfix {foreachelse} does fail if {section} was nested inside {foreach}
1667- bugfix debug.tpl did not display correctly when it was compiled with escape_html = true
1668
166921.09.2011
1670- bugfix look for mixed case plugin file names as in 3.0 if not found try all lowercase
1671- added $error_muting to suppress error messages even for badly implemented error_handlers
1672- optimized autoloader
1673- reverted ./ and ../ handling in fetch() and display() - they're allowed again
1674
167520.09.2011
1676- bugfix removed debug echo output while compiling template inheritance
1677- bugfix relative paths in $template_dir broke relative path resolving in {include "../foo.tpl"}
1678- bugfix {include} did not work inside nested {block} tags
1679- bugfix {assign} with scope root and global did not work in all cases
1680
168119.09.2011
1682- bugfix regression in Smarty_CacheReource_KeyValueStore introduced by r4261
1683- bugfix output filter shall not run on included subtemplates
1684
168518.09.2011
1686- bugfix template caching did not care about file.tpl in different template_dir
1687- bugfix {include $file} was broken when merge_compiled_incluges = true
1688- bugfix {include} was broken when merge_compiled_incluges = true and same indluded template
1689 was used in different main templates in one compilation run
1690- bugfix for Smarty2 style compiler plugins on unnamed attribute passing like {tag $foo $bar}
1691- bugfix debug.tpl did not display correctly when it was compiled with escape_html = true
1692
169317.09.2011
1694- bugfix lock_id for file resource would create invalid filepath
1695- bugfix resource caching did not care about file.tpl in different template_dir
1696
1697## Smarty 3.1.0 -
169815/09/2011
1699- optimization of {foreach}; call internal _count() method only when "total" or "last" {foreach} properties are used
1700
170111/09/2011
1702- added unregisterObject() method
1703
170406/09/2011
1705- bugfix isset() did not work in templates on config variables
1706
170703/09/2011
1708- bugfix createTemplate() must default to cache_id and compile_id of Smarty object
1709- bugfix Smarty_CacheResource_KeyValueStore must include $source->uid in cache filepath to keep templates with same
1710 name but different folders separated
1711- added cacheresource.apc.php example in demo folder
1712
171302/09/2011
1714- bugfix cache lock file must use absolute filepath
1715
171601/09/2011
1717- update of cache locking
1718
171930/08/2011
1720- added locking mechanism to CacheResource API (implemented with File and KeyValueStores)
1721
172228/08/2011
1723- bugfix clearCompileTemplate() did not work for specific template subfolder or resource
1724
172527/08/2011
1726- bugfix {$foo|bar+1} did create syntax error
1727
172826/08/2011
1729- bugfix when generating nocache code which contains double \
1730- bugfix handle race condition if cache file was deleted between filemtime and include
1731
173217/08/2011
1733- bugfix CacheResource_Custom bad internal fetch() call
1734
173515/08/2011
1736- bugfix CacheResource would load content twice for KeyValueStore and Custom handlers
1737
173806/08/2011
1739- bugfix {include} with scope attribute could execute in wrong scope
1740- optimization of compile_check processing
1741
174203/08/2011
1743- allow comment tags to comment {block} tags out in child templates
1744
174526/07/2011
1746- bugfix experimental getTags() method did not work
1747
174824/07/2011
1749- sure opened output buffers are closed on exception
1750- bugfix {foreach} did not work on IteratorAggregate
1751
175222/07/2011
1753- clear internal caches on clearAllCache(), clearCache(), clearCompiledTemplate()
1754
175521/07/2011
1756- bugfix value changes of variable values assigned to Smarty object could not be seen on repeated $smarty->fetch() calls
1757
175817/07/2011
1759- bugfix {$smarty.block.child} did drop a notice at undefined child
1760
176115/07/2011
1762- bugfix individual cache_lifetime of {include} did not work correctly inside {block} tags
1763- added caches for Smarty_Internal_TemplateSource and Smarty_Internal_TemplateCompiled to reduce I/O for multiple cache_id rendering
1764
176514/07/2011
1766- made Smarty::loadPlugin() respect the include_path if required
1767
176813/07/2011
1769- optimized internal file write functionality
1770- bugfix PHP did eat line break on nocache sections
1771- fixed typo of Smarty_Security properties $allowed_modifiers and $disabled_modifiers
1772
177306/07/2011
1774- bugfix variable modifier must run befor gereral filtering/escaping
1775
177604/07/2011
1777- bugfix use (?P<name>) syntax at preg_match as some pcre libraries failed on (?<name>)
1778- some performance improvement when using generic getter/setter on template objects
1779
178030/06/2011
1781- bugfix generic getter/setter of Smarty properties used on template objects did throw exception
1782- removed is_dir and is_readable checks from directory setters for better performance
1783
178428/06/2011
1785- added back support of php template resource as undocumented feature
1786- bugfix automatic recompilation on version change could drop undefined index notice on old 3.0 cache and compiled files
1787- update of README_3_1_DEV.txt and moved into the distribution folder
1788- improvement show first characters of eval and string templates instead sha1 Uid in debug window
1789
1790## Smarty 3.1-RC1 -
179125/06/2011
1792- revert change of 17/06/2011. $_smarty varibale removed. call loadPlugin() from inside plugin code if required
1793- code cleanup, remove no longer used properties and methods
1794- update of PHPdoc comments
1795
179623/06/2011
1797- bugfix {html_select_date} would not respect current time zone
1798
179919/06/2011
1800- added $errors argument to testInstall() functions to suppress output.
1801- added plugin-file checks to testInstall()
1802
180318/06/2011
1804- bugfix mixed use of same subtemplate inline and not inline in same script could cause a warning during compilation
1805
180617/06/2011
1807- bugfix/change use $_smarty->loadPlugin() when loading nested depending plugins via loadPlugin
1808- bugfix {include ... inline} within {block}...{/block} did fail
1809
181016/06/2011
1811- bugfix do not overwrite '$smarty' template variable when {include ... scope=parent} is called
1812- bugfix complete empty inline subtemplates did fail
1813
181415/06/2011
1815- bugfix template variables where not accessable within inline subtemplates
1816
181712/06/2011
1818- bugfix removed unneeded merging of template variable when fetching includled subtemplates
1819
182010/06/2011
1821- made protected properties $template_dir, $plugins_dir, $cache_dir, $compile_dir, $config_dir accessible via magic methods
1822
182309/06/2011
1824- fix smarty security_policy issue in plugins {html_image} and {fetch}
1825
182605/06/2011
1827- update of SMARTY_VERSION
1828- bugfix made getTags() working again
1829
183004/06/2011
1831- allow extends resource in file attribute of {extends} tag
1832
183303/06/2011
1834- added {setfilter} tag to set filters for variable output
1835- added escape_html property to control autoescaping of variable output
1836
183727/05/2011
1838- added allowed/disabled tags and modifiers in security for sandboxing
1839
184023/05/2011
1841- added base64: and urlencode: arguments to eval and string resource types
1842
184322/05/2011
1844- made time-attribute of {html_select_date} and {html_select_time} accept arrays as defined by attributes prefix and field_array
1845
184613/05/2011
1847- remove setOption / getOption calls from SamrtyBC class
1848
184902/05/2011
1850- removed experimental setOption() getOption() methods
1851- output returned content also on opening tag calls of block plugins
1852- rewrite of default plugin handler
1853- compile code of variable filters for better performance
1854
185520/04/2011
1856- allow {php} {include_php} tags and PHP_ALLOW handling only with the SmartyBC class
1857- removed support of php template resource
1858
185920/04/2011
1860- added extendsall resource example
1861- optimization of template variable access
1862- optimization of subtemplate handling {include}
1863- optimization of template class
1864
186501/04/2011
1866- bugfix quote handling in capitalize modifier
1867
186828/03/2011
1869- bugfix stripslashes() requried when using PCRE e-modifier
1870
187104/03/2011
1872- upgrade to new PHP_LexerGenerator version 0.4.0 for better performance
1873
187427/02/2011
1875- ignore .svn folders when clearing cache and compiled files
1876- string resources do not need a modify check
1877
187826/02/2011
1879- replaced smarty_internal_wrapper by SmartyBC class
1880- load utility functions as static methods instead through __call()
1881- bugfix in extends resource when subresources are used
1882- optimization of modify checks
1883
188425/02/2011
1885- use $smarty->error_unassigned to control NOTICE handling on unassigned variables
1886
188721/02/2011
1888- added new new compile_check mode COMPILECHECK_CACHEMISS
1889- corrected new cloning behaviour of createTemplate()
1890- do no longer store the compiler object as property in the compile_tag classes to avoid possible memory leaks
1891 during compilation
1892
189319/02/2011
1894- optimizations on merge_compiled_includes handling
1895- a couple of optimizations and bugfixes related to new resource structure
1896
189717/02/2011
1898- changed ./ and ../ behaviour
1899
190014/02/2011
1901- added {block ... hide} option to suppress block if no child is defined
1902
190313/02/2011
1904- update handling of recursive subtemplate calls
1905- bugfix replace $smarty->triggerError() by exception in smarty_internal_resource_extends.php
1906
190712/02/2011
1908- new class Smarty_Internal_TemplateBase with shared methods of Smarty and Template objects
1909- optimizations of template processing
1910- made register... methods permanet
1911- code for default_plugin_handler
1912- add automatic recompilation at version change
1913
191404/02/2011
1915- change in Smarty_CacheResource_Custom
1916- bugfix cache_lifetime did not compile correctly at {include} after last update
1917- moved isCached processing into CacheResource class
1918- bugfix new CacheResource API did not work with disabled compile_check
1919
192003/02/2011
1921- handle template content as function to improve speed on multiple calls of same subtemplate and isCached()/display() calls
1922- bugfixes and improvents in the new resource API
1923- optimizations of template class code
1924
192525/01/2011
1926- optimized function html_select_time
1927
192822/01/2011
1929- added Smarty::$use_include_path configuration directive for Resource API
1930
193121/01/2011
1932- optimized function html_select_date
1933
193419/01/2011
1935- optimized outputfilter trimwhitespace
1936
193718/01/2011
1938- bugfix Config to use Smarty_Resource to fetch sources
1939- optimized Smarty_Security's isTrustedDir() and isTrustedPHPDir()
1940
194117/01/2011
1942- bugfix HTTP headers for CGI SAPIs
1943
194416/01/2011
1945- optimized internals of Smarty_Resource and Smarty_CacheResource
1946
194714/01/2011
1948- added modifiercompiler escape to improve performance of escaping html, htmlall, url, urlpathinfo, quotes, javascript
1949- added support to choose template_dir to load from: [index]filename.tpl
1950
195112/01/2011
1952- added unencode modifier to revert results of encode modifier
1953- added to_charset and from_charset modifier for character encoding
1954
195511/01/2011
1956- added SMARTY_MBSTRING to generalize MBString detection
1957- added argument $lc_rest to modifier.capitalize to lower-case anything but the first character of a word
1958- changed strip modifier to consider unicode white-space, too
1959- changed wordwrap modifier to accept UTF-8 strings
1960- changed count_sentences modifier to consider unicode characters and treat sequences delimited by ? and ! as sentences, too
1961- added argument $double_encode to modifier.escape (applies to html and htmlall only)
1962- changed escape modifier to be UTF-8 compliant
1963- changed textformat block to be UTF-8 compliant
1964- optimized performance of mailto function
1965- fixed spacify modifier so characters are not prepended and appended, made it unicode compatible
1966- fixed truncate modifier to properly use mb_string if possible
1967- removed UTF-8 frenzy from count_characters modifier
1968- fixed count_words modifier to treat "hello-world" as a single word like str_count_words() does
1969- removed UTF-8 frenzy from upper modifier
1970- removed UTF-8 frenzy from lower modifier
1971
197201/01/2011
1973- optimize smarty_modified_escape for hex, hexentity, decentity.
1974
197528/12/2010
1976- changed $tpl_vars, $config_vars and $parent to belong to Smarty_Internal_Data
1977- added Smarty::registerCacheResource() for dynamic cache resource object registration
1978
197927/12/2010
1980- added Smarty_CacheResource API and refactored existing cache resources accordingly
1981- added Smarty_CacheResource_Custom and Smarty_CacheResource_Mysql
1982
198326/12/2010
1984- added Smarty_Resource API and refactored existing resources accordingly
1985- added Smarty_Resource_Custom and Smarty_Resource_Mysql
1986- bugfix Smarty::createTemplate() to return properly cloned template instances
1987
198824/12/2010
1989- optimize smarty_function_escape_special_chars() for PHP >= 5.2.3
1990
1991## SVN 3.0 trunk -
199214/05/2011
1993- bugfix error handling at stream resources
1994
199513/05/2011
1996- bugfix condition starting with "-" did fail at {if} and {while} tags
1997
199822/04/2011
1999- bugfix allow only fixed string as file attribute at {extends} tag
2000
200101/04/2011
2002- bugfix do not run filters and default modifier when displaying the debug template
2003- bugfix of embedded double quotes within multi line strings (""")
2004
200529/03/2011
2006- bugfix on error message in smarty_internal_compile_block.php
2007- bugfix mb handling in strip modifier
2008- bugfix for Smarty2 style registered compiler function on unnamed attribute passing like {tag $foo $bar}
2009
201017/03/2011
2011- bugfix on default {function} parameters when {function} was used in nocache sections
2012- bugfix on compiler object destruction. compiler_object property was by mistake unset.
2013
201409/03/2011
2015-bugfix a variable filter should run before modifiers on an output tag (see change of 23/07/2010)
2016
201708/03/2011
2018- bugfix loading config file without section should load only defaults
2019
202003/03/2011
2021- bugfix "smarty" template variable was not recreated when cached templated had expired
2022- bugfix internal rendered_content must be cleared after subtemplate was included
2023
202401/03/2011
2025- bugfix replace modifier did not work in 3.0.7 on systems without multibyte support
2026- bugfix {$smarty.template} could return in 3.0.7 parent template name instead of
2027 child name when it needed to compile
2028
202925/02/2011
2030- bugfix for Smarty2 style compiler plugins on unnamed attribute passing like {tag $foo $bar}
2031
203224/02/2011
2033- bugfix $smarty->clearCache('some.tpl') did by mistake cache the template object
2034
203518/02/2011
2036- bugfix removed possible race condition when isCached() was called for an individually cached subtemplate
2037- bugfix force default debug.tpl to be loaded by the file resource
2038
203917/02/2011
2040-improvement not to delete files starting with '.' from cache and template_c folders on clearCompiledTemplate() and clearCache()
2041
204216/02/2011
2043-fixed typo in exception message of Smarty_Internal_Template
2044-improvement allow leading spaces on } tag closing if auto_literal is enabled
2045
204613/02/2011
2047- bufix replace $smarty->triggerError() by exception
2048- removed obsolete {popup_init..} plugin from demo templates
2049- bugfix replace $smarty->triggerError() by exception in smarty_internal_resource_extends.php
2050
2051## Smarty 3.0.7 -
205209/02/2011
2053- patched vulnerability when using {$smarty.template}
2054
205501/02/2011
2056- removed assert() from config and template parser
2057
205831/01/2011
2059- bugfix the lexer/parser did fail on special characters like VT
2060
206116/01/2011
2062-bugfix of ArrayAccess object handling in internal _count() method
2063-bugfix of Iterator object handling in internal _count() method
2064
206514/01/2011
2066-bugfix removed memory leak while processing compileAllTemplates
2067
206812/01/2011
2069- bugfix in {if} and {while} tag compiler when using assignments as condition and nocache mode
2070
207110/01/2011
2072- bugfix when using {$smarty.block.child} and name of {block} was in double quoted string
2073- bugfix updateParentVariables() was called twice when leaving {include} processing
2074
2075- bugfix mb_str_replace in replace and escape modifiers work with utf8
2076
207731/12/2010
2078- bugfix dynamic configuration of $debugging_crtl did not work
2079- bugfix default value of $config_read_hidden changed to false
2080- bugfix format of attribute array on compiler plugins
2081- bugfix getTemplateVars() could return value from wrong scope
2082
208328/12/2010
2084- bugfix multiple {append} tags failed to compile.
2085
208622/12/2010
2087- update do not clone the Smarty object an internal createTemplate() calls to increase performance
2088
208921/12/2010
2090- update html_options to support class and id attrs
2091
209217/12/2010
2093- bugfix added missing support of $cache_attrs for registered plugins
2094
209515/12/2010
2096- bugfix assignment as condition in {while} did drop an E_NOTICE
2097
209814/12/2010
2099- bugfix when passing an array as default parameter at {function} tag
2100
210113/12/2010
2102- bugfix {$smarty.template} in child template did not return right content
2103- bugfix Smarty3 did not search the PHP include_path for template files
2104
2105## Smarty 3.0.6 -
2106
210712/12/2010
2108- bugfix fixed typo regarding yesterdays change to allow streamWrapper
2109
211011/12/2010
2111- bugfix nested block tags in template inheritance child templates did not work correctly
2112- bugfix {$smarty.current_dir} in child template did not point to dir of child template
2113- bugfix changed code when writing temporary compiled files to allow stream_wrapper
2114
211506/12/2010
2116- bugfix getTemplateVars() should return 'null' instead dropping E_NOTICE on an unassigned variable
2117
211805/12/2010
2119- bugfix missing declaration of $smarty in Smarty class
2120- bugfix empty($foo) in {if} did drop a notice when $foo was not assigned
2121
212201/12/2010
2123- improvement of {debug} tag output
2124
212527/11/2010
2126-change run output filter before cache file is written. (same as in Smarty2)
2127
212824/11/2011
2129-bugfix on parser at !$foo|modifier
2130-change parser logic when assignments used as condition in {if] and {while} to allow assign to array element
2131
213223/11/2011
2133-bugfix allow integer as attribute name in plugin calls
2134-change trimm whitespace from error message, removed long list of expected tokens
2135
213622/11/2010
2137- bugfix on template inheritance when an {extends} tag was inserted by a prefilter
2138- added error message for illegal variable file attributes at {extends...} tags
2139
2140## Smarty 3.0.5 -
2141
2142
214319/11/2010
2144- bugfix on block plugins with modifiers
2145
214618/11/2010
2147- change on handling of unassigned template variable -- default will drop E_NOTICE
2148- bugfix on Smarty2 wrapper load_filter() did not work
2149
215017/11/2010
2151- bugfix on {call} with variable function name
2152- bugfix on {block} if name did contain '-'
2153- bugfix in function.fetch.php , referece to undefined $smarty
2154
215516/11/2010
2156- bugfix whitespace in front of "<?php" in smarty_internal_compile_private_block_plugin.php
2157- bugfix {$smarty.now} did compile incorrectly
2158- bugfix on reset(),end(),next(),prev(),current() within templates
2159- bugfix on default parameter for {function}
2160
216115/11/2010
2162- bugfix when using {$smarty.session} as object
2163- bugfix scoping problem on $smarty object passed to filters
2164- bugfix captured content could not be accessed globally
2165- bugfix Smarty2 wrapper functions could not be call from within plugins
2166
2167## Smarty 3.0.4 -
2168
216914/11/2010
2170- bugfix isset() did not allow multiple parameter
2171- improvment of some error messages
2172- bugfix html_image did use removed property $request_use_auto_globals
2173- small performace patch in Smarty class
2174
217513/11/2010
2176- bugfix overloading problem when $smarty->fetch()/display() have been used in plugins
2177 (introduced with 3.0.2)
2178- code cleanup
2179
2180## Smarty 3.0.3 -
2181
218213/11/2010
2183- bugfix on {debug}
2184- reverted location of loadPlugin() to Smarty class
2185- fixed comments in plugins
2186- fixed internal_config (removed unwanted code line)
2187- improvement remove last linebreak from {function} definition
2188
2189## Smarty 3.0.2 -
2190
219112/11/2010
2192- reactivated $error_reporting property handling
2193- fixed typo in compile_continue
2194- fixed security in {fetch} plugin
2195- changed back plugin parameters to two. second is template object
2196 with transparent access to Smarty object
2197- fixed {config_load} scoping form compile time to run time
2198
2199## Smarty 3.0.0 -
2200
2201
2202
220311/11/2010
2204- major update including some API changes
2205
220610/11/2010
2207- observe compile_id also for config files
2208
220909/11/2010
2210-bugfix on complex expressions as start value for {for} tag
2211request_use_auto_globals
221204/11/2010
2213- bugfix do not allow access of dynamic and private object members of assigned objects when
2214 security is enabled.
2215
221601/11/2010
2217- bugfix related to E_NOTICE change. {if empty($foo)} did fail when $foo contained a string
2218
221928/10/2010
2220- bugfix on compiling modifiers within $smarty special vars like {$smarty.post.{$foo|lower}}
2221
222227/10/2010
2223- bugfix default parameter values did not work for template functions included with {include}
2224
222525/10/2010
2226- bugfix for E_NOTICE change, array elements did not work as modifier parameter
2227
222820/10/2010
2229- bugfix for the E_NOTICE change
2230
223119/10/2010
2232- change Smarty does no longer mask out E_NOTICE by default during template processing
2233
223413/10/2010
2235- bugfix removed ambiguity between ternary and stream variable in template syntax
2236- bugfix use caching properties of template instead of smarty object when compiling child {block}
2237- bugfix {*block}...{/block*} did throw an exception in template inheritance
2238- bugfix on template inheritance using nested eval or string resource in {extends} tags
2239- bugfix on output buffer handling in isCached() method
2240
2241## RC4 -
2242
224301/10/2010
2244- added {break} and {continue} tags for flow control of {foreach},{section},{for} and {while} loops
2245- change of 'string' resource. It's no longer evaluated and compiled files are now stored
2246- new 'eval' resource which evaluates a template without saving the compiled file
2247- change in isCached() method to allow multiple calls for the same template
2248
224925/09/2010
2250- bugfix on some compiling modifiers
2251
225224/09/2010
2253- bugfix merge_compiled_includes flag was not restored correctly in {block} tag
2254
225522/09/2010
2256- bugfix on default modifier
2257
225818/09/2010
2259- bugfix untility compileAllConfig() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS
2260- bugfix on templateExists() for extends resource
2261
226217/09/2010
2263- bugfix {$smarty.template} and {$smarty.current_dir} did not compile correctly within {block} tags
2264- bugfix corrected error message on missing template files in extends resource
2265- bugfix untility compileAllTemplates() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS
2266
226716/09/2010
2268- bugfix when a doublequoted modifier parameter did contain Smarty tags and ':'
2269
227015/09/2010
2271- bugfix resolving conflict between '<%'/'%>' as custom Smarty delimiter and ASP tags
2272- use ucfirst for resource name on internal resource class names
2273
227412/09/2010
2275- bugfix for change of 08/09/2010 (final {block} tags in subtemplates did not produce correct results)
2276
227710/09/2010
2278- bugfix for change of 08/09/2010 (final {block} tags in subtemplates did not produce correct results)
2279
228008/09/2010
2281- allow multiple template inheritance branches starting in subtemplates
2282
228307/09/2010
2284- bugfix {counter} and {cycle} plugin assigned result to smarty variable not in local(template) scope
2285- bugfix templates containing just {strip} {/strip} tags did produce an error
2286
2287
228823/08/2010
2289- fixed E_STRICT errors for uninitialized variables
2290
229122/08/2010
2292- added attribute cache_id to {include} tag
2293
229413/08/2010
2295- remove exception_handler property from Smarty class
2296- added Smarty's own exceptions SmartyException and SmartyCompilerException
2297
229809/08/2010
2299- bugfix on modifier with doublequoted strings as parameter containing embedded tags
2300
230106/08/2010
2302- bugfix when cascading some modifier like |strip|strip_tags modifier
2303
230405/08/2010
2305- added plugin type modifiercompiler to produce compiled modifier code
2306- changed standard modifier plugins to the compiling versions whenever possible
2307- bugfix in nocache sections {include} must not cache the subtemplate
2308
230902/08/2010
2310- bugfix strip did not work correctly in conjunction with comment lines
2311
231231/07/2010
2313- bugfix on nocache attribute at {assign} and {append}
2314
231530/07/2010
2316- bugfix passing scope attributes in doublequoted strings did not work at {include} {assign} and {append}
2317
231825/07/2010
2319- another bugfix of change from 23/07/2010 when compiling modifier
2320
232124/07/2010
2322- bugfix of change from 23/07/2010 when compiling modifier
2323
232423/07/2010
2325- changed execution order. A variable filter does now run before modifiers on output of variables
2326- bugfix use always { and } as delimiter for debug.tpl
2327
2328
232922/07/2010
2330- bugfix in templateExists() method
2331
233220/07/2010
2333- fixed handling of { strip } tag with whitespaces
2334
233515/07/2010
2336- bufix {$smarty.template} does include now the relative path, not just filename
2337
2338## RC3 -
2339
2340
2341
2342
234315/07/2010
2344- make the date_format modifier work also on objects of the DateTime class
2345- implementation of parsetrees in the parser to close security holes and remove unwanted empty line in HTML output
2346
234708/07/2010
2348- bugfix on assigning multidimensional arrays within templates
2349- corrected bugfix for truncate modifier
2350
235107/07/2010
2352- bugfix the truncate modifier needs to check if the string is utf-8 encoded or not
2353- bugfix support of script files relative to trusted_dir
2354
235506/07/2010
2356- create exception on recursive {extends} calls
2357- fixed reported line number at "unexpected closing tag " exception
2358- bugfix on escape:'mail' modifier
2359- drop exception if 'item' variable is equal 'from' variable in {foreach} tag
2360
236101/07/2010
2362- removed call_user_func_array calls for optimization of compiled code when using registered modifiers and plugins
2363
236425/06/2010
2365- bugfix escaping " when block tags are used within doublequoted strings
2366
236724/06/2010
2368- replace internal get_time() calls with standard PHP5 microtime(true) calls in Smarty_Internal_Utility
2369- added $smarty->register->templateClass() and $smarty->unregister->templateClass() methods for supporting static classes with namespace
2370
2371
237222/06/2010
2373- allow spaces between typecast and value in template syntax
2374- bugfix get correct count of traversables in {foreach} tag
2375
237621/06/2010
2377- removed use of PHP shortags SMARTY_PHP_PASSTHRU mode
2378- improved speed of cache->clear() when a compile_id was specified and use_sub_dirs is true
2379
238020/06/2010
2381- replace internal get_time() calls with standard PHP5 microtime(true) calls
2382- closed security hole when php.ini asp_tags = on
2383
238418/06/2010
2385- added __toString method to the Smarty_Variable class
2386
2387
238814/06/2010
2389- make handling of Smarty comments followed by newline BC to Smarty2
2390
2391
2392## RC2 -
2393
2394
2395
239613/06/2010
2397- bugfix Smarty3 did not handle hexadecimals like 0x0F as numerical value
2398- bugifx Smarty3 did not accept numerical constants like .1 or 2. (without a leading or trailing digit)
2399
240011/06/2010
2401- bugfix the lexer did fail on larger {literal} ... {/literal} sections
2402
240303/06/2010
2404- bugfix on calling template functions like Smarty tags
2405
240601/06/2010
2407- bugfix on template functions used with template inheritance
2408- removed /* vim: set expandtab: */ comments
2409- bugfix of auto literal problem introduce with fix of 31/05/2010
2410
241131/05/2010
2412- bugfix the parser did not allow some smarty variables with special name like $for, $if, $else and others.
2413
241427/05/2010
2415- bugfix on object chaining using variable properties
2416- make scope of {counter} and {cycle} tags again global as in Smarty2
2417
241826/05/2010
2419- bugfix removed decrepated register_resource call in smarty_internal_template.php
2420
242125/05/2010
2422- rewrite of template function handling to improve speed
2423- bugfix on file dependency when merge_compiled_includes = true
2424
2425
242616/05/2010
2427- bugfix when passing parameter with numeric name like {foo 1='bar' 2='blar'}
2428
242914/05/2010
2430- bugfix compile new config files if compile_check and force_compile = false
2431- added variable static classes names to template syntax
2432
243311/05/2010
2434- bugfix make sure that the cache resource is loaded in all conditions when template methods getCached... are called externally
2435- reverted the change 0f 30/04/2010. With the exception of forward references template functions can be again called by a standard tag.
2436
243710/05/2010
2438- bugfix on {foreach} and {for} optimizations of 27/04/2010
2439
244009/05/2010
2441- update of template and config file parser because of minor parser generator bugs
2442
244307/05/2010
2444- bugfix on {insert}
2445
244606/05/2010
2447- bugfix when merging compiled templates and objects are passed as parameter of the {include} tag
2448
244905/05/2010
2450- bugfix on {insert} to cache parameter
2451- implementation of $smarty->default_modifiers as in Smarty2
2452- bugfix on getTemplateVars method
2453
245401/05/2010
2455- bugfix on handling of variable method names at object chaning
2456
245730/04/2010
2458- bugfix when comparing timestamps in sysplugins/smarty_internal_config.php
2459- work around of a substr_compare bug in older PHP5 versions
2460- bugfix on template inheritance for tag names starting with "block"
2461- bugfix on {function} tag with name attribute in doublequoted strings
2462- fix to make calling of template functions unambiguously by madatory usage of the {call} tag
2463
2464## RC1 -
2465
246627/04/2010
2467- change default of $debugging_ctrl to 'NONE'
2468- optimization of compiled code of {foreach} and {for} loops
2469- change of compiler for config variables
2470
247127/04/2010
2472- bugfix in $smarty->cache->clear() method. (do not cache template object)
2473
2474
247517/04/2010
2476- security fix in {math} plugin
2477
2478
247912/04/2010
2480- bugfix in smarty_internal_templatecompilerbase (overloaded property)
2481- removed parser restrictions in using true,false and null as ID
2482
248307/04/2010
2484- bugfix typo in smarty_internal_templatecompilerbase
2485
248631/03/2010
2487- compile locking by touching old compiled files to avoid concurrent compilations
2488
248929/03/2010
2490- bugfix allow array definitions as modifier parameter
2491- bugfix observe compile_check property when loading config files
2492- added the template object as third filter parameter
2493
249425/03/2010
2495- change of utility->compileAllTemplates() log messages
2496- bugfix on nocache code in {function} tags
2497- new method utility->compileAllConfig() to compile all config files
2498
249924/03/2010
2500- bugfix on register->modifier() error messages
2501
250223/03/2010
2503- bugfix on template inheritance when calling multiple child/parent relations
2504- bugfix on caching mode SMARTY_CACHING_LIFETIME_SAVED and cache_lifetime = 0
2505
250622/03/2010
2507- bugfix make directory separator operating system independend in compileAllTemplates()
2508
250921/03/2010
2510- removed unused code in compileAllTemplates()
2511
251219/03/2010
2513- bugfix for multiple {/block} tags on same line
2514
251517/03/2010
2516- bugfix make $smarty->cache->clear() function independent from caching status
2517
251816/03/2010
2519- bugfix on assign attribute at registered template objects
2520- make handling of modifiers on expression BC to Smarty2
2521
252215/03/2010
2523- bugfix on block plugin calls
2524
252511/03/2010
2526- changed parsing of <?php and ?> back to Smarty2 behaviour
2527
252808/03/2010
2529- bugfix on uninitialized properties in smarty_internal_template
2530- bugfix on $smarty->disableSecurity()
2531
253204/03/2010
2533- bugfix allow uppercase chars in registered resource names
2534- bugfix on accessing chained objects of static classes
2535
253601/03/2010
2537- bugfix on nocache code in {block} tags if child template was included by {include}
2538
253927/02/2010
2540- allow block tags inside double quoted string
2541
254226/02/2010
2543- cache modified check implemented
2544- support of access to a class constant from an object (since PHP 5.3)
2545
254624/02/2010
2547- bugfix on expressions in doublequoted string enclosed in backticks
2548- added security property $static_classes for static class security
2549
255018/02/2010
2551- bugfix on parsing Smarty tags inside <?xml ... ?>
2552- bugfix on truncate modifier
2553
255417/02/2010
2555- removed restriction that modifiers did require surrounding parenthesis in some cases
2556- added {$smarty.block.child} special variable for template inheritance
2557
255816/02/2010
2559- bugfix on <?xml ... ?> tags for all php_handling modes
2560- bugfix on parameter of variablefilter.htmlspecialchars.php plugin
2561
256214/02/2010
2563- added missing _plugins property in smarty.class.php
2564- bugfix $smarty.const... inside doublequoted strings and backticks was compiled into wrong PHP code
2565
256612/02/2010
2567- bugfix on nested {block} tags
2568- changed Smarty special variable $smarty.parent to $smarty.block.parent
2569- added support of nested {bock} tags
2570
257110/02/2010
2572- avoid possible notice on $smarty->cache->clear(...), $smarty->clear_cache(....)
2573- allow Smarty tags inside <? ... ?> tags in SMARTY_PHP_QUOTE and SMARTY_PHP_PASSTHRU mode
2574- bugfix at new "for" syntax like {for $x=1 to 10 step 2}
2575
257609/02/2010
2577- added $smarty->_tag_stack for tracing block tag hierarchy
2578
257908/02/2010
2580- bugfix use template fullpath at §smarty->cache->clear(...), $smarty->clear_cache(....)
2581- bugfix of cache filename on extended templates when force_compile=true
2582
258307/02/2010
2584- bugfix on changes of 05/02/2010
2585- preserve line endings type form template source
2586- API changes (see README file)
2587
258805/02/2010
2589- bugfix on modifier and block plugins with same name
2590
259102/02/2010
2592- retaining newlines at registered functions and function plugins
2593
259401/25/2010
2595- bugfix cache resource was not loaded when caching was globally off but enabled at a template object
2596- added test that $_SERVER['SCRIPT_NAME'] does exist in Smarty.class.php
2597
259801/22/2010
2599- new method $smarty->createData([$parent]) for creating a data object (required for bugfixes below)
2600- bugfix config_load() method now works also on a data object
2601- bugfix get_config_vars() method now works also on a data and template objects
2602- bugfix clear_config() method now works also on a data and template objects
2603
260401/19/2010
2605- bugfix on plugins if same plugin was called from a nocache section first and later from a cached section
2606
2607
2608###beta 7###
2609
2610
261101/17/2010
2612- bugfix on $smarty.const... in double quoted strings
2613
261401/16/2010
2615- internal change of config file lexer/parser on handling of section names
2616- bugfix on registered objects (format parameter of register_object was not handled correctly)
2617
261801/14/2010
2619- bugfix on backslash within single quoted strings
2620- bugfix allow absolute filepath for config files
2621- bugfix on special Smarty variable $smarty.cookies
2622- revert handling of newline on no output tags like {if...}
2623- allow special characters in config file section names for Smarty2 BC
2624
262501/13/2010
2626- bugfix on {if} tags
2627
262801/12/2010
2629- changed back modifier handling in parser. Some restrictions still apply:
2630 if modifiers are used in side {if...} expression or in mathematical expressions
2631 parentheses must be used.
2632- bugfix the {function..} tag did not accept the name attribute in double quotes
2633- closed possible security hole at <?php ... ?> tags
2634- bugfix of config file parser on large config files
2635
2636
2637###beta 6####
2638
263901/11/2010
2640- added \n to the compiled code of the {if},{else},{elseif},{/if} tags to get output of newlines as expected by the template source
2641- added missing support of insert plugins
2642- added optional nocache attribute to {block} tags in parent template
2643- updated <?php...?> handling supporting now heredocs and newdocs. (thanks to Thue Jnaus Kristensen)
2644
264501/09/2010
2646- bugfix on nocache {block} tags in parent templates
2647
264801/08/2010
2649- bugfix on variable filters. filter/nofilter attributes did not work on output statements
2650
265101/07/2010
2652- bugfix on file dependency at template inheritance
2653- bugfix on nocache code at template inheritance
2654
265501/06/2010
2656- fixed typo in smarty_internal_resource_registered
2657- bugfix for custom delimiter at extends resource and {extends} tag
2658
265901/05/2010
2660- bugfix sha1() calculations at extends resource and some general improvments on sha1() handling
2661
2662
266301/03/2010
2664- internal change on building cache files
2665
266601/02/2010
2667- update cached_timestamp at the template object after cache file is written to avoid possible side effects
2668- use internally always SMARTY_CACHING_LIFETIME_* constants
2669
267001/01/2010
2671- bugfix for obtaining plugins which must be included (related to change of 12/30/2009)
2672- bugfix for {php} tag (trow an exception if allow_php_tag = false)
2673
267412/31/2009
2675- optimization of generated code for doublequoted strings containing variables
2676- rewrite of {function} tag handling
2677 - can now be declared in an external subtemplate
2678 - can contain nocache sections (nocache_hash handling)
2679 - can be called in noccache sections (nocache_hash handling)
2680 - new {call..} tag to call template functions with a variable name {call name=$foo}
2681- fixed nocache_hash handling in merged compiled templates
2682
268312/30/2009
2684- bugfix for plugins defined in the script as smarty_function_foo
2685
268612/29/2009
2687- use sha1() for filepath encoding
2688- updates on nocache_hash handling
2689- internal change on merging some data
2690- fixed cache filename for custom resources
2691
269212/28/2009
2693- update for security fixes
2694- make modifier plugins always trusted
2695- fixed bug loading modifiers in child template at template inheritance
2696
269712/27/2009
2698--- this is a major update with a couple of internal changes ---
2699- new config file lexer/parser (thanks to Thue Jnaus Kristensen)
2700- template lexer/parser fixes for PHP and {literal} handing (thanks to Thue Jnaus Kristensen)
2701- fix on registered plugins with different type but same name
2702- rewrite of plugin handling (optimized execution speed)
2703- closed a security hole regarding PHP code injection into cache files
2704- fixed bug in clear cache handling
2705- Renamed a couple of internal classes
2706- code cleanup for merging compiled templates
2707- couple of runtime optimizations (still not all done)
2708- update of getCachedTimestamp()
2709- fixed bug on modifier plugins at nocache output
2710
271112/19/2009
2712- bugfix on comment lines in config files
2713
271412/17/2009
2715- bugfix of parent/global variable update at included/merged subtemplates
2716- encode final template filepath into filename of compiled and cached files
2717- fixed {strip} handling in auto literals
2718
271912/16/2009
2720- update of changelog
2721- added {include file='foo.tpl' inline} inline option to merge compiled code of subtemplate into the calling template
2722
272312/14/2009
2724- fixed sideefect of last modification (objects in array index did not work anymore)
2725
272612/13/2009
2727- allow boolean negation ("!") as operator on variables outside {if} tag
2728
272912/12/2009
2730- bugfix on single quotes inside {function} tag
2731- fix short append/prepend attributes in {block} tags
2732
273312/11/2009
2734- bugfix on clear_compiled_tpl (avoid possible warning)
2735
273612/10/2009
2737- bugfix on {function} tags and template inheritance
2738
273912/05/2009
2740- fixed problem when a cached file was fetched several times
2741- removed unneeded lexer code
2742
274312/04/2009
2744- added max attribute to for loop
2745- added security mode allow_super_globals
2746
274712/03/2009
2748- template inheritance: child templates can now call functions defined by the {function} tag in the parent template
2749- added {for $foo = 1 to 5 step 2} syntax
2750- bugfix for {$foo.$x.$y.$z}
2751
275212/01/2009
2753- fixed parsing of names of special formated tags like if,elseif,while,for,foreach
2754- removed direct access to constants in templates because of some syntax problems
2755- removed cache resource plugin for mysql from the distribution
2756- replaced most hard errors (exceptions) by softerrors(trigger_error) in plugins
2757- use $template_class property for template class name when compiling {include},{eval} and {extends} tags
2758
275911/30/2009
2760- map 'true' to SMARTY_CACHING_LIFETIME_CURRENT for the $smarty->caching parameter
2761- allow {function} tags within {block} tags
2762
276311/28/2009
2764- ignore compile_id at debug template
2765- added direct access to constants in templates
2766- some lexer/parser optimizations
2767
276811/27/2009
2769- added cache resource MYSQL plugin
2770
277111/26/2009
2772- bugfix on nested doublequoted strings
2773- correct line number on unknown tag error message
2774- changed {include} compiled code
2775- fix on checking dynamic varibales with error_unassigned = true
2776
277711/25/2009
2778- allow the following writing for boolean: true, TRUE, True, false, FALSE, False
2779- {strip} tag functionality rewritten
2780
278111/24/2009
2782- bugfix for $smarty->config_overwrite = false
2783
278411/23/2009
2785- suppress warnings on unlink caused by race conditions
2786- correct line number on unknown tag error message
2787
2788------- beta 5
278911/23/2009
2790- fixed configfile parser for text starting with a numeric char
2791- the default_template_handler_func may now return a filepath to a template source
2792
279311/20/2009
2794- bugfix for empty config files
2795- convert timestamps of registered resources to integer
2796
279711/19/2009
2798- compiled templates are no longer touched with the filemtime of template source
2799
280011/18/2009
2801- allow integer as attribute name in plugin calls
2802
2803------- beta 4
280411/18/2009
2805- observe umask settings when setting file permissions
2806- avoide unneeded cache file creation for subtemplates which did occur in some situations
2807- make $smarty->_current_file available during compilation for Smarty2 BC
2808
280911/17/2009
2810- sanitize compile_id and cache_id (replace illegal chars with _)
2811- use _dir_perms and _file_perms properties at file creation
2812- new constant SMARTY_RESOURCE_DATE_FORMAT (default '%b %e, %Y') which is used as default format in modifier date_format
2813- added {foreach $array as $key=>$value} syntax
2814- renamed extend tag and resource to extends: {extends file='foo.tol'} , $smarty->display('extends:foo.tpl|bar.tpl);
2815- bugfix cycle plugin
2816
281711/15/2009
2818- lexer/parser optimizations on quoted strings
2819
282011/14/2009
2821- bugfix on merging compiled templates when source files got removed or renamed.
2822- bugfix modifiers on registered object tags
2823- fixed locaion where outputfilters are running
2824- fixed config file definitions at EOF
2825- fix on merging compiled templates with nocache sections in nocache includes
2826- parser could run into a PHP error on wrong file attribute
2827
282811/12/2009
2829- fixed variable filenames in {include_php} and {insert}
2830- added scope to Smarty variables in the {block} tag compiler
2831- fix on nocache code in child {block} tags
2832
283311/11/2009
2834- fixed {foreachelse}, {forelse}, {sectionelse} compiled code at nocache variables
2835- removed checking for reserved variables
2836- changed debugging handling
2837
283811/10/2009
2839- fixed preg_qoute on delimiters
2840
284111/09/2009
2842- lexer/parser bugfix
2843- new SMARTY_SPL_AUTOLOAD constant to control the autoloader option
2844- bugfix for {function} block tags in included templates
2845
284611/08/2009
2847- fixed alphanumeric array index
2848- bugfix on complex double quoted strings
2849
285011/05/2009
2851- config_load method can now be called on data and template objects
2852
285311/04/2009
2854- added typecasting support for template variables
2855- bugfix on complex indexed special Smarty variables
2856
285711/03/2009
2858- fixed parser error on objects with special smarty vars
2859- fixed file dependency for {incude} inside {block} tag
2860- fixed not compiling on non existing compiled templates when compile_check = false
2861- renamed function names of autoloaded Smarty methods to Smarty_Method_....
2862- new security_class property (default is Smarty_Security)
2863
286411/02/2009
2865- added neq,lte,gte,mod as aliases to if conditions
2866- throw exception on illegal Smarty() constructor calls
2867
286810/31/2009
2869- change of filenames in sysplugins folder for internal spl_autoload function
2870- lexer/parser changed for increased compilation speed
2871
287210/27/2009
2873- fixed missing quotes in include_php.php
2874
287510/27/2009
2876- fixed typo in method.register_resource
2877- pass {} through as literal
2878
287910/26/2009
2880- merge only compiled subtemplates into the compiled code of the main template
2881
288210/24/2009
2883- fixed nocache vars at internal block tags
2884- fixed merging of recursive includes
2885
288610/23/2009
2887- fixed nocache var problem
2888
288910/22/2009
2890- fix trimwhitespace outputfilter parameter
2891
289210/21/2009
2893- added {$foo++}{$foo--} syntax
2894- buxfix changed PHP "if (..):" to "if (..){" because of possible bad code when concenating PHP tags
2895- autoload Smarty internal classes
2896- fixed file dependency for config files
2897- some code optimizations
2898- fixed function definitions on some autoloaded methods
2899- fixed nocache variable inside if condition of {if} tag
2900
290110/20/2009
2902- check at compile time for variable filter to improve rendering speed if no filter is used
2903- fixed bug at combination of {elseif} tag and {...} in double quoted strings of static class parameter
2904
290510/19/2009
2906- fixed compiled template merging on variable double quoted strings as name
2907- fixed bug in caching mode 2 and cache_lifetime -1
2908- fixed modifier support on block tags
2909
291010/17/2009
2911- remove ?>\n<?php and ?><?php sequences from compiled template
2912
291310/15/2009
2914- buxfix on assigning array elements inside templates
2915- parser bugfix on array access
2916
291710/15/2009
2918- allow bit operator '&' inside {if} tag
2919- implementation of ternary operator
2920
292110/13/2009
2922- do not recompile evaluated templates if reused just with other data
2923- recompile config files when config properties did change
2924- some lexer/parser otimizations
2925
292610/11/2009
2927- allow {block} tags inside included templates
2928- bugfix for resource plugins in Smarty2 format
2929- some optimizations of internal.template.php
2930
293110/11/2009
2932- fixed bug when template with same name is used with different data objects
2933- fixed bug with double quoted name attribute at {insert} tag
2934- reenabled assign_by_ref and append_by_ref methods
2935
293610/07/2009
2937- removed block nesting checks for {capture}
2938
293910/05/2009
2940- added support of "isinstance" to {if} tag
2941
294210/03/2009
2943- internal changes to improve performance
2944- fix registering of filters for classes
2945
294610/01/2009
2947- removed default timezone setting
2948- reactivated PHP resource for simple PHP templates. Must set allow_php_templates = true to enable
2949- {PHP} tag can be enabled by allow_php_tag = true
2950
295109/30/2009
2952- fixed handling template_exits method for all resource types
2953- bugfix for other cache resources than file
2954- the methods assign_by_ref is now wrapped to assign, append_by_ref to append
2955- allow arrays of variables pass in display, fetch and createTemplate calls
2956 $data = array('foo'=>'bar','foo2'=>'blar');
2957 $smarty->display('my.tpl',$data);
2958
295909/29/2009
2960- changed {php} tag handling
2961- removed support of Smarty::instance()
2962- removed support of PHP resource type
2963- improved execution speed of {foreach} tags
2964- fixed bug in {section} tag
2965
296609/23/2009
2967- improvements and bugfix on {include} tag handling
2968NOTICE: existing compiled template and cache files must be deleted
2969
297009/19/2009
2971- replace internal "eval()" calls by "include" during rendering process
2972- speed improvment for templates which have included subtemplates
2973 the compiled code of included templates is merged into the compiled code of the parent template
2974- added logical operator "xor" for {if} tag
2975- changed parameter ordering for Smarty2 BC
2976 fetch($template, $cache_id = null, $compile_id = null, $parent = null)
2977 display($template, $cache_id = null, $compile_id = null, $parent = null)
2978 createTemplate($template, $cache_id = null, $compile_id = null, $parent = null)
2979- property resource_char_set is now replaced by constant SMARTY_RESOURCE_CHAR_SET
2980- fixed handling of classes in registered blocks
2981- speed improvement of lexer on text sections
2982
298309/01/2009
2984- dropped nl2br as plugin
2985- added '<>' as comparission operator in {if} tags
2986- cached caching_lifetime property to cache_liftime for backward compatibility with Smarty2.
2987 {include} optional attribute is also now cache_lifetime
2988- fixed trigger_error method (moved into Smarty class)
2989- version is now Beta!!!
2990
2991
299208/30/2009
2993- some speed optimizations on loading internal plugins
2994
2995
299608/29/2009
2997- implemented caching of registered Resources
2998- new property 'auto_literal'. if true(default) '{ ' and ' }' interpreted as literal, not as Smarty delimiter
2999
3000
300108/28/2009
3002- Fix on line breaks inside {if} tags
3003
300408/26/2009
3005- implemented registered resources as in Smarty2. NOTE: caching does not work yet
3006- new property 'force_cache'. if true it forces the creation of a new cache file
3007- fixed modifiers on arrays
3008- some speed optimization on loading internal classes
3009
3010
301108/24/2009
3012- fixed typo in lexer definition for '!==' operator
3013- bugfix - the ouput of plugins was not cached
3014- added global variable SCRIPT_NAME
3015
301608/21/2009
3017- fixed problems whitespace in conjuction with custom delimiters
3018- Smarty tags can now be used as value anywhere
3019
302008/18/2009
3021- definition of template class name moded in internal.templatebase.php
3022- whitespace parser changes
3023
302408/12/2009
3025- fixed parser problems
3026
302708/11/2009
3028- fixed parser problems with custom delimiter
3029
303008/10/2009
3031- update of mb support in plugins
3032
3033
303408/09/2009
3035- fixed problems with doublequoted strings at name attribute of {block} tag
3036- bugfix at scope attribute of {append} tag
3037
303808/08/2009
3039- removed all internal calls of Smarty::instance()
3040- fixed code in double quoted strings
3041
304208/05/2009
3043- bugfix mb_string support
3044- bugfix of \n.\t etc in double quoted strings
3045
304607/29/2009
3047- added syntax for variable config vars like #$foo#
3048
304907/28/2009
3050- fixed parsing of $smarty.session vars containing objects
3051
305207/22/2009
3053- fix of "$" handling in double quoted strings
3054
305507/21/2009
3056- fix that {$smarty.current_dir} return correct value within {block} tags.
3057
305807/20/2009
3059- drop error message on unmatched {block} {/block} pairs
3060
306107/01/2009
3062- fixed smarty_function_html_options call in plugin function.html_select_date.php (missing ,)
3063
306406/24/2009
3065- fixed smarty_function_html_options call in plugin function.html_select_date.php
3066
306706/22/2009
3068- fix on \n and spaces inside smarty tags
3069- removed request_use_auto_globals propert as it is no longer needed because Smarty 3 will always run under PHP 5
3070
3071
307206/18/2009
3073- fixed compilation of block plugins when caching enabled
3074- added $smarty.current_dir which returns the current working directory
3075
307606/14/2009
3077- fixed array access on super globals
3078- allow smarty tags within xml tags
3079
308006/13/2009
3081- bugfix at extend resource: create unique files for compiled template and cache for each combination of template files
3082- update extend resource to handle appen and prepend block attributes
3083- instantiate classes of plugins instead of calling them static
3084
308506/03/2009
3086- fixed repeat at block plugins
3087
308805/25/2009
3089- fixed problem with caching of compiler plugins
3090
309105/14/2009
3092- fixed directory separator handling
3093
309405/09/2009
3095- syntax change for stream variables
3096- fixed bug when using absolute template filepath and caching
3097
309805/08/2009
3099- fixed bug of {nocache} tag in included templates
3100
310105/06/2009
3102- allow that plugins_dir folder names can end without directory separator
3103
310405/05/2009
3105- fixed E_STRICT incompabilities
3106- {function} tag bug fix
3107- security policy definitions have been moved from plugins folder to file Security.class.php in libs folder
3108- added allow_super_global configuration to security
3109
311004/30/2009
3111- functions defined with the {function} tag now always have global scope
3112
311304/29/2009
3114- fixed problem with directory setter methods
3115- allow that cache_dir can end without directory separator
3116
311704/28/2009
3118- the {function} tag can no longer overwrite standard smarty tags
3119- inherit functions defined by the {fuction} tag into subtemplates
3120- added {while <statement>} sytax to while tag
3121
312204/26/2009
3123- added trusted stream checking to security
3124- internal changes at file dependency check for caching
3125
312604/24/2009
3127- changed name of {template} tag to {function}
3128- added new {template} tag
3129
313004/23/2009
3131- fixed access of special smarty variables from included template
3132
313304/22/2009
3134- unified template stream syntax with standard Smarty resource syntax $smarty->display('mystream:mytemplate')
3135
313604/21/2009
3137- change of new style syntax for forach. Now: {foreach $array as $var} like in PHP
3138
313904/20/2009
3140- fixed "$foo.bar ..." variable replacement in double quoted strings
3141- fixed error in {include} tag with variable file attribute
3142
314304/18/2009
3144- added stream resources ($smarty->display('mystream://mytemplate'))
3145- added stream variables {$mystream:myvar}
3146
314704/14/2009
3148- fixed compile_id handling on {include} tags
3149- fixed append/prepend attributes in {block} tag
3150- added {if 'expression' is in 'array'} syntax
3151- use crc32 as hash for compiled config files.
3152
315304/13/2009
3154- fixed scope problem with parent variables when appending variables within templates.
3155- fixed code for {block} without childs (possible sources for notice errors removed)
3156
315704/12/2009
3158- added append and prepend attribute to {block} tag
3159
316004/11/2009
3161- fixed variables in 'file' attribute of {extend} tag
3162- fixed problems in modifiers (if mb string functions not present)
3163
316404/10/2009
3165- check if mb string functions available otherwise fallback to normal string functions
3166- added global variable scope SMARTY_GLOBAL_SCOPE
3167- enable 'variable' filter by default
3168- fixed {$smarty.block.parent.foo}
3169- implementation of a 'variable' filter as replacement for default modifier
3170
317104/09/2009
3172- fixed execution of filters defined by classes
3173- compile the always the content of {block} tags to make shure that the filters are running over it
3174- syntax corrections on variable object property
3175- syntax corrections on array access in dot syntax
3176
317704/08/2009
3178- allow variable object property
3179
318004/07/2009
3181- changed variable scopes to SMARTY_LOCAL_SCOPE, SMARTY_PARENT_SCOPE, SMARTY_ROOT_SCOPE to avoid possible conflicts with user constants
3182- Smarty variable global attribute replaced with scope attribute
3183
318404/06/2009
3185- variable scopes LOCAL_SCOPE, PARENT_SCOPE, ROOT_SCOPE
3186- more getter/setter methods
3187
318804/05/2009
3189- replaced new array looping syntax {for $foo in $array} with {foreach $foo in $array} to avoid confusion
3190- added append array for short form of assign {$foo[]='bar'} and allow assignments to nested arrays {$foo['bla']['blue']='bar'}
3191
319204/04/2009
3193- make output of template default handlers cachable and save compiled source
3194- some fixes on yesterdays update
3195
319604/03/2006
3197- added registerDefaultTemplateHandler method and functionallity
3198- added registerDefaultPluginHandler method and functionallity
3199- added {append} tag to extend Smarty array variabled
3200
320104/02/2009
3202- added setter/getter methods
3203- added $foo@first and $foo@last properties at {for} tag
3204- added $set_timezone (true/false) property to setup optionally the default time zone
3205
320603/31/2009
3207- bugfix smarty.class and internal.security_handler
3208- added compile_check configuration
3209- added setter/getter methods
3210
321103/30/2009
3212- added all major setter/getter methods
3213
321403/28/2009
3215- {block} tags can be nested now
3216- md5 hash function replace with crc32 for speed optimization
3217- file order for exted resource inverted
3218- clear_compiled_tpl and clear_cache_all will not touch .svn folder any longer
3219
322003/27/2009
3221- added extend resource
3222
322303/26/2009
3224- fixed parser not to create error on `word` in double quoted strings
3225- allow PHP array(...)
3226- implemented $smarty.block.name.parent to access parent block content
3227- fixed smarty.class
3228
3229
323003/23/2009
3231- fixed {foreachelse} and {forelse} tags
3232
323303/22/2009
3234- fixed possible sources for notice errors
3235- rearrange SVN into distribution and development folders
3236
323703/21/2009
3238- fixed exceptions in function plugins
3239- fixed notice error in Smarty.class.php
3240- allow chained objects to span multiple lines
3241- fixed error in modifiers
3242
324303/20/2009
3244- moved /plugins folder into /libs folder
3245- added noprint modifier
3246- autoappend a directory separator if the xxxxx_dir definition have no trailing one
3247
324803/19/2009
3249- allow array definition as modifier parameter
3250- changed modifier to use multi byte string funktions.
3251
325203/17/2009
3253- bugfix
3254
325503/15/2009
3256- added {include_php} tag for BC
3257- removed @ error suppression
3258- bugfix fetch did always repeat output of first call when calling same template several times
3259- PHPunit tests extended
3260
326103/13/2009
3262- changed block syntax to be Smarty like {block:titel} -> {block name=titel}
3263- compiling of {block} and {extend} tags rewriten for better performance
3264- added special Smarty variable block ($smarty.block.foo} returns the parent definition of block foo
3265- optimization of {block} tag compiled code.
3266- fixed problem with escaped double quotes in double quoted strings
3267
326803/12/2009
3269- added support of template inheritance by {extend } and {block } tags.
3270- bugfix comments within literals
3271- added scope attribuie to {include} tag
3272
327303/10/2009
3274- couple of bugfixes and improvements
3275- PHPunit tests extended
3276
327703/09/2009
3278- added support for global template vars. {assign_global...} $smarty->assign_global(...)
3279- added direct_access_security
3280- PHPunit tests extended
3281- added missing {if} tag conditions like "is div by" etc.
3282
328303/08/2009
3284- splitted up the Compiler class to make it easier to use a coustom compiler
3285- made default plugins_dir relative to Smarty root and not current working directory
3286- some changes to make the lexer parser better configurable
3287- implemented {section} tag for Smarty2 BC
3288
328903/07/2009
3290- fixed problem with comment tags
3291- fixed problem with #xxxx in double quoted string
3292- new {while} tag implemented
3293- made lexer and paser class configurable as $smarty property
3294- Smarty method get_template_vars implemented
3295- Smarty method get_registered_object implemented
3296- Smarty method trigger_error implemented
3297- PHPunit tests extended
3298
329903/06/2009
3300- final changes on config variable handling
3301- parser change - unquoted strings will by be converted into single quoted strings
3302- PHPunit tests extended
3303- some code cleanup
3304- fixed problem on catenate strings with expression
3305- update of count_words modifier
3306- bugfix on comment tags
3307
3308
330903/05/2009
3310- bugfix on <?xml...> tag with caching enabled
3311- changes on exception handling (by Monte)
3312
331303/04/2009
3314- added support for config variables
3315- bugfix on <?xml...> tag
3316
331703/02/2009
3318- fixed unqouted strings within modifier parameter
3319- bugfix parsing of mofifier parameter
3320
332103/01/2009
3322- modifier chaining works now as in Smarty2
3323
332402/28/2009
3325- changed handling of unqouted strings
3326
332702/26/2009
3328- bugfix
3329- changed $smarty.capture.foo to be global for Smarty2 BC.
3330
333102/24/2009
3332- bugfix {php} {/php} tags for backward compatibility
3333- bugfix for expressions on arrays
3334- fixed usage of "null" value
3335- added $smarty.foreach.foo.first and $smarty.foreach.foo.last
3336
333702/06/2009
3338- bugfix for request variables without index for example $smarty.get
3339- experimental solution for variable functions in static class
3340
334102/05/2009
3342- update of popup plugin
3343- added config variables to template parser (load config functions still missing)
3344- parser bugfix for empty quoted strings
3345
334602/03/2009
3347- allow array of objects as static class variabales.
3348- use htmlentities at source output at template errors.
3349
335002/02/2009
3351- changed search order on modifiers to look at plugins folder first
3352- parser bug fix for modifier on array elements $foo.bar|modifier
3353- parser bug fix on single quoted srings
3354- internal: splitted up compiler plugin files
3355
335602/01/2009
3357- allow method chaining on static classes
3358- special Smarty variables $smarty.... implemented
3359- added {PHP} {/PHP} tags for backward compatibility
3360
336101/31/2009
3362- added {math} plugin for Smarty2 BC
3363- added template_exists method
3364- changed Smarty3 method enable_security() to enableSecurity() to follow camelCase standards
3365
336601/30/2009
3367- bugfix in single quoted strings
3368- changed syntax for variable property access from $foo:property to $foo@property because of ambiguous syntax at modifiers
3369
337001/29/2009
3371- syntax for array definition changed from (1,2,3) to [1,2,3] to remove ambiguous syntax
3372- allow {for $foo in [1,2,3]} syntax
3373- bugfix in double quoted strings
3374- allow <?xml...?> tags in template even if short_tags are enabled
3375
337601/28/2009
3377- fixed '!==' if condition.
3378
337901/28/2009
3380- added support of {strip} {/strip} tag.
3381
338201/27/2009
3383- bug fix on backticks in double quoted strings at objects
3384
338501/25/2009
3386- Smarty2 modfiers added to SVN
3387
338801/25/2009
3389- bugfix allow arrays at object properties in Smarty syntax
3390- the template object is now passed as additional parameter at plugin calls
3391- clear_compiled_tpl method completed
3392
339301/20/2009
3394- access to class constants implemented ( class::CONSTANT )
3395- access to static class variables implemented ( class::$variable )
3396- call of static class methods implemented ( class::method() )
3397
339801/16/2009
3399- reallow leading _ in variable names {$_var}
3400- allow array of objects {$array.index->method()} syntax
3401- finished work on clear_cache and clear_cache_all methods
3402
340301/11/2009
3404- added support of {literal} tag
3405- added support of {ldelim} and {rdelim} tags
3406- make code compatible to run with E_STRICT error setting
3407
340801/08/2009
3409- moved clear_assign and clear_all_assign to internal.templatebase.php
3410- added assign_by_ref, append and append_by_ref methods
3411
341201/02/2009
3413- added load_filter method
3414- fished work on filter handling
3415- optimization of plugin loading
3416
341712/30/2008
3418- added compiler support of registered object
3419- added backtick support in doubled quoted strings for backward compatibility
3420- some minor bug fixes and improvments
3421
342212/23/2008
3423- fixed problem of not working "not" operator in if-expressions
3424- added handling of compiler function plugins
3425- finished work on (un)register_compiler_function method
3426- finished work on (un)register_modifier method
3427- plugin handling from plugins folder changed for modifier plugins
3428 deleted - internal.modifier.php
3429- added modifier chaining to parser
3430
343112/17/2008
3432- finished (un)register_function method
3433- finished (un)register_block method
3434- added security checking for PHP functions in PHP templates
3435- plugin handling from plugins folder rewritten
3436 new - internal.plugin_handler.php
3437 deleted - internal.block.php
3438 deleted - internal.function.php
3439- removed plugin checking from security handler
3440
344112/16/2008
3442
3443- new start of this change_log file
3444