Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 148 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

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