forked from alexeyrybak/blitz
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
644 lines (563 loc) · 40.8 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
===================================================================================================
0.9.1 version 25 june 2015
===================================================================================================
- FIX: added predefined constant $_i - loop identifier, same as $_num, but starts with 0.
- FIX: "native" if, also fixes some logical errors (thanks to Nicolas Van Eenaeme)
- FIX: arginfo added and a couple of other minor fixes (thanks to Anton "tony2001" Dovgal)
- FIX: zephir integration fix (plain blitz::__construct declaration)
===================================================================================================
0.8.18 version 5 mar 2015
===================================================================================================
- FIX: "not" operand (!) works incorrectly with strings
===================================================================================================
0.8.17 version 24 feb 2015
===================================================================================================
- FIX: several bugfixes related to condition parsing (parse errors for old style tags,
NULL objects), thanks to Nicolas Van Eenaeme
===================================================================================================
0.8.16 version 12 feb 2015
===================================================================================================
- CHANGE: big rework in condition parsing, added complex conditions support (many conditions,
parentheses, new ! operator - see examples in tests/complex_conditions.phpt),
thanks to Nicolas Van Eenaeme
===================================================================================================
0.8.15 version 10 feb 2015. In loving memory of Clifford Lee Burton.
===================================================================================================
- FIX: a couple of memleaks and other minor fixes, thanks to Anton "tony2001" Dovgal
- ADD: BEGIN statement now supports objects (see begin_object.phpt), thanks to Maurus Cuelenaere
===================================================================================================
0.8.14 version 23 oct 2014
===================================================================================================
- FIX: _parent._predefined_var syntax was fixed (bug #329), thanks to Anton "tony2001" Dovgal
- FIX: _parent._parent issues inside IF/UNLESS nodes were fixed, thanks to Anton "tony2001" Dovgal
- FIX: minor compilation issues were fixed, thanks to Alex Sladkov
===================================================================================================
0.8.13 version 29 aug 2014
===================================================================================================
- FIX: bugs in expressions fixed, string varibles comparison didn't work properly (bug#327)
- ADD: get_tokens() function was added (thanks to Dmitry Saprykin). This function returns template
structure with lots of details in just one big array, and should be easier to use than old
get_struct/dump_struct functions.
===================================================================================================
0.8.12 version 25 aug 2014
===================================================================================================
- FIX: $_top and $_parent magic variables work in callbacks
===================================================================================================
0.8.11 version 7 aug 2014. С днём Спецсвязи ФСО!
===================================================================================================
- FIX: critical memory corruption fix. Incorrect array looping in 0.8.10 could lead to crazy
behaviour: undefined constants that were previously defined, disappearing values that were set
before et cetera. Thanks to Antony "tony2001" Dovgal and the Badoo Features Team.
===================================================================================================
0.8.10 version 4 july 2014. С днём незави... не, с прошедшим днём ГИБДД!
===================================================================================================
- ADD: new magic variables $_top and $_parent, referencing parent and
first-in-the-list iteration parameters, thanks to Nicolas Van Eenaeme
- FIX: namespace separators work in callbacks properly {{ [\]Space\Class::bla() }}
===================================================================================================
0.8.9 version 28 may 2014. С днём пограничника!
===================================================================================================
- FIX: looping through a list of objects, accessing their attributes; thanks to Nicolas Van Eenaeme,
patches were taken from https://gist.github.com/poison/27e1ffb71fc682ee4ec4)
- FIX: objects were always "empty" in expressions, now it's empty only when no attributes (bug#321);
thanks to Nicolas Van Eenaeme
- FIX: deep nesting loop with overlapping wasn't working properly (bug#320)
- ADD: experimental magic variable $_ to access current iteration parameters;
thanks to Kostya "fixxxer" Baryshnikov (bug#183)
===================================================================================================
0.8.8 version 25 march 2014
===================================================================================================
- FIX: fix glorious crash for very short template body lengths (smaller than any tag length)
===================================================================================================
0.8.7 version 12 june 2013
===================================================================================================
- FIX: null works properly in expressions (bug#316)
- FIX: large pieces of commented code work fine with no "lexem is too long" error
- CHANGE: alternative close tag was changed from " -->" to "-->" (first space was removed)
===================================================================================================
0.8.6 version 22 nov 2012
===================================================================================================
- ADD: template syntax warning when begin/if/unless wasn't closed with end
===================================================================================================
0.8.5 version 7 nov 2012. Пролетарии всех стран, соединяйтесь! ;)
===================================================================================================
- FIX: increased lookup scope stack size, fixed crash when iteration set is too high,
added a special warning for deep iteration sets.
===================================================================================================
0.8.4 version 19 oct 2012
===================================================================================================
- FIX: fix escaping for non-UTF charsets. No we rely on default_charset ini-variable.
===================================================================================================
0.8.3 version 10 oct 2012. Всех со всемирным днем психического здоровья!
===================================================================================================
- ADD: cleanGlobals function was added, thanx to fixxxer
- ADD: new variable filter nl2br was added. With this filter variable is always pre-escaped.
===================================================================================================
0.8.2 version 18 june 2012.
===================================================================================================
- FIX: fixed parsing error with comments enabled and long custom comments tags (bug#310)
===================================================================================================
0.8.1 version 4 june 2012. Finally stable!
===================================================================================================
- FIX: parsing error fixed (incorrect code fragment breaks next correct one)
- FIX: array-to-string conversion for variables doesn't add "Array" string to the output and shows
human readable warning
===================================================================================================
0.7.2-devel
===================================================================================================
- CHANGE: return last error with new getError() method
- CHANGE: load returns FALSE if error occured
- CHANGE: throw exceptions with warnings when blitz.throw_exceptions = 1 (0 by default)
- FIX: parsing error fixed (usually affected closing tags with spaces before it)
- FIX: global warnings clean-up
===================================================================================================
0.7.1.16-devel 9 may 2012. С праздником, товарищи! Бей фашистскую сволочь.
===================================================================================================
This is very first release with HTML output escaping. Please note that internal html extension was
improved in 5.4.0 and some features don't work in prior versions - mainly, substitution of
disallowed unicode chars. Thus some tests should fail if you have PHP version < 5.4.0.
- CHANGE: basic filters support was added: {{ $var | filter }}, only "raw" and "escape"
filters are supported and only for variables [#70]
- CHANGE: automatic output filtering is enabled with blitz.auto_escape = 1, 0 by default) [#70]
- CHANGE: blitz.charset global was removed (engine should use default PHP charset) [#70]
- FIX: incorrect $-prefixed variables throw errors [bug#307]
===================================================================================================
0.7.1.15-devel 21 mar 2012. С днём весеннего равноденствия!
===================================================================================================
- FIX: improved performance by removing unnecessary strlen call in internal
blitz_exec_var and blitz_exec_var_path functions
- FIX: fixed compilation error for PHP 5.4.*
===================================================================================================
0.7.1.14-devel 11 mar 2012.
С днём работника органов наркоконтроля, и днём работников геодезии и картографии!
===================================================================================================
- FIX: expressions didn't work properly with globals, undefined variables and constants
- CHANGE: VERY IMPORTANT! old setting "blitz.disable_include" (0 by default) was replaced
by new "blitz.enable_include" (1 by default)
- ADD: news settings were added:
* blitz.enable_callbacks - enables callbacks, PHP or user-defined
* blitz.enable_php_callbacks - enables just PHP callbacks
* blitz.php_callbacks_first - set highest priority to PHP callbacks when it's unclear
if it's PHP callback or template object callback
- FIX: max tag content length was increased from 128 to 512 bytes
===================================================================================================
0.7.1.13-devel 9 dec 2011.
===================================================================================================
- CHANGE: various fixes for expressions support in IF/ELSEIF/ELSE/ULNESS statements.
===================================================================================================
0.7.1.12-devel 13 nov 2011. С днём войск радиационной, химической и биологической защиты!
===================================================================================================
- CHANGE: added simple expressions support for IF/ELSEIF/ULNESS statements.
===================================================================================================
0.7.1.11-devel 19 apr 2011
===================================================================================================
- FIX: segfault for tricky nested includes (bug#284).
- FIX: lowercasing for methods can be suppressed by a new variable blitz.lower_case_method_names.
By default, blitz.lower_case_method_names = 1 (bug#286).
- FIX: if with empty agrument causes syntax error (bug#287).
- CHANGE: new docs were added into the package.
===================================================================================================
0.7.1.10-devel 12 apr 2011. С 50-летием полёта человека в космос!
===================================================================================================
- FIX: all floats were "false" in conditions.
- FIX: segfault for deep nested includes and non-zero blitz.scope_lookup_limit.
- FIX: minor leaks in the include method.
- FIX: timelib functions were moved away (fixes famous "undefined symbol: timelib_time_ctor" issue).
- CHANGE: since now PHP4 is not supported anymore. This basically means that I won't break
anything just to have shiny OOP shit, and everything should work as usual, but I won't test
PHP4 compilation and won't fix related bugs. Nuff said.
- CHANGE: prepared the parser to use simple expressions. Just parser, not executor.
This may cause strange behaviour: when you put valid expressions in IF/ELSE statements
they neither work as expressions nor throw warnings. How this still works:
just first argument is checked to be non-empty.
Example: {{ IF $a < 0 }} is still equivalent to {{ IF $a }}.
===================================================================================================
0.7.1.1-devel -> 0.7.1.9-devel
===================================================================================================
This was very new version with a lot of changes, optimizations and cleanups. I could
even forgot to mention something below. Please, be careful using these versions in production.
- CHANGE: new parser, analyzer and executor
- ADD: context scope is increased now if blitz.scope_lookup_limit is set positive number.
This number controls the deep - number of total hash-lookups from child to parent.
- ADD: comments were added (/* put comments in these tags */, you have to enable it
with blitz.enable_comments and redefine these tags using
blitz.tag_comment_open/blitz.tag_comment_close)
- ADD: IF/UNLESS were extended by ELSEIF/ELSE syntax
- ADD: More flexible method caller that allows plugins. Having {{ do($some) }} there is an
internal method check. If class method with the same name exists - this method is called.
If not - caller executes this function as any other PHP function. Now you are totally free to use
any PHP function calls from Blitz templates. {{ SomeCoolPlugin::func($some) }} works as well.
You can use hints to tell blitz what do exactly: {{ php::do($some) }} calls php function do(),
{{ this::do() }} calls do() method.
- CHANGE: blitz.remove_spaces_around_context_tags is 1 by default (this removes empty
lines around your tags by default, be careful)
- CHANGE: blitz.path for Windows-like systems fixed ("C:\dir\" paths)
- FIX: MS WINDOWS compilation
- FIX: syntax error position was wrong for mostly all error messages
- CHANGE: max length of any string between open/close (limited by BLITZ_MAX_LEXEM_LEN = 128)
bytes (was 1024)
- CHANGE: block nesting is limited by BLITZ_ANALIZER_NODE_STACK_LEN = 64
- FIX: all function calls in templates are str_lower'ed correctly (was: only functions without brackets)
===================================================================================================
0.6.10 version 20 nov 2009
===================================================================================================
FIX: hasContext() and fetch() methods correctly find contexts masked by IF/UNLESS blocks,
related bugs: #255, #260
FIX: possible double free crash for includes was fixed (bug #257)
===================================================================================================
0.6.9 version 19 oct 2009
===================================================================================================
FIX: "blitz.warn_context_duplicates" checking could cause coredumps (patch by Anton Dovgal)
===================================================================================================
0.6.8 version 13 march 2009
===================================================================================================
- New ini-variable "blitz.check_recursion" was added. Use this setting to
disable internal recursion check for recursive includes (for example,
when building hierarchical comment tree using template which includes itself). See bug
#248 for details.
- Segfault in nested includes with user-defined functions was fixed (in some cases there could
be a double free of method result at shutdown stage). See bug #245 for detais.
===================================================================================================
0.6.7 version 29 january 2009
===================================================================================================
- Infinite include loops checking was added (bug #241)
- blitz.path global should work fine with Windows-like systems ("C:\dir\" paths)
- Block method now affects contexts hidden by IF/UNLESS (bug #211)
- getStruct() returnes IF/UNLESS nodes correctly (bug #230)
- Internal method "unless" was added - an opposite pair to "if"
===================================================================================================
0.6.6 version 11 january 2009. С новым годом!
===================================================================================================
- New methods "assign" and "display" were added: "assign" is just the same as "set",
and "display" executes template and outputs the result.
$View->display($vars) is equal to echo $View->parse($vars).
- New ini-variable "blitz.warn_context_duplicates" was added. When it's set to 1 (default is 0)
===================================================================================================
0.6.4 version 17 october 2008
===================================================================================================
- Variable prefix can be set to empty value by ini_set (bug #109)
- Predefined vars are outputted in single line if statement (bug #221)
===================================================================================================
0.6.3 version 13 october 2008
===================================================================================================
- Predefined, global and boolean vars were fixed in IF/UNLESS multi-line blocks (bugs #196, #213)
- Segfault fixed when setting array(NULL) value and setting anything else after (bug #225)
===================================================================================================
0.6.2 version 15 august 2008
===================================================================================================
- Path-variables ($object.property and $hash.key) in IF/UNLESS multi-line blocks were fixed and
corresponding tests were improved.
- Minor win32-compilation fixes were made.
===================================================================================================
0.6.1 version 14 july 2008
===================================================================================================
Finally new 0.6 branch was started. Blitz will have a number of "heavy" features suggested
by users during last years. Well, better late than never!
- IF/UNLESS multi-line blocks were added. The primary goal was to help users with usual
header/footer/empty pattern. Now one can just use the following syntax:
{{ IF list }}
<table>
{{ BEGIN list }}
<tr><td>{{ $some }}</td></tr>
{{ END }}
</table>
{{ END }}
{{ UNLESS list }}
Fuck it, Dude, let's go bowling
{{ END }}
- fixed bug with removing spaces around context tags (ticket #181)
===================================================================================================
0.5.13 version 30 may 2008
===================================================================================================
- internal methods policy was corrected, only two methods are restricted in user methods and
templates: load and parse. This fixes bugs 116, 115
===================================================================================================
0.5.12 version 9 May 2008. С праздником, товарищи! Бей фашистскую сволочь.
===================================================================================================
- blitz.remove_spaces_around_context_tags = 1 removes extra whitespaces around
standalone context tags (0 by default)
===================================================================================================
0.5.11 version 28 Feb 2008
===================================================================================================
fixed bugs:
- dynamic included file contexts do not parse (ticket #112)
- cannot successfully load php string from blitz subclass (ticket #111)
- including template with filename as name of variable {{ include($var) }} (ticket #104)
- string variables '0' or "0" are not false (ticket #99)
- unzipped source should be blitz-[$VERSION], not blitz (ticket #106)
===================================================================================================
0.5.10 version 25 Jan 2008
===================================================================================================
- fixed segfault on specific iteration sequences which use a mix of normal
and simplified forms of set params (ticket #95)
- make non-prefixed "path"-varibles (obj.property or arr.key) work correctly
in method calls (ticket #92)
- minor fixes to remove compilation warnings
- minor fixes in error messages
===================================================================================================
0.5.9 version 10 Jan 2008
===================================================================================================
- "safety" patch by Konstantin Baryshnikov (ticket #85)
- blitz.disable_include = 1 disables include in templates (0 by default)
- disallow calling internal methods from templates i.e. {{ parse() }}
- variables can be used without var_prefix in method calls (ticket #91)
i.e. {{ do(something) }} is equal to {{ do($something) }}
- fixed boolean predicate in if statement
- minor changes in docs
===================================================================================================
0.5.8 version 23 Nov 2007
===================================================================================================
- bug#83 fixed, double free on include (tony)
- disallow double Blitz object initialization, test added (tony)
- english documentation was updated: sample fixes, getGlobals, getContext,
getIterations, getStruct, predefined variables in loops $_even/$_odd/etc,
$object.property/$hash.key variables (fisher)
===================================================================================================
0.5.7 version 18 Oct 2007
===================================================================================================
Bug & memleak fixes by Antony Dovgal
===================================================================================================
0.5.7-devel version 15 Oct 2007
===================================================================================================
Code clean-up: a part of "static" template structure (which doesn't depend on iterations) was
put into a separate attrubute called "static_data". This will help with caching issues in the
future.
===================================================================================================
0.5.6 version 24 Sent 2007
===================================================================================================
Bug#80 (if works incorrectly with undefined vars as predicate) was fixed.
===================================================================================================
0.5.5 version 29 August 2007
===================================================================================================
Lots of code cleanup was done. Experimental pack support was removed. Reading templates by mmap
was switched off by default.
===================================================================================================
0.5.4 version 20 August 2007
===================================================================================================
Segfault when accessing uninitialized memory was fixed (bug#76).
===================================================================================================
0.5.3 version 20 August 2007
===================================================================================================
Variable path ($hash.key.whatever.else, $obj.property.whatever.else) support was added.
Each '.' points to a hash->value or object->property relation, both can be mixed in any way in
varible path. This should work for any variable, global and local,
in any place including user/predefined method arguments. Therefore setGlobals/set_globals may accept
non-scalar key values to make things like $config.param work, so optional second parameter
warn_non_scalar became obsolete and was removed. See examples in tests/var_path.phpt. Tests were
updated, they should work correctly in any environment (there were problems with file paths in
previous versions).
===================================================================================================
0.5.2 version 16 August 2007
===================================================================================================
TS & Win32 compilation fixes. Iniitialization varible 'blitz.path' support was added. When is't
not empty all the filenames will be prefixed by this value if filename doesn't start with '/'.
===================================================================================================
0.5.1 version 12 August 2007
===================================================================================================
Lots of code cleanup was done. "parse" and "include" methods were improved, their "vars" argument
is not a globals array anymore (old API), now it's just an arbitrary iteration set and both methods
comply with set/block/fetch. Templates included by "include" method from PHP code inherit globals
from caller automatically. Corresponding tests were updated. A new article was added to the docs,
"Quick Geek Blitz Tutorial", which is addressed to those professionals who want to get maximum
information about API in a minimum of time.
===================================================================================================
0.4.25 version 03 August 2007
===================================================================================================
Predefined loop variables were added: $_total, $_num, $_even, $_odd, $_first, $_last - they can be
used in any context. Variable $_total is the total number of context iterations, $_num is the
current iteration number starting with 1, $_even and $_odd are 1 when the current
iteration is even or odd and 0 otherwise, $_first and $_last are 1 when the current
iteration is first or last and 0 otherwise. Fixed bug#68 (nonexistant context iteration "cleans"
previous data set in the root iteration). Fixed bug#69 (problems with date() function tests and
optional second parameter).
===================================================================================================
0.4.24 version 28 July 2007
===================================================================================================
Predefined include method was improved: any include from template will use internal template
cache (in previos versions this cache worked for controller include method only).
"Context" method returns current context path, and new getContext/get_context method was added
for the same purpose. Additional minor fixes were made, most of them related to win32 and
multi-threaded issues. Some tests were updated and new tests were added.
===================================================================================================
0.4.23 version 22 July 2007
===================================================================================================
Very important include-related changes were made.
A template included by the "include" directive (not include method) will
inherit current context iterations. When you set
array('test' => array('var' => 'value')) into the root context
of a template which includes another template with a context named 'test',
this 'test 'context will be iterated with params from the parent template.
To make this work properly, one have to use an additional non-empty
parameter "iterate_nonexistant" (TRUE, 1, 'Yes' - whatever) in parent "iterate"
or "block" calls, because normally non-existant contexts are not iterated
since 0.4.20 (otherwise iterating non-existant contexts will automatically
iterate the whole path). See tests/include_ctx.phpt for example. Additionally if we have a
mix of numerical and non-numerical keys in iteration set a warning will be generated
and non-numerical keys will be skipped. Several new tests were added and other minor
fixes were made.
===================================================================================================
0.4.22 version 12 July 2007
===================================================================================================
Block method semantics was extended: one can use block($data) instead of block(NULL,$data)
to iterate current context. Set method can accept arrays with numerical keys to
set several root iterations simultaneously. Basic template examples were added to php_info().
A couple of new tests were added.
===================================================================================================
0.4.21 version 09 July 2007
===================================================================================================
Minor fetch bugfixes were made.
===================================================================================================
0.4.20 version 08 July 2007
===================================================================================================
Starting from this version Blitz "officially" supports lite variables assigning. One had to use
a "list" of arrays (array with numerical keys and array values) to set context iterations in previous
versions. Now it's possible to use a "hash" of scalar/array values (array with string keys
for variables or block iterations) for a single iteration - this makes the code much more clear.
To have a single iteration of a context named "block", assigning a variable $var = "value",
one can just say $data['block']['var'] = 'value' and then $View->set($data). This also worked
in previos versions but in some cases like fetch this caused a segfault - now it's fixed.
Additionally two minor bugs were fixed: current path is not iterated when iterating
a nonexistent path, and there is no first empty iteration when the whole template is iterated
cyclically by a root path '/'.
===================================================================================================
0.4.19 version 03 July 2007
===================================================================================================
New API methods getIterations/get_iterations and getGlobals/get_globals
were added to get assigned template variables. Method alias setGlobals/set_globals
for setGlobal/set_global was added to improve naming style (setGlobal/set_global still works).
A bug in getStruct was fixed: nodes with errors are not returned. Alternative tags "<!--" and "-->"
were extended by additional whitespace, new values are "<!-- " and " -->" (please convert your
templates if you were using something like "<!--begin context-->").
===================================================================================================
0.4.18 version 23 June 2007
===================================================================================================
Bug #44 (naming conflicts) was fixed. getStruct()/get_struct() method was added to extend
php_templates compatibility (getStruct method is a partial analog for the tmpl_structure function
from php_templates extension, see samples/get_struct.php).
===================================================================================================
0.4.17 version 25 May 2007
===================================================================================================
Minor template parsing fixes were made (bugs## 40,41).
===================================================================================================
0.4.16 version 12 May 2007
===================================================================================================
Minor template parsing fixes were made.
===================================================================================================
0.4.15 version 1 May 2007. С праздником, товарищи! Коси и забивай.
===================================================================================================
A segfault which occurred when undefined variables were used in output wrapper was fixed.
Minor changes in tests and examples were made.
===================================================================================================
0.4.14 version 28 Apr 2007
===================================================================================================
Documentation was updated. Minor php_templates compability fix: function calls without
brackets are treated as variables with the same name by default.
===================================================================================================
0.4.13 version 1 Apr 2007
===================================================================================================
Minor fixes in output wrappers were made (template syntax check was corrected,
ENT_NOQUOTES support added to "escape" method, default time for "date" method
is current time). Corresponding tests were updated.
===================================================================================================
0.4.12-1 version 31 Mar 2007
===================================================================================================
A segfault which occurred when variables are set into root context after clean/fetch
operations was fixed.
===================================================================================================
0.4.12 version 31 Mar 2007
===================================================================================================
changes in "clean" method were made:
- "clean" removes all context iterations, not the latest one
- "clean" accepts second boolean parameter which says if blitz will throw PHP-warnings
when cleaning iteration is not found: $View->clean($path = '/', $warn_notfound = TRUE).
This parameter is TRUE by default.
Win32 compilation fixes (php_var_dump, php_parse_date)
===================================================================================================
0.4.11 version 25 Mar 2007
===================================================================================================
A new output wrapper "date" was added: {{ date([FORMAT], $arg); }} will return a string formatted
according to the given format string. When $arg is numerical, it is treated as UNIX timestamp integer.
Otherwise $arg is parsed using internal PHP function "php_parse_date" which recognize a lot of date
formats. Format string has the same conversion specifiers as PHP function "strftime".
Output wrapper "escape" was extended: {{ escape($arg) }} will use ENT_QUOTES quoting style by
default, while {{ escape($a, "ENT_COMPAT") }} will use ENT_COMPAT.
===================================================================================================
0.4.10 version 19 Mar 2007
===================================================================================================
- Clean method was added: $Tpl->clean($path) cleans up context iterations and parameters which were
made previously. Parameter $path is "root" by default ('/'): $Tpl->clean() with no parameter
will unset all template varibales and iterations.
- Minor parsing fixes were made (long HTML comments treated as alternative tags
could cause "lexem is too long" warning since 0.4.4 version).
===================================================================================================
0.4.9. version 17 Mar 2007
===================================================================================================
- minor parsing fixes were made (context name for alternative END-tag is optional without
any syntax warning)
===================================================================================================
0.4.8. version 13 Mar 2007
===================================================================================================
- non-brackets format method fix: {{ test }}
===================================================================================================
0.4.7 version 11 Mar 2007
===================================================================================================
- segfault on alternative context parsing fixed (HTML comments started with
non-alpha-numeric characters)
===================================================================================================
0.4.6 version 27 Feb 2007
===================================================================================================
- syntax warning for HTML comments in alternative context format
mode (<!-- BEGIN ctx --> ... <!-- END ctx -->) was fixed
===================================================================================================
0.4.5 version, 25 Feb 2007
===================================================================================================
- internal escape output wrapper was added: {{ escape($a); }},
escape($a) works exactly like htmlspecialchars($a, ENT_QUOTES);
===================================================================================================
0.4.4 version, 11 Feb 2007
===================================================================================================
- [VERY IMPORTANT] lower/upper case policy changed.
varible and context names are case sensitive, method names - not.
- commonly used context format compatibility added: <!-- BEGIN ctx --> ... <!-- END ctx -->
- other minor fixes
===================================================================================================
0.4.3 version, 10 Dec 2006
===================================================================================================
- bugfix#11: warning when calling undefined user method from template
- feature request#1: logical values in templates
- feature request#2: END tag can be followed by any text {{ END some_template_name }}
- bugfix#10: win32 compilation errors
===================================================================================================
0.4.2 version, 27 Nov 2006
===================================================================================================
- bugfix #3: occasionally uninitialized pargs element in user method call
- bugfix #7: occasionally uninitialized parent_ctx_data in blitz_exec_nodes
- fetch: cleans-up latest iteration automatically
===================================================================================================
0.4.1 version
===================================================================================================
- several context/iterate fixes (logical, very important Dick's issues)
- added has_context function
- removed dump_set function (dump_iterations can be used instead)
- removed pack-features for win32 (this code needs to be rewritten)
- OOP-style function aliases dumpStruct, dumpIterations, hasContext, setGlobal
- new tests added, all tests are compatible with PHP5 now
- ini-params renamed, they are: var_prefix, tag_open, tag_close ("tag", not "node")
- case insensitivity for contexts added
- non-string objects returning from user methods are converted to strings
- my_method() is a valid call now (nothing in brackets)
- load(NULL) segfault fixed
- passing wrong parameters to iterate/parse (arrays are of wrong format) fixed
- dynamical realloc in blitz_analyze (segfault on big templates fix)
- segfaults on user method calling (method throws an exception, returned value corruption)
- empty template is not analyzed, and no warning is shown
- line/number border-value fixes in error messages
- TSRM-related & win32 compilation fixes
- clean-up of passing arguments to user methods corrected
===================================================================================================
0.4.0 version
===================================================================================================
- context-related functionality added (context, iterate, block, fetch, set_globals)
- human-readable errors (syntax, internal etc)
- dump functions for debugging: dump_struct, dump_set, dump_iterations
- T-cache (packed templates)