change_log.txt 47.9 KB
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 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481
===== Smarty 3.0.9  =====
27/07/2011
- bugfix subtemplate could use wrong varibale scope when it was recalled from different templates

26/07/2011
- bugfix experimental getTags() method did not work

15/07/2011
- bugfix individual cache_lifetime of {include} did not work correctly inside {block} tags

12/07/2011
- bugfix PHP did eat line break on nocache sections

19/06/2011
- bugfix clear_config Smarty2 BC wrapper function was missing

16/06/2011
- bugfix do not overwrite 'smarty' template variable when {include ... scope=parent} exits

09/06/2011
- bugfix smarty security_policy issue in plugins {html_image} and {fetch}

07/06/2011
- bugfix registerFilter() or registerPlugin() on template objects did register to the main Smarty object if the register methods had been used on the main Smarty object before.

===== Smarty 3.0.8  =====
29/05/2011
- bugfix <?xml ...> in templates did break "cache modified check"

14/05/2011
- bugfix error handling at stream resources

13/05/2011
- bugfix condition starting with "-" did fail at {if} and {while} tags

22/04/2011
- bugfix allow only fixed string as file attribute at {extends} tag
- workaround for PHP 5.2.13 bug in method_exists()

01/04/2011
- bugfix do not run filters and default modifier when displaying the debug template
- bugfix of embedded double quotes within multi line strings (""")

29/03/2011
- bugfix on error message in smarty_internal_compile_block.php
- bugfix mb handling in strip modifier
- bugfix for Smarty2 style registered compiler function on unnamed attribute passing like {tag $foo $bar}

17/03/2011
- bugfix on default {function} parameters when {function} was used in nocache sections
- bugfix on compiler object destruction. compiler_object property was by mistake unset.

09/03/2011
-bugfix a variable filter should run before modifers on an output tag (see change of 23/07/2010)

08/03/2011
- bugfix loading config file without section should load only defaults

03/03/2011
- bugfix "smarty" template variable was not recreated when cached templated had expired
- bugfix internal rendered_content must be cleared after subtemplate was included

01/03/2011
- bugfix replace modifier did not work in 3.0.7 on systems without multibyte support
- bugfix {$smarty.template} could return in 3.0.7 parent template name instead of 
         child name when it needed to compile

25/02/2011
- bugfix for Smarty2 style compiler plugins on unnamed attribute passing like {tag $foo $bar}

24/02/2011
- bugfix $smarty->clearCache('some.tpl') did by mistake cache the template object

18/02/2011
- bugfix removed possible race condition when isCached() was called for an individually cached subtemplate
- bugfix force default debug.tpl to be loaded by the file resource when default_resource_type was modified

17/02/2011
-improvement not to delete files starting with '.' from cache and template_c folders on clearCompiledTemplate() and clearCache()

16/02/2011
-fixed typo in exception message of Smarty_Internal_Template
-improvement allow leading spaces on } tag closing if auto_literal is enabled

13/02/2011
- bugfix replace $smarty->triggerError() by exception in smarty_internal_resource_extends.php
- removed obsolete {popup_init..} plugin from demo templates

===== Smarty 3.0.7  =====
09/02/2011
- patched vulnerability when using {$smarty.template}

01/02/2011
- removed assert() from config and template parser

31/01/2011
- bugfix the lexer/parser did fail on special characters like VT

16/01/2011
-bugfix of ArrayAccess object handling in internal _count() method
-bugfix of Iterator object handling in internal _count() method

14/01/2011
-bugfix removed memory leak while processing compileAllTemplates

12/01/2011
- bugfix in {if} and {while} tag compiler when using assignments as condition and nocache mode

10/01/2011
- bugfix when using {$smarty.block.child} and name of {block} was in double quoted string
- bugfix updateParentVariables() was called twice when leaving {include} processing

- bugfix mb_str_replace in replace and escape modifiers work with utf8

31/12/2010
- bugfix dynamic configuration of $debugging_crtl did not work
- bugfix default value of $config_read_hidden changed to false
- bugfix format of attribute array on compiler plugins
- bugfix getTemplateVars() could return value from wrong scope

28/12/2010
- bugfix multiple {append} tags failed to compile.

22/12/2010
- update do not clone the Smarty object an internal createTemplate() calls to increase performance

21/12/2010
- update html_options to support class and id attrs

17/12/2010
- bugfix added missing support of $cache_attrs for registered plugins

15/12/2010
- bugfix assignment as condition in {while} did drop an E_NOTICE

14/12/2010
- bugfix when passing an array as default parameter at {function} tag

13/12/2010
- bugfix {$smarty.template} in child template did not return right content
- bugfix Smarty3 did not search the PHP include_path for template files

===== Smarty 3.0.6  =====

12/12/2010
- bugfix fixed typo regarding yesterdays change to allow streamWrapper

11/12/2010
- bugfix nested block tags in template inheritance child templates did not work correctly
- bugfix {$smarty.current_dir} in child template did not point to dir of child template
- bugfix changed code when writing temporary compiled files to allow stream_wrapper

06/12/2010
- bugfix getTemplateVars() should return 'null' instead dropping E_NOTICE on an unassigned variable

05/12/2010
- bugfix missing declaration of $smarty in Smarty class
- bugfix empty($foo) in {if} did drop a notice when $foo was not assigned

01/12/2010
- improvement of {debug} tag output

27/11/2010
-change run output filter before cache file is written. (same as in Smarty2)

24/11/2011
-bugfix on parser at  !$foo|modifier
-change parser logic when assignments used as condition in {if] and {while} to allow assign to array element

23/11/2011
-bugfix allow integer as attribute name in plugin calls
-change  trimm whitespace from error message, removed long list of expected tokens

22/11/2010
- bugfix on template inheritance when an {extends} tag was inserted by a prefilter
- added error message for illegal variable file attributes at {extends...} tags

===== Smarty 3.0.5  =====


19/11/2010
- bugfix on block plugins with modifiers

18/11/2010
- change on handling of unassigned template variable -- default will drop E_NOTICE
- bugfix on Smarty2 wrapper load_filter() did not work

17/11/2010
- bugfix on {call} with variable function name
- bugfix on {block} if name did contain '-'
- bugfix in function.fetch.php , referece to undefined $smarty

16/11/2010
- bugfix whitespace in front of "<?php" in smarty_internal_compile_private_block_plugin.php
- bugfix {$smarty.now} did compile incorrectly
- bugfix on reset(),end(),next(),prev(),current() within templates
- bugfix on default parameter for {function}

15/11/2010
- bugfix when using {$smarty.session} as object
- bugfix scoping problem on $smarty object passed to filters
- bugfix captured content could not be accessed globally
- bugfix Smarty2 wrapper functions could not be call from within plugins

===== Smarty 3.0.4  =====

14/11/2010
- bugfix isset() did not allow multiple parameter
- improvment of some error messages
- bugfix html_image did use removed property $request_use_auto_globals
- small performace patch in Smarty class

13/11/2010
- bugfix  overloading problem when $smarty->fetch()/display() have been used in plugins
				(introduced with 3.0.2)
- code cleanup
								
===== Smarty 3.0.3  =====

13/11/2010
- bugfix on {debug}
- reverted location of loadPlugin() to Smarty class
- fixed comments in plugins
- fixed internal_config (removed unwanted code line)
- improvement  remove last linebreak from {function} definition

===== Smarty 3.0.2  =====

12/11/2010
- reactivated $error_reporting property handling
- fixed typo in compile_continue
- fixed security in {fetch} plugin
- changed back plugin parameters to two. second is template object 
  with transparent access to Smarty object
- fixed {config_load} scoping form compile time to run time

===== Smarty 3.0.0  =====



11/11/2010
- major update including some API changes

10/11/2010
- observe compile_id also for config files

09/11/2010
-bugfix on  complex expressions as start value for {for} tag
request_use_auto_globals
04/11/2010
- bugfix do not allow access of dynamic and private object members of assigned objects when
  security is enabled.

01/11/2010
- bugfix related to E_NOTICE change.  {if empty($foo)} did fail when $foo contained a string 

28/10/2010
- bugfix on compiling modifiers within $smarty special vars like {$smarty.post.{$foo|lower}}

27/10/2010
- bugfix default parameter values did not work for template functions included with {include}

25/10/2010
- bugfix for E_NOTICE change, array elements did not work as modifier parameter

20/10/2010
- bugfix for the E_NOTICE change

19/10/2010
- change Smarty does no longer mask out E_NOTICE by default during template processing

13/10/2010
- bugfix removed ambiguity between ternary and stream variable in template syntax
- bugfix use caching properties of template instead of smarty object when compiling child {block}
- bugfix {*block}...{/block*} did throw an exception in template inheritance
- bugfix on template inheritance using nested eval or string resource in {extends} tags
- bugfix on output buffer handling in isCached() method

=====  RC4 =====

01/10/2010
- added {break} and {continue} tags for flow control of {foreach},{section},{for} and {while} loops
- change of 'string' resource. It's no longer evaluated and compiled files are now stored
- new 'eval' resource which evaluates a template without saving the compiled file
- change in isCached() method to allow multiple calls for the same template

25/09/2010
- bugfix on some compiling modifiers

24/09/2010
- bugfix merge_compiled_includes flag was not restored correctly in {block} tag

22/09/2010
- bugfix on default modifier

18/09/2010
- bugfix untility compileAllConfig() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS
- bugfix on templateExists() for extends resource

17/09/2010
- bugfix {$smarty.template} and {$smarty.current_dir} did not compile correctly within {block} tags
- bugfix corrected error message on missing template files in extends resource
- bugfix untility compileAllTemplates() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS

16/09/2010
- bugfix when a doublequoted modifier parameter did contain Smarty tags and ':'

15/09/2010
- bugfix resolving conflict between '<%'/'%>' as custom Smarty delimiter and ASP tags
- use ucfirst for resource name on internal resource class names

12/09/2010
- bugfix for change of 08/09/2010 (final {block} tags in subtemplates did not produce correct results)

10/09/2010
- bugfix for change of 08/09/2010 (final {block} tags in subtemplates did not produce correct results)

08/09/2010
- allow multiple template inheritance branches starting in subtemplates

07/09/2010
- bugfix {counter} and {cycle} plugin assigned result to smarty variable not in local(template) scope
- bugfix templates containing just {strip} {/strip} tags did produce an error


23/08/2010
- fixed E_STRICT errors for uninitialized variables

22/08/2010
- added attribute cache_id to {include} tag

13/08/2010
- remove exception_handler property from Smarty class
- added Smarty's own exceptions SmartyException and SmartyCompilerException

09/08/2010
- bugfix on modifier with doublequoted strings as parameter containing embedded tags

06/08/2010
- bugfix when cascading some modifier like |strip|strip_tags modifier

05/08/2010
- added plugin type modifiercompiler to produce compiled modifier code
- changed standard modifier plugins to the compiling versions whenever possible
- bugfix in nocache sections {include} must not cache the subtemplate

02/08/2010
- bugfix strip did not work correctly in conjunction with comment lines

31/07/2010
- bugfix on nocache attribute at {assign} and {append}

30/07/2010
- bugfix passing scope attributes in doublequoted strings did not work at {include} {assign} and {append}

25/07/2010
- another bugfix of change from 23/07/2010 when compiling modifer

24/07/2010
- bugfix of change from 23/07/2010 when compiling modifer

23/07/2010
- changed execution order. A variable filter does now run before modifiers on output of variables
- bugfix use always { and } as delimiter for debug.tpl


22/07/2010
- bugfix in templateExists() methode

20/07/2010
- fixed handling of { strip } tag with whitespaces

15/07/2010
- bufix  {$smarty.template} does include now the relative path, not just filename

=====  RC3 =====




15/07/2010
- make the date_format modifier work also on objects of the DateTime class
- implementation of parsetrees in the parser to close security holes and remove unwanted empty line in HTML output

08/07/2010
- bugfix on assigning multidimensional arrays within templates
- corrected bugfix for truncate modifier

07/07/2010
- bugfix the truncate modifier needs to check if the string is utf-8 encoded or not
- bugfix support of script files relative to trusted_dir

06/07/2010
- create exception on recursive {extends} calls
- fixed reported line number at "unexpected closing tag " exception
- bugfix on escape:'mail' modifier
- drop exception if 'item' variable is equal 'from' variable in {foreach} tag

01/07/2010
- removed call_user_func_array calls for optimization of compiled code when using registered modifiers and plugins

25/06/2010
- bugfix escaping " when block tags are used within doublequoted strings

24/06/2010
- replace internal get_time() calls with standard PHP5 microtime(true) calls in Smarty_Internal_Utility
- added $smarty->register->templateClass() and $smarty->unregister->templateClass() methods for supporting static classes with namespace


22/06/2010
- allow spaces between typecast and value in template syntax
- bugfix get correct count of traversables in {foreach} tag

21/06/2010
- removed use of PHP shortags SMARTY_PHP_PASSTHRU mode
- improved speed of cache->clear() when a compile_id was specified and use_sub_dirs is true 

20/06/2010
- replace internal get_time() calls with standard PHP5 microtime(true) calls
- closed security hole when php.ini asp_tags = on

18/06/2010
- added __toString method to the Smarty_Variable class


14/06/2010
- make handling of Smarty comments followed by newline BC to Smarty2


=====  RC2 =====



13/06/2010
- bugfix Smarty3 did not handle hexadecimals like 0x0F as numerical value
- bugifx Smarty3 did not accept numerical constants like .1 or 2. (without a leading or trailing digit)

11/06/2010
- bugfix the lexer did fail on larger {literal} ... {/literal} sections

03/06/2010
- bugfix on calling template functions like Smarty tags

01/06/2010
- bugfix on template functions used with template inheritance
- removed /* vim: set expandtab: */ comments
- bugfix of auto literal problem introduce with fix of 31/05/2010

31/05/2010
- bugfix the parser did not allow some smarty variables with special name like $for, $if, $else and others.

27/05/2010
- bugfix on object chaining using variable properties
- make scope of {counter} and {cycle} tags again global as in Smarty2

26/05/2010
- bugfix removed decrepated register_resource call in smarty_internal_template.php

25/05/2010
- rewrite of template function handling to improve speed
- bugfix on file dependency when merge_compiled_includes = true


16/05/2010
- bugfix when passing parameter with numeric name like {foo 1='bar' 2='blar'}

14/05/2010
- bugfix compile new config files if compile_check and force_compile = false
- added variable static classes names to template syntax

11/05/2010
- bugfix  make sure that the cache resource is loaded in all conditions when template methods getCached... are called externally
- reverted the change 0f 30/04/2010. With the exception of forward references template functions can be again called by a standard tag.

10/05/2010
- bugfix on {foreach} and {for} optimizations of 27/04/2010 

09/05/2010
- update of template and config file parser because of minor parser generator bugs 

07/05/2010
- bugfix on {insert} 

06/05/2010
- bugfix when merging compiled templates and objects are passed as parameter of the {include} tag

05/05/2010
- bugfix on {insert} to cache parameter
- implementation of $smarty->default_modifiers as in Smarty2
- bugfix on getTemplateVars method 

01/05/2010
- bugfix on handling of variable method names at object chaning

30/04/2010
- bugfix when comparing timestamps in sysplugins/smarty_internal_config.php
- work around of a substr_compare bug in older PHP5 versions
- bugfix on template inheritance for tag names starting with "block"
- bugfix on {function} tag with name attribute in doublequoted strings
- fix to make calling of template functions unambiguously by madatory usage of the {call} tag

=====  RC1 =====

27/04/2010
- change default of $debugging_ctrl to 'NONE'
- optimization of compiled code of {foreach} and {for} loops
- change of compiler for config variables

27/04/2010
- bugfix in $smarty->cache->clear() method. (do not cache template object)


17/04/2010
- security fix in {math} plugin


12/04/2010
- bugfix in smarty_internal_templatecompilerbase (overloaded property)
- removed parser restrictions in using true,false and null as ID

07/04/2010
- bugfix typo in smarty_internal_templatecompilerbase 

31/03/2010
- compile locking by touching old compiled files to avoid concurrent compilations

29/03/2010
- bugfix allow array definitions as modifier parameter
- bugfix observe compile_check property when loading config files
- added the template object as third filter parameter

25/03/2010
- change of utility->compileAllTemplates() log messages
- bugfix on nocache code in {function} tags 
- new method utility->compileAllConfig() to compile all config files

24/03/2010
- bugfix on register->modifier() error messages

23/03/2010
- bugfix on template inheritance when calling multiple child/parent relations
- bugfix on caching mode SMARTY_CACHING_LIFETIME_SAVED and cache_lifetime = 0

22/03/2010
- bugfix make directory separator operating system independend in compileAllTemplates()

21/03/2010
- removed unused code in compileAllTemplates()

19/03/2010
- bugfix for multiple {/block} tags on same line

17/03/2010
- bugfix make $smarty->cache->clear() function independent from caching status

16/03/2010
- bugfix on assign attribute at registered template objects
- make handling of modifiers on expression BC to Smarty2
 
15/03/2010
- bugfix on block plugin calls

11/03/2010
- changed parsing of <?php and ?> back to Smarty2 behaviour

08/03/2010
- bugfix on uninitialized properties in smarty_internal_template
- bugfix on $smarty->disableSecurity()

04/03/2010
- bugfix allow uppercase chars in registered resource names
- bugfix on accessing chained objects of static classes

01/03/2010
- bugfix on nocache code in {block} tags if child template was included by {include}

27/02/2010
- allow block tags inside double quoted string 

26/02/2010
- cache modified check implemented
- support of access to a class constant from an object (since PHP 5.3)

24/02/2010
- bugfix on expressions in doublequoted string enclosed in backticks
- added security property $static_classes for static class security

18/02/2010
- bugfix on parsing Smarty tags inside <?xml ... ?>
- bugfix on truncate modifier

17/02/2010
- removed restriction that modifiers did require surrounding parenthesis in some cases
- added {$smarty.block.child} special variable for template inheritance

16/02/2010
- bugfix on <?xml ... ?> tags for all php_handling modes
- bugfix on parameter of variablefilter.htmlspecialchars.php plugin

14/02/2010
- added missing _plugins property in smarty.class.php
- bugfix $smarty.const... inside doublequoted strings and backticks was compiled into wrong PHP code

12/02/2010
- bugfix on nested {block} tags
- changed Smarty special variable $smarty.parent to $smarty.block.parent
- added support of nested {bock} tags

10/02/2010
- avoid possible notice on $smarty->cache->clear(...), $smarty->clear_cache(....)
- allow Smarty tags inside <? ... ?> tags in SMARTY_PHP_QUOTE and SMARTY_PHP_PASSTHRU mode
- bugfix at new "for" syntax like {for $x=1 to 10 step 2}

09/02/2010
- added $smarty->_tag_stack for tracing block tag hierarchy

08/02/2010
- bugfix  use template fullpath at ยงsmarty->cache->clear(...), $smarty->clear_cache(....)
- bugfix of cache filename on extended templates when force_compile=true

07/02/2010
- bugfix on changes of 05/02/2010
- preserve line endings type form template source
- API changes (see README file)

05/02/2010
- bugfix on modifier and block plugins with same name

02/02/2010
- retaining newlines at registered functions and function plugins

01/25/2010
- bugfix cache resource was not loaded when caching was globally off but enabled at a template object
- added test that $_SERVER['SCRIPT_NAME'] does exist in Smarty.class.php

01/22/2010
- new method $smarty->createData([$parent]) for creating a data object (required for bugfixes below)
- bugfix config_load() method now works also on a data object
- bugfix get_config_vars() method now works also on a data and template objects
- bugfix clear_config() method now works also on a data and template objects

01/19/2010
- bugfix on plugins if same plugin was called from a nocache section first and later from a cached section


###beta 7###


01/17/2010
- bugfix on $smarty.const... in double quoted strings

01/16/2010
- internal change of config file lexer/parser on handling of section names
- bugfix on registered objects (format parameter of register_object was not handled correctly)

01/14/2010
- bugfix on backslash within single quoted strings
- bugfix allow absolute filepath for config files
- bugfix on special Smarty variable $smarty.cookies
- revert handling of newline on no output tags like {if...} 
- allow special characters in config file section names for Smarty2 BC

01/13/2010
- bugfix on {if} tags 

01/12/2010
- changed back modifer handling in parser. Some restrictions still apply:
    if modifiers are used in side {if...} expression or in mathematical expressions 
    parentheses must be used.
- bugfix the {function..} tag did not accept the name attribute in double quotes
- closed possible security hole at <?php ... ?> tags
- bugfix of config file parser on large config files


###beta 6####

01/11/2010
- added \n to the compiled code of the {if},{else},{elseif},{/if} tags to get output of newlines as expected by the template source
- added missing support of insert plugins
- added optional nocache attribute to {block} tags in parent template
- updated <?php...?> handling supporting now heredocs and newdocs. (thanks to Thue Jnaus Kristensen)

01/09/2010
- bugfix on nocache {block} tags in parent templates

01/08/2010
- bugfix on variable filters. filter/nofilter attributes did not work on output statements

01/07/2010
- bugfix on file dependency at template inheritance
- bugfix on nocache code at template inheritance

01/06/2010
- fixed typo in smarty_internal_resource_registered
- bugfix for custom delimiter at extends resource and {extends} tag

01/05/2010
- bugfix sha1() calculations at extends resource and some general improvments on sha1() handling 


01/03/2010
- internal change on building cache files

01/02/2010
- update cached_timestamp at the template object after cache file is written to avoid possible side effects
- use internally always SMARTY_CACHING_LIFETIME_* constants

01/01/2010
- bugfix for obtaining plugins which must be included (related to change of 12/30/2009)
- bugfix for {php} tag (trow an exception if allow_php_tag = false)

12/31/2009
- optimization of generated code for doublequoted strings containing variables
- rewrite of {function} tag handling
  - can now be declared in an external subtemplate
  - can contain nocache sections (nocache_hash handling)
  - can be called in noccache sections (nocache_hash handling)
  - new {call..} tag to call template functions with a variable name {call name=$foo}
- fixed nocache_hash handling in merged compiled templates

12/30/2009
- bugfix for plugins defined in the script as smarty_function_foo

12/29/2009
- use sha1() for filepath encoding
- updates on nocache_hash handling
- internal change on merging some data
- fixed cache filename for custom resources 

12/28/2009
- update for security fixes
- make modifier plugins always trusted
- fixed bug loading modifiers in child template at template inheritance

12/27/2009
--- this is a major update with a couple of internal changes ---
- new config file lexer/parser (thanks to Thue Jnaus Kristensen)
- template lexer/parser fixes for PHP and {literal} handing (thanks to Thue Jnaus Kristensen)
- fix on registered plugins with different type but same name
- rewrite of plugin handling (optimized execution speed)
- closed a security hole regarding PHP code injection into cache files
- fixed bug in clear cache handling
- Renamed a couple of internal classes
- code cleanup for merging compiled templates
- couple of runtime optimizations (still not all done)
- update of getCachedTimestamp()
- fixed bug on modifier plugins at nocache output

12/19/2009
- bugfix on comment lines in config files

12/17/2009
- bugfix of parent/global variable update at included/merged subtemplates
- encode final template filepath into filename of compiled and cached files
- fixed {strip} handling in auto literals

12/16/2009
- update of changelog
- added {include file='foo.tpl' inline}  inline option to merge compiled code of subtemplate into the calling template

12/14/2009
- fixed sideefect of last modification (objects in array index did not work anymore)

12/13/2009
- allow boolean negation ("!") as operator on variables outside {if} tag

12/12/2009
- bugfix on single quotes inside {function} tag
- fix short append/prepend attributes in {block} tags

12/11/2009
- bugfix on clear_compiled_tpl (avoid possible warning)

12/10/2009
- bugfix on {function} tags and template inheritance

12/05/2009
- fixed problem when a cached file was fetched several times
- removed unneeded lexer code

12/04/2009
- added max attribute to for loop
- added security mode allow_super_globals

12/03/2009
- template inheritance: child templates can now call functions defined by the {function} tag in the parent template
- added {for $foo = 1 to 5 step 2}  syntax
- bugfix for {$foo.$x.$y.$z}

12/01/2009
- fixed parsing of names of special formated tags like if,elseif,while,for,foreach
- removed direct access to constants in templates because of some syntax problems
- removed cache resource plugin for mysql from the distribution
- replaced most hard errors (exceptions) by softerrors(trigger_error) in plugins
- use $template_class property for template class name when compiling {include},{eval} and {extends} tags

11/30/2009
- map 'true' to SMARTY_CACHING_LIFETIME_CURRENT for the $smarty->caching parameter
- allow {function} tags within {block} tags

11/28/2009
- ignore compile_id at debug template
- added direct access to constants in templates
- some lexer/parser optimizations

11/27/2009
- added cache resource MYSQL plugin

11/26/2009
- bugfix on nested doublequoted strings
- correct line number on unknown tag error message
- changed {include} compiled code
- fix on checking dynamic varibales with error_unassigned = true

11/25/2009
- allow the following writing for boolean: true, TRUE, True, false, FALSE, False
- {strip} tag functionality rewritten

11/24/2009
- bugfix for $smarty->config_overwrite = false

11/23/2009
- suppress warnings on unlink caused by race conditions
- correct line number on unknown tag error message

------- beta 5
11/23/2009
- fixed configfile parser for text starting with a numeric char
- the default_template_handler_func may now return a filepath to a template source

11/20/2009
- bugfix for empty config files
- convert timestamps of registered resources to integer

11/19/2009
- compiled templates are no longer touched with the filemtime of template source

11/18/2009
- allow integer as attribute name in plugin calls

------- beta 4
11/18/2009
- observe umask settings when setting file permissions
- avoide unneeded cache file creation for subtemplates which did occur in some situations
- make $smarty->_current_file available during compilation for Smarty2 BC

11/17/2009
- sanitize compile_id and cache_id (replace illegal chars with _)
- use _dir_perms and _file_perms properties at file creation
- new constant SMARTY_RESOURCE_DATE_FORMAT (default '%b %e, %Y') which is used as default format in modifier date_format
- added {foreach $array as $key=>$value} syntax
- renamed extend tag and resource to extends: {extends file='foo.tol'} , $smarty->display('extends:foo.tpl|bar.tpl);
- bugfix cycle plugin

11/15/2009
- lexer/parser optimizations on quoted strings

11/14/2009
- bugfix on merging compiled templates when source files got removed or renamed.
- bugfix modifiers on registered object tags
- fixed locaion where outputfilters are running
- fixed config file definitions at EOF
- fix on merging compiled templates with nocache sections in nocache includes
- parser could run into a PHP error on wrong file attribute

11/12/2009
- fixed variable filenames in {include_php} and {insert}
- added scope to Smarty variables in the {block} tag compiler
- fix on nocache code in child {block} tags

11/11/2009
- fixed {foreachelse}, {forelse}, {sectionelse} compiled code at nocache variables
- removed checking for reserved variables
- changed debugging handling

11/10/2009
- fixed preg_qoute on delimiters

11/09/2009
- lexer/parser bugfix 
- new SMARTY_SPL_AUTOLOAD constant to control the autoloader option
- bugfix for {function} block tags in included templates

11/08/2009
- fixed alphanumeric array index 
- bugfix on complex double quoted strings

11/05/2009
- config_load method can now be called on data and template objects

11/04/2009
- added typecasting support for template variables
- bugfix on complex indexed special Smarty variables

11/03/2009
- fixed parser error on objects with special smarty vars
- fixed file dependency for {incude} inside {block} tag
- fixed not compiling on non existing compiled templates when compile_check = false
- renamed function names of autoloaded Smarty methods to Smarty_Method_....
- new security_class property (default is Smarty_Security)

11/02/2009
- added neq,lte,gte,mod as aliases to if conditions 
- throw exception on illegal Smarty() constructor calls

10/31/2009
- change of filenames in sysplugins folder for internal spl_autoload function
- lexer/parser changed for increased compilation speed

10/27/2009
- fixed missing quotes in include_php.php

10/27/2009
- fixed typo in method.register_resource
- pass {} through as literal

10/26/2009
- merge only compiled subtemplates into the compiled code of the main template

10/24/2009
- fixed nocache vars at internal block tags
- fixed merging of recursive includes

10/23/2009
- fixed nocache var problem

10/22/2009
- fix trimwhitespace outputfilter parameter

10/21/2009
- added {$foo++}{$foo--} syntax
- buxfix changed PHP "if (..):" to "if (..){" because of possible bad code when concenating PHP tags
- autoload Smarty internal classes
- fixed file dependency for config files 
- some code optimizations
- fixed function definitions on some autoloaded methodes
- fixed nocache variable inside if condition of {if} tag

10/20/2009
- check at compile time for variable filter to improve rendering speed if no filter is used
- fixed bug at combination of {elseif} tag and {...} in double quoted strings of static class parameter

10/19/2009
- fixed compiled template merging on variable double quoted strings as name
- fixed bug in caching mode 2 and cache_lifetime -1 
- fixed modifier support on block tags

10/17/2009
- remove ?>\n<?php and ?><?php sequences from compiled template

10/15/2009
- buxfix on assigning array elements inside templates
- parser bugfix on array access

10/15/2009
- allow bit operator '&' inside {if} tag
- implementation of ternary operator

10/13/2009
- do not recompile evaluated templates if reused just with other data
- recompile config files when config properties did change
- some lexer/parser otimizations

10/11/2009
- allow {block} tags inside included templates
- bugfix for resource plugins in Smarty2 format
- some optimizations of internal.template.php

10/11/2009
- fixed bug when template with same name is used with different data objects
- fixed bug with double quoted name attribute at {insert} tag
- reenabled assign_by_ref and append_by_ref methodes

10/07/2009
- removed block nesting checks for {capture}

10/05/2009
- added support of "isinstance" to {if} tag

10/03/2009
- internal changes to improve performance
- fix registering of filters for classes

10/01/2009
- removed default timezone setting
- reactivated PHP resource for simple PHP templates. Must set allow_php_templates = true to enable
- {PHP} tag can be enabled by allow_php_tag = true

09/30/2009
- fixed handling template_exits methode for all resource types
- bugfix for other cache resources than file
- the methodes assign_by_ref is now wrapped to assign, append_by_ref to append
- allow arrays of variables pass in display, fetch and createTemplate calls
  $data = array('foo'=>'bar','foo2'=>'blar');
  $smarty->display('my.tpl',$data);

09/29/2009
- changed {php} tag handling
- removed support of Smarty::instance()
- removed support of PHP resource type
- improved execution speed of {foreach} tags
- fixed bug in {section} tag

09/23/2009
- improvements and bugfix on {include} tag handling
NOTICE: existing compiled template and cache files must be deleted

09/19/2009
- replace internal "eval()" calls by "include" during rendering process
- speed improvment for templates which have included subtemplates
    the compiled code of included templates is merged into the compiled code of the parent template
- added logical operator "xor" for {if} tag
- changed parameter ordering for Smarty2 BC
    fetch($template, $cache_id = null, $compile_id = null, $parent = null)
    display($template, $cache_id = null, $compile_id = null, $parent = null)
    createTemplate($template, $cache_id = null, $compile_id = null, $parent = null)
- property resource_char_set is now replaced by constant SMARTY_RESOURCE_CHAR_SET
- fixed handling of classes in registered blocks
- speed improvement of lexer on text sections

09/01/2009
- dropped nl2br as plugin
- added '<>' as comparission operator in {if} tags
- cached caching_lifetime property to cache_liftime for backward compatibility with Smarty2.
  {include} optional attribute is also now cache_lifetime
- fixed trigger_error methode (moved into Smarty class)
- version is now  Beta!!!


08/30/2009
- some speed optimizations on loading internal plugins


08/29/2009
- implemented caching of registered Resources
- new property 'auto_literal'. if true(default)  '{ ' and ' }' interpreted as literal, not as Smarty delimiter


08/28/2009
- Fix on line breaks inside {if} tags

08/26/2009
- implemented registered resources as in Smarty2. NOTE: caching does not work yet
- new property 'force_cache'. if true it forces the creation of a new cache file
- fixed modifiers on arrays
- some speed optimization on loading internal classes


08/24/2009
- fixed typo in lexer definition for '!==' operator
- bugfix - the ouput of plugins was not cached
- added global variable SCRIPT_NAME

08/21/2009
- fixed problems whitespace in conjuction with custom delimiters
- Smarty tags can now be used as value anywhere

08/18/2009
- definition of template class name moded in internal.templatebase.php
- whitespace parser changes

08/12/2009
- fixed parser problems

08/11/2009
- fixed parser problems with custom delimiter

08/10/2009
- update of mb support in plugins


08/09/2009
- fixed problems with doublequoted strings at name attribute of {block} tag
- bugfix at scope attribute of {append} tag

08/08/2009
- removed all internal calls of Smarty::instance()
- fixed code in double quoted strings

08/05/2009
- bugfix mb_string support
- bugfix of \n.\t etc in double quoted strings

07/29/2009
- added syntax for variable config vars  like  #$foo#

07/28/2009
- fixed parsing of $smarty.session vars containing objects

07/22/2009
- fix of "$" handling in double quoted strings

07/21/2009
- fix that {$smarty.current_dir} return correct value within {block} tags.

07/20/2009
- drop error message on unmatched {block} {/block} pairs

07/01/2009
- fixed smarty_function_html_options call in plugin function.html_select_date.php (missing ,)

06/24/2009
- fixed smarty_function_html_options call in plugin function.html_select_date.php

06/22/2009
- fix on \n and spaces inside smarty tags
- removed request_use_auto_globals propert as it is no longer needed because Smarty 3 will always run under PHP 5


06/18/2009
- fixed compilation of block plugins when caching enabled
- added $smarty.current_dir  which returns the current working directory

06/14/2009
- fixed array access on super globals
- allow smarty tags within xml tags

06/13/2009
- bugfix at extend resource: create unique files for compiled template and cache for each combination of template files
- update extend resource to handle appen and prepend block attributes
- instantiate classes of plugins instead of calling them static

06/03/2009
- fixed repeat at block plugins

05/25/2009
- fixed problem with caching of compiler plugins

05/14/2009
- fixed directory separator handling

05/09/2009
- syntax change for stream variables
- fixed bug when using absolute template filepath and caching

05/08/2009
- fixed bug of {nocache}  tag in included templates

05/06/2009
- allow that plugins_dir folder names can end without directory separator

05/05/2009
- fixed E_STRICT incompabilities
- {function} tag bug fix 
- security policy definitions have been moved from plugins folder to file Security.class.php in libs folder
- added allow_super_global configuration to security

04/30/2009
- functions defined with the {function} tag now always have global scope

04/29/2009
- fixed problem with directory setter methodes
- allow that cache_dir can end without directory separator

04/28/2009
- the {function} tag can no longer overwrite standard smarty tags
- inherit functions defined by the {fuction} tag into subtemplates
- added {while <statement>} sytax to while tag

04/26/2009
- added trusted stream checking to security
- internal changes at file dependency check for caching

04/24/2009
- changed name of {template} tag to {function}
- added new {template} tag

04/23/2009
- fixed access of special smarty variables from included template

04/22/2009
- unified template stream syntax with standard Smarty resource syntax  $smarty->display('mystream:mytemplate')

04/21/2009
- change of new style syntax for forach. Now:  {foreach $array as $var}  like in PHP

04/20/2009
- fixed "$foo.bar  ..." variable replacement in double quoted strings
- fixed error in {include} tag with variable file attribute

04/18/2009
- added stream resources  ($smarty->display('mystream://mytemplate'))
- added stream variables  {$mystream:myvar}

04/14/2009
- fixed compile_id handling on {include} tags
- fixed append/prepend attributes in {block} tag
- added  {if  'expression' is in 'array'}  syntax
- use crc32 as hash for compiled config files.

04/13/2009
- fixed scope problem with parent variables when appending variables within templates.
- fixed code for {block} without childs (possible sources for notice errors removed)

04/12/2009
- added append and prepend attribute to {block} tag

04/11/2009
- fixed variables in 'file' attribute of {extend} tag
- fixed problems in modifiers (if mb string functions not present)

04/10/2009
- check if mb string functions available otherwise fallback to normal string functions
- added global variable scope SMARTY_GLOBAL_SCOPE 
- enable 'variable' filter by default
- fixed {$smarty.block.parent.foo} 
- implementation of a 'variable' filter as replacement for default modifier

04/09/2009
- fixed execution of filters defined by classes
- compile the always the content of {block} tags to make shure that the filters are running over it
- syntax corrections on variable object property
- syntax corrections on array access in dot syntax

04/08/2009
- allow variable object property

04/07/2009
- changed variable scopes to SMARTY_LOCAL_SCOPE, SMARTY_PARENT_SCOPE, SMARTY_ROOT_SCOPE to avoid possible conflicts with user constants
- Smarty variable global attribute replaced with scope attribute

04/06/2009
- variable scopes LOCAL_SCOPE, PARENT_SCOPE, ROOT_SCOPE
- more getter/setter methodes

04/05/2009
- replaced new array looping syntax {for $foo in $array} with {foreach $foo in $array} to avoid confusion
- added append array for short form of assign  {$foo[]='bar'} and allow assignments to nested arrays {$foo['bla']['blue']='bar'}

04/04/2009
- make output of template default handlers cachable and save compiled source
- some fixes on yesterdays update

04/03/2006
- added registerDefaultTemplateHandler methode and functionallity
- added registerDefaultPluginHandler methode and functionallity
- added {append} tag to extend Smarty array variabled

04/02/2009
- added setter/getter methodes
- added $foo@first and $foo@last properties at {for} tag
- added $set_timezone (true/false) property to setup optionally the default time zone

03/31/2009
- bugfix smarty.class and internal.security_handler
- added compile_check configuration 
- added setter/getter methodes

03/30/2009
- added all major setter/getter methodes

03/28/2009
- {block} tags can be nested now
- md5 hash function replace with crc32 for speed optimization
- file order for exted resource inverted
- clear_compiled_tpl and clear_cache_all will not touch .svn folder any longer

03/27/2009
- added extend resource

03/26/2009
- fixed parser not to create error on `word` in double quoted strings
- allow PHP  array(...)
- implemented  $smarty.block.name.parent to access parent block content
- fixed smarty.class


03/23/2009
- fixed {foreachelse} and {forelse} tags

03/22/2009
- fixed possible sources for notice errors
- rearrange SVN into distribution and development folders

03/21/2009
- fixed exceptions in function plugins
- fixed notice error in Smarty.class.php
- allow chained objects to span multiple lines
- fixed error in modifers 

03/20/2009
- moved /plugins folder into /libs folder
- added noprint modifier
- autoappend a directory separator if the xxxxx_dir definition have no trailing one

03/19/2009
- allow array definition as modifer paramter
- changed modifier to use multi byte string funktions. 

03/17/2009
- bugfix 

03/15/2009
- added {include_php} tag for BC
- removed @ error suppression 
- bugfix fetch did always repeat output of first call when calling same template several times
- PHPunit tests extended

03/13/2009
- changed block syntax to be Smarty like  {block:titel} -> {block name=titel}
- compiling of {block} and {extend} tags rewriten for better performance
- added special Smarty variable block  ($smarty.block.foo} returns the parent definition of block foo
- optimization of {block} tag compiled code.
- fixed problem with escaped double quotes in double quoted strings

03/12/2009
- added support of template inheritance by {extend } and {block } tags.
- bugfix comments within literals
- added scope attribuie to {include} tag

03/10/2009
- couple of bugfixes and improvements
- PHPunit tests extended

03/09/2009
- added support for global template vars.  {assign_global...}  $smarty->assign_global(...)
- added direct_access_security
- PHPunit tests extended
- added missing {if} tag conditions like "is div by" etc.

03/08/2009
- splitted up the Compiler class to make it easier to use a coustom compiler
- made default plugins_dir relative to Smarty root and not current working directory
- some changes to make the lexer parser better configurable
- implemented {section} tag for Smarty2 BC

03/07/2009
- fixed problem with comment tags
- fixed problem with #xxxx in double quoted string
- new {while} tag implemented
- made lexer and paser class configurable as $smarty property
- Smarty method get_template_vars implemented
- Smarty method get_registered_object implemented
- Smarty method trigger_error implemented
- PHPunit tests extended

03/06/2009
- final changes on config variable handling
- parser change - unquoted strings will by be converted into single quoted strings
- PHPunit tests extended
- some code cleanup
- fixed problem on catenate strings with expression
- update of count_words modifier
- bugfix on comment tags


03/05/2009
- bugfix on <?xml...> tag with caching enabled
- changes on exception handling (by Monte)

03/04/2009
- added support for config variables
- bugfix on <?xml...> tag

03/02/2009
- fixed unqouted strings within modifier parameter
- bugfix parsing of mofifier parameter

03/01/2009
- modifier chaining works now as in Smarty2

02/28/2009
- changed handling of unqouted strings

02/26/2009
- bugfix
- changed $smarty.capture.foo to be global for Smarty2 BC.

02/24/2009
- bugfix {php} {/php} tags for backward compatibility
- bugfix for expressions on arrays
- fixed usage of "null" value
- added $smarty.foreach.foo.first and $smarty.foreach.foo.last

02/06/2009
- bugfix for request variables without index  for example $smarty.get
- experimental solution for variable functions in static class

02/05/2009
- update of popup plugin
- added config variables to template parser (load config functions still missing)
- parser bugfix for empty quoted strings

02/03/2009
- allow array of objects as static class variabales.
- use htmlentities at source output at template errors.

02/02/2009
- changed search order on modifiers to look at plugins folder first
- parser bug fix for modifier on array elements  $foo.bar|modifier
- parser bug fix on single quoted srings
- internal: splitted up compiler plugin files 

02/01/2009
- allow method chaining on static classes
- special Smarty variables  $smarty.... implemented
- added {PHP} {/PHP} tags for backward compatibility

01/31/2009
- added {math} plugin for Smarty2 BC
- added template_exists method
- changed Smarty3 method enable_security() to enableSecurity() to follow camelCase standards

01/30/2009
- bugfix in single quoted strings
- changed syntax for variable property access from $foo:property to $foo@property because of ambiguous syntax at modifiers

01/29/2009
- syntax for array definition changed from (1,2,3) to [1,2,3] to remove ambiguous syntax
- allow  {for $foo in [1,2,3]} syntax
- bugfix in double quoted strings
- allow <?xml...?> tags in template even if short_tags are enabled

01/28/2009
- fixed '!==' if condition.

01/28/2009
- added support of {strip} {/strip} tag.

01/27/2009
- bug fix on backticks in double quoted strings at objects

01/25/2009
- Smarty2 modfiers added to SVN

01/25/2009
- bugfix allow arrays at object properties in Smarty syntax
- the template object is now passed as additional parameter at plugin calls
- clear_compiled_tpl methode completed

01/20/2009
- access to class constants implemented  ( class::CONSTANT )
- access to static class variables implemented ( class::$variable )
- call of static class methodes implemented ( class::methode() )

01/16/2009
- reallow leading _ in variable names  {$_var}
- allow array of objects  {$array.index->methode()} syntax
- finished work on clear_cache and clear_cache_all methodes

01/11/2009
- added support of {literal} tag
- added support of {ldelim} and {rdelim} tags
- make code compatible to run with E_STRICT error setting

01/08/2009
- moved clear_assign and clear_all_assign to internal.templatebase.php
- added assign_by_ref, append and append_by_ref methodes

01/02/2009
- added load_filter methode
- fished work on filter handling
- optimization of plugin loading

12/30/2008
- added compiler support of registered object 
- added backtick support in doubled quoted strings for backward compatibility
- some minor bug fixes and improvments

12/23/2008
- fixed problem of not working "not" operator in if-expressions
- added handling of compiler function plugins
- finished work on (un)register_compiler_function methode
- finished work on (un)register_modifier methode
- plugin handling from plugins folder changed for modifier plugins
  deleted - internal.modifier.php
- added modifier chaining to parser 

12/17/2008
- finished (un)register_function methode
- finished (un)register_block methode
- added security checking for PHP functions in PHP templates
- plugin handling from plugins folder rewritten
  new - internal.plugin_handler.php
  deleted - internal.block.php
  deleted - internal.function.php
- removed plugin checking from security handler

12/16/2008

- new start of this change_log file