change_log.txt 72 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078
  1. ===== trunk =====
  2. ===== Smarty-3.1.11 =====
  3. 30.06.2012
  4. - bugfix {block.. hide} did not work as nested child (Forum Topic 22216)
  5. 25.06.2012
  6. - bugfix the default plugin handler did not allow static class methods for modifier (issue 85)
  7. 24.06.2012
  8. - bugfix escape modifier support for PHP < 5.2.3 (Forum Topic 21176)
  9. 11.06.2012
  10. - bugfix the patch for Topic 21856 did break tabs between tag attributes (Forum Topic 22124)
  11. ===== Smarty-3.1.10 =====
  12. 09.06.2012
  13. - bugfix the compiler did ignore registered compiler plugins for closing tags (Forum Topic 22094)
  14. - bugfix the patch for Topic 21856 did break multiline tags (Forum Topic 22124)
  15. ===== Smarty-3.1.9 =====
  16. 07.06.2012
  17. - bugfix fetch() and display() with relative paths (Issue 104)
  18. - bugfix treat "0000-00-00" as 0 in modifier.date_format (Issue 103)
  19. 24.05.2012
  20. - bugfix Smarty_Internal_Write_File::writeFile() could cause race-conditions on linux systems (Issue 101)
  21. - bugfix attribute parameter names of plugins may now contain also "-" and ":" (Forum Topic 21856)
  22. - bugfix add compile_id to cache key of of source (Issue 97)
  23. 22.05.2012
  24. - bugfix recursive {include} within {section} did fail (Smarty developer group)
  25. 12.05.2012
  26. - bugfix {html_options} did not properly escape values (Issue 98)
  27. 03.05.2012
  28. - bugfix make HTTP protocall version variable (issue 96)
  29. 02.05.2012
  30. - bugfix {nocache}{block}{plugin}... did produce wrong compiled code when caching is disabled (Forum Topic 21572, issue 95)
  31. 12.04.2012
  32. - bugfix Smarty did eat the linebreak after the <?xml...?> closing tag (Issue 93)
  33. - bugfix concurrent cache updates could create a warning (Forum Topic 21403)
  34. 08.04.2012
  35. - bugfix "\\" was not escaped correctly when generating nocache code (Forum Topic 21364)
  36. 30.03.2012
  37. - bugfix template inheritance did not throw exception when a parent template was deleted (issue 90)
  38. 27.03.2012
  39. - bugfix prefilter did run multiple times on inline subtemplates compiled into several main templates (Forum Topic 21325)
  40. - bugfix implement Smarty2's behaviour of variables assigned by reference in SmartyBC. {assign} will affect all references.
  41. (issue 88)
  42. 21.03.2012
  43. - bugfix compileAllTemplates() and compileAllConfig() did not return the number of compiled files (Forum Topic 21286)
  44. 13.03.2012
  45. - correction of yesterdays bugfix (Forum Topic 21175 and 21182)
  46. 12.03.2012
  47. - bugfix a double quoted string of "$foo" did not compile into PHP "$foo" (Forum Topic 21175)
  48. - bugfix template inheritance did set $merge_compiled_includes globally true
  49. 03.03.2012
  50. - optimization of compiling speed when same modifier was used several times
  51. 02.03.2012
  52. - enhancement the default plugin handler can now also resolve undefined modifier (Smarty::PLUGIN_MODIFIER)
  53. (Issue 85)
  54. ===== Smarty-3.1.8 =====
  55. 19.02.2012
  56. - bugfix {include} could result in a fatal error if used in appended or prepended nested {block} tags
  57. (reported by mh and Issue 83)
  58. - enhancement added Smarty special variable $smarty.template_object to return the current template object (Forum Topic 20289)
  59. 07.02.2012
  60. - bugfix increase entropy of internal function names in compiled and cached template files (Forum Topic 20996)
  61. - enhancement cacheable parameter added to default plugin handler, same functionality as in registerPlugin (request by calguy1000)
  62. 06.02.2012
  63. - improvement stream_resolve_include_path() added to Smarty_Internal_Get_Include_Path (Forum Topic 20980)
  64. - bugfix fetch('extends:foo.tpl') always yielded $source->exists == true (Forum Topic 20980)
  65. - added modifier unescape:"url", fix (Forum Topic 20980)
  66. - improvement replaced some calls of preg_replace with str_replace (Issue 73)
  67. 30.01.2012
  68. - bugfix Smarty_Security internal $_resource_dir cache wasn't properly propagated
  69. 27.01.2012
  70. - bugfix Smarty did not a template name of "0" (Forum Topic 20895)
  71. 20.01.2012
  72. - bugfix typo in Smarty_Internal_Get_IncludePath did cause runtime overhead (Issue 74)
  73. - improvment remove unneeded assigments (Issue 75 and 76)
  74. - fixed typo in template parser
  75. - bugfix output filter must not run before writing cache when template does contain nocache code (Issue 71)
  76. 02.01.2012
  77. - bugfix {block foo nocache} did not load plugins within child {block} in nocache mode (Forum Topic 20753)
  78. 29.12.2011
  79. - bugfix enable more entropy in Smarty_Internal_Write_File for "more uniqueness" and Cygwin compatibility (Forum Topic 20724)
  80. - bugfix embedded quotes in single quoted strings did not compile correctly in {nocache} sections (Forum Topic 20730)
  81. 28.12.2011
  82. - bugfix Smarty's internal header code must be excluded from postfilters (issue 71)
  83. 22.12.2011
  84. - bugfix the new lexer of 17.12.2011 did fail if mbstring.func_overload != 0 (issue 70) (Forum Topic 20680)
  85. - bugfix template inheritace did fail if mbstring.func_overload != 0 (issue 70) (Forum Topic 20680)
  86. 20.12.2011
  87. - bugfix template inheritance: {$smarty.block.child} in nested child {block} tags did not return
  88. content after {$smarty.block.child} (Forum Topic 20564)
  89. ===== Smarty-3.1.7 =====
  90. 18.12.2011
  91. - bugfix strings ending with " in multiline strings of config files failed to compile (issue #67)
  92. - added chaining to Smarty_Internal_Templatebase
  93. - changed unloadFilter() to not return a boolean in favor of chaining and API conformity
  94. - bugfix unregisterObject() raised notice when object to unregister did not exist
  95. - changed internals to use Smarty::$_MBSTRING ($_CHARSET, $_DATE_FORMAT) for better unit testing
  96. - added Smarty::$_UTF8_MODIFIER for proper PCRE charset handling (Forum Topic 20452)
  97. - added Smarty_Security::isTrustedUri() and Smarty_Security::$trusted_uri to validate
  98. remote resource calls through {fetch} and {html_image} (Forum Topic 20627)
  99. 17.12.2011
  100. - improvement of compiling speed by new handling of plain text blocks in the lexer/parser (issue #68)
  101. 16.12.2011
  102. - bugfix the source exits flag and timestamp was not setup when template was in php include path (issue #69)
  103. 9.12.2011
  104. - bugfix {capture} tags around recursive {include} calls did throw exception (Forum Topic 20549)
  105. - bugfix $auto_literal = false did not work with { block} tags in child templates (Forum Topic 20581)
  106. - bugfix template inheritance: do not include code of {include} in overloaded {block} into compiled
  107. parent template (Issue #66}
  108. - bugfix template inheritance: {$smarty.block.child} in nested child {block} tags did not return expected
  109. result (Forum Topic 20564)
  110. ===== Smarty-3.1.6 =====
  111. 30.11.2011
  112. - bugfix is_cache() for individual cached subtemplates with $smarty->caching = CACHING_OFF did produce
  113. an exception (Forum Topic 20531)
  114. 29.11.2011
  115. - bugfix added exception if the default plugin handler did return a not static callback (Forum Topic 20512)
  116. 25.11.2011
  117. - bugfix {html_select_date} and {html_slecet_time} did not default to current time if "time" was not specified
  118. since r4432 (issue 60)
  119. 24.11.2011
  120. - bugfix a subtemplate later used as main template did use old variable values
  121. 21.11.2011
  122. - bugfix cache file could include unneeded modifier plugins under certain condition
  123. 18.11.2011
  124. - bugfix declare all directory properties private to map direct access to getter/setter also on extended Smarty class
  125. 16.11.2011
  126. - bugfix Smarty_Resource::load() did not always return a proper resource handler (Forum Topic 20414)
  127. - added escape argument to html_checkboxes and html_radios (Forum Topic 20425)
  128. ===== Smarty-3.1.5 =====
  129. 14.11.2011
  130. - bugfix allow space between function name and open bracket (forum topic 20375)
  131. 09.11.2011
  132. - bugfix different behaviour of uniqid() on cygwin. See https://bugs.php.net/bug.php?id=34908
  133. (forum topic 20343)
  134. 01.11.2011
  135. - bugfix {if} and {while} tags without condition did not throw a SmartyCompilerException (Issue #57)
  136. - bugfix multiline strings in config files could fail on longer strings (reopened Issue #55)
  137. 22.10.2011
  138. - bugfix smarty_mb_from_unicode() would not decode unicode-points properly
  139. - bugfix use catch Exception instead UnexpectedValueException in
  140. clearCompiledTemplate to be PHP 5.2 compatible
  141. 21.10.2011
  142. - bugfix apostrophe in plugins_dir path name failed (forum topic 20199)
  143. - improvement sha1() for array keys longer than 150 characters
  144. - add Smarty::$allow_ambiguous_resources to activate unique resource handling (Forum Topic 20128)
  145. 20.10.2011
  146. - @silenced unlink() in Smarty_Internal_Write_File since debuggers go haywire without it.
  147. - bugfix Smarty::clearCompiledTemplate() threw an Exception if $cache_id was not present in $compile_dir when $use_sub_dirs = true.
  148. - bugfix {html_select_date} and {html_select_time} did not properly handle empty time arguments (Forum Topic 20190)
  149. - improvement removed unnecessary sha1()
  150. 19.10.2011
  151. - revert PHP4 constructor message
  152. - fixed PHP4 constructor message
  153. ===== Smarty-3.1.4 =====
  154. 19.10.2011
  155. - added exception when using PHP4 style constructor
  156. 16.10.2011
  157. - bugfix testInstall() did not propery check cache_dir and compile_dir
  158. 15.10.2011
  159. - bugfix Smarty_Resource and Smarty_CacheResource runtime caching (Forum Post 75264)
  160. 14.10.2011
  161. - bugfix unique_resource did not properly apply to compiled resources (Forum Topic 20128)
  162. - add locking to custom resources (Forum Post 75252)
  163. - add Smarty_Internal_Template::clearCache() to accompany isCached() fetch() etc.
  164. 13.10.2011
  165. - add caching for config files in Smarty_Resource
  166. - bugfix disable of caching after isCached() call did not work (Forum Topic 20131)
  167. - add concept unique_resource to combat potentially ambiguous template_resource values when custom resource handlers are used (Forum Topic 20128)
  168. - bugfix multiline strings in config files could fail on longer strings (Issue #55)
  169. 11.10.2011
  170. - add runtime checks for not matching {capture}/{/capture} calls (Forum Topic 20120)
  171. 10.10.2011
  172. - bugfix variable name typo in {html_options} and {html_checkboxes} (Issue #54)
  173. - bugfix <?xml> tag did create wrong output when caching enabled and the tag was in included subtemplate
  174. - bugfix Smarty_CacheResource_mysql example was missing strtotime() calls
  175. ===== Smarty-3.1.3 =====
  176. 07.10.2011
  177. - improvement removed html comments from {mailto} (Forum Topic 20092)
  178. - bugfix testInstall() would not show path to internal plugins_dir (Forum Post 74627)
  179. - improvement testInstall() now showing resolved paths and checking the include_path if necessary
  180. - bugfix html_options plugin did not handle object values properly (Issue #49, Forum Topic 20049)
  181. - improvement html_checkboxes and html_radios to accept null- and object values, and label_ids attribute
  182. - improvement removed some unnecessary count()s
  183. - bugfix parent pointer was not set when fetch() for other template was called on template object
  184. 06.10.2011
  185. - bugfix switch lexer internals depending on mbstring.func_overload
  186. - bugfix start_year and end_year of {html_select_date} did not use current year as offset base (Issue #53)
  187. 05.10.2011
  188. - bugfix of problem introduced with r4342 by replacing strlen() with isset()
  189. - add environment configuration issue with mbstring.func_overload Smarty cannot compensate for (Issue #45)
  190. - bugfix nofilter tag option did not disable default modifier
  191. - bugfix html_options plugin did not handle null- and object values properly (Issue #49, Forum Topic 20049)
  192. 04.10.2011
  193. - bugfix assign() in plugins called in subtemplates did change value also in parent template
  194. - bugfix of problem introduced with r4342 on math plugin
  195. - bugfix output filter should not run on individually cached subtemplates
  196. - add unloadFilter() method
  197. - bugfix has_nocache_code flag was not reset before compilation
  198. ===== Smarty-3.1.2 =====
  199. 03.10.2011
  200. - improvement add internal $joined_template_dir property instead computing it on the fly several times
  201. 01.10.2011
  202. - improvement replaced most in_array() calls by more efficient isset() on array_flip()ed haystacks
  203. - improvement replaced some strlen($foo) > 3 calls by isset($foo[3])
  204. - improvement Smarty_Internal_Utility::clearCompiledTemplate() removed redundant strlen()s
  205. 29.09.2011
  206. - improvement of Smarty_Internal_Config::loadConfigVars() dropped the in_array for index look up
  207. 28.09.2011
  208. - bugfix on template functions called nocache calling other template functions
  209. 27.09.2011
  210. - bugfix possible warning "attempt to modify property of non-object" in {section} (issue #34)
  211. - added chaining to Smarty_Internal_Data so $smarty->assign('a',1)->assign('b',2); is possible now
  212. - bugfix remove race condition when a custom resource did change timestamp during compilation
  213. - bugfix variable property did not work on objects variable in template
  214. - bugfix smarty_make_timestamp() failed to process DateTime objects properly
  215. - bugfix wrong resource could be used on compile check of custom resource
  216. 26.09.2011
  217. - bugfix repeated calls to same subtemplate did not make use of cached template object
  218. 24.09.2011
  219. - removed internal muteExpectedErrors() calls in favor of having the implementor call this once from his application
  220. - optimized muteExpectedErrors() to pass errors to the latest registered error handler, if appliccable
  221. - added compile_dir and cache_dir to list of muted directories
  222. - improvment better error message for undefined templates at {include}
  223. 23.09.2011
  224. - remove unused properties
  225. - optimization use real function instead anonymous function for preg_replace_callback
  226. - bugfix a relative {include} in child template blocks failed
  227. - bugfix direct setting of $template_dir, $config_dir, $plugins_dir in __construct() of an
  228. extended Smarty class created problems
  229. - bugfix error muting was not implemented for cache locking
  230. ===== Smarty 3.1.1 =====
  231. 22.09.2011
  232. - bugfix {foreachelse} does fail if {section} was nested inside {foreach}
  233. - bugfix debug.tpl did not display correctly when it was compiled with escape_html = true
  234. 21.09.2011
  235. - bugfix look for mixed case plugin file names as in 3.0 if not found try all lowercase
  236. - added $error_muting to suppress error messages even for badly implemented error_handlers
  237. - optimized autoloader
  238. - reverted ./ and ../ handling in fetch() and display() - they're allowed again
  239. 20.09.2011
  240. - bugfix removed debug echo output while compiling template inheritance
  241. - bugfix relative paths in $template_dir broke relative path resolving in {include "../foo.tpl"}
  242. - bugfix {include} did not work inside nested {block} tags
  243. - bugfix {assign} with scope root and global did not work in all cases
  244. 19.09.2011
  245. - bugfix regression in Smarty_CacheReource_KeyValueStore introduced by r4261
  246. - bugfix output filter shall not run on included subtemplates
  247. 18.09.2011
  248. - bugfix template caching did not care about file.tpl in different template_dir
  249. - bugfix {include $file} was broken when merge_compiled_incluges = true
  250. - bugfix {include} was broken when merge_compiled_incluges = true and same indluded template
  251. was used in different main templates in one compilation run
  252. - bugfix for Smarty2 style compiler plugins on unnamed attribute passing like {tag $foo $bar}
  253. - bugfix debug.tpl did not display correctly when it was compiled with escape_html = true
  254. 17.09.2011
  255. - bugfix lock_id for file resource would create invalid filepath
  256. - bugfix resource caching did not care about file.tpl in different template_dir
  257. ===== Smarty 3.1.0 =====
  258. 15/09/2011
  259. - optimization of {foreach}; call internal _count() method only when "total" or "last" {foreach} properties are used
  260. 11/09/2011
  261. - added unregisterObject() method
  262. 06/09/2011
  263. - bugfix isset() did not work in templates on config variables
  264. 03/09/2011
  265. - bugfix createTemplate() must default to cache_id and compile_id of Smarty object
  266. - bugfix Smarty_CacheResource_KeyValueStore must include $source->uid in cache filepath to keep templates with same
  267. name but different folders seperated
  268. - added cacheresource.apc.php example in demo folder
  269. 02/09/2011
  270. - bugfix cache lock file must use absolute filepath
  271. 01/09/2011
  272. - update of cache locking
  273. 30/08/2011
  274. - added locking mechanism to CacheResource API (implemented with File and KeyValueStores)
  275. 28/08/2011
  276. - bugfix clearCompileTemplate() did not work for specific template subfolder or resource
  277. 27/08/2011
  278. - bugfix {$foo|bar+1} did create syntax error
  279. 26/08/2011
  280. - bugfix when generating nocache code which contains double \
  281. - bugfix handle race condition if cache file was deleted between filemtime and include
  282. 17/08/2011
  283. - bugfix CacheResource_Custom bad internal fetch() call
  284. 15/08/2011
  285. - bugfix CacheResource would load content twice for KeyValueStore and Custom handlers
  286. 06/08/2011
  287. - bugfix {include} with scope attribute could execute in wrong scope
  288. - optimization of compile_check processing
  289. 03/08/2011
  290. - allow comment tags to comment {block} tags out in child templates
  291. 26/07/2011
  292. - bugfix experimental getTags() method did not work
  293. 24/07/2011
  294. - sure opened output buffers are closed on exception
  295. - bugfix {foreach} did not work on IteratorAggregate
  296. 22/07/2011
  297. - clear internal caches on clearAllCache(), clearCache(), clearCompiledTemplate()
  298. 21/07/2011
  299. - bugfix value changes of variable values assigned to Smarty object could not be seen on repeated $smarty->fetch() calls
  300. 17/07/2011
  301. - bugfix {$smarty.block.child} did drop a notice at undefined child
  302. 15/07/2011
  303. - bugfix individual cache_lifetime of {include} did not work correctly inside {block} tags
  304. - added caches for Smarty_Template_Source and Smarty_Template_Compiled to reduce I/O for multiple cache_id rendering
  305. 14/07/2011
  306. - made Smarty::loadPlugin() respect the include_path if required
  307. 13/07/2011
  308. - optimized internal file write functionality
  309. - bugfix PHP did eat line break on nocache sections
  310. - fixed typo of Smarty_Security properties $allowed_modifiers and $disabled_modifiers
  311. 06/07/2011
  312. - bugfix variable modifier must run befor gereral filtering/escaping
  313. 04/07/2011
  314. - bugfix use (?P<name>) syntax at preg_match as some pcre libraries failed on (?<name>)
  315. - some performance improvement when using generic getter/setter on template objects
  316. 30/06/2011
  317. - bugfix generic getter/setter of Smarty properties used on template objects did throw exception
  318. - removed is_dir and is_readable checks from directory setters for better performance
  319. 28/06/2011
  320. - added back support of php template resource as undocumented feature
  321. - bugfix automatic recompilation on version change could drop undefined index notice on old 3.0 cache and compiled files
  322. - update of README_3_1_DEV.txt and moved into the distribution folder
  323. - improvement show first characters of eval and string templates instead sha1 Uid in debug window
  324. ===== Smarty 3.1-RC1 =====
  325. 25/06/2011
  326. - revert change of 17/06/2011. $_smarty varibale removed. call loadPlugin() from inside plugin code if required
  327. - code cleanup, remove no longer used properties and methods
  328. - update of PHPdoc comments
  329. 23/06/2011
  330. - bugfix {html_select_date} would not respect current time zone
  331. 19/06/2011
  332. - added $errors argument to testInstall() functions to suppress output.
  333. - added plugin-file checks to testInstall()
  334. 18/06/2011
  335. - bugfix mixed use of same subtemplate inline and not inline in same script could cause a warning during compilation
  336. 17/06/2011
  337. - bugfix/change use $_smarty->loadPlugin() when loading nested depending plugins via loadPlugin
  338. - bugfix {include ... inline} within {block}...{/block} did fail
  339. 16/06/2011
  340. - bugfix do not overwrite '$smarty' template variable when {include ... scope=parent} is called
  341. - bugfix complete empty inline subtemplates did fail
  342. 15/06/2011
  343. - bugfix template variables where not accessable within inline subtemplates
  344. 12/06/2011
  345. - bugfix removed unneeded merging of template variable when fetching includled subtemplates
  346. 10/06/2011
  347. - made protected properties $template_dir, $plugins_dir, $cache_dir, $compile_dir, $config_dir accessible via magic methods
  348. 09/06/2011
  349. - fix smarty security_policy issue in plugins {html_image} and {fetch}
  350. 05/06/2011
  351. - update of SMARTY_VERSION
  352. - bugfix made getTags() working again
  353. 04/06/2011
  354. - allow extends resource in file attribute of {extends} tag
  355. 03/06/2011
  356. - added {setfilter} tag to set filters for variable output
  357. - added escape_html property to control autoescaping of variable output
  358. 27/05/2011
  359. - added allowed/disabled tags and modifiers in security for sandboxing
  360. 23/05/2011
  361. - added base64: and urlencode: arguments to eval and string resource types
  362. 22/05/2011
  363. - made time-attribute of {html_select_date} and {html_select_time} accept arrays as defined by attributes prefix and field_array
  364. 13/05/2011
  365. - remove setOption / getOption calls from SamrtyBC class
  366. 02/05/2011
  367. - removed experimental setOption() getOption() methods
  368. - output returned content also on opening tag calls of block plugins
  369. - rewrite of default plugin handler
  370. - compile code of variable filters for better performance
  371. 20/04/2011
  372. - allow {php} {include_php} tags and PHP_ALLOW handling only with the SmartyBC class
  373. - removed support of php template resource
  374. 20/04/2011
  375. - added extendsall resource example
  376. - optimization of template variable access
  377. - optimization of subtemplate handling {include}
  378. - optimization of template class
  379. 01/04/2011
  380. - bugfix quote handling in capitalize modifier
  381. 28/03/2011
  382. - bugfix stripslashes() requried when using PCRE e-modifier
  383. 04/03/2011
  384. - upgrade to new PHP_LexerGenerator version 0.4.0 for better performance
  385. 27/02/2011
  386. - ignore .svn folders when clearing cache and compiled files
  387. - string resources do not need a modify check
  388. 26/02/2011
  389. - replaced smarty_internal_wrapper by SmartyBC class
  390. - load utility functions as static methods instead through __call()
  391. - bugfix in extends resource when subresources are used
  392. - optimization of modify checks
  393. 25/02/2011
  394. - use $smarty->error_unassigned to control NOTICE handling on unassigned variables
  395. 21/02/2011
  396. - added new new compile_check mode COMPILECHECK_CACHEMISS
  397. - corrected new cloning behaviour of createTemplate()
  398. - do no longer store the compiler object as property in the compile_tag classes to avoid possible memory leaks
  399. during compilation
  400. 19/02/2011
  401. - optimizations on merge_compiled_includes handling
  402. - a couple of optimizations and bugfixes related to new resource structure
  403. 17/02/2011
  404. - changed ./ and ../ behaviour
  405. 14/02/2011
  406. - added {block ... hide} option to supress block if no child is defined
  407. 13/02/2011
  408. - update handling of recursive subtemplate calls
  409. - bugfix replace $smarty->triggerError() by exception in smarty_internal_resource_extends.php
  410. 12/02/2011
  411. - new class Smarty_Internal_TemplateBase with shared methods of Smarty and Template objects
  412. - optimizations of template processing
  413. - made register... methods permanet
  414. - code for default_plugin_handler
  415. - add automatic recompilation at version change
  416. 04/02/2011
  417. - change in Smarty_CacheResource_Custom
  418. - bugfix cache_lifetime did not compile correctly at {include} after last update
  419. - moved isCached processing into CacheResource class
  420. - bugfix new CacheResource API did not work with disabled compile_check
  421. 03/02/2011
  422. - handle template content as function to improve speed on multiple calls of same subtemplate and isCached()/display() calls
  423. - bugfixes and improvents in the new resource API
  424. - optimizations of template class code
  425. 25/01/2011
  426. - optimized function html_select_time
  427. 22/01/2011
  428. - added Smarty::$use_include_path configuration directive for Resource API
  429. 21/01/2011
  430. - optimized function html_select_date
  431. 19/01/2011
  432. - optimized outputfilter trimwhitespace
  433. 18/01/2011
  434. - bugfix Config to use Smarty_Resource to fetch sources
  435. - optimized Smarty_Security's isTrustedDir() and isTrustedPHPDir()
  436. 17/01/2011
  437. - bugfix HTTP headers for CGI SAPIs
  438. 16/01/2011
  439. - optimized internals of Smarty_Resource and Smarty_CacheResource
  440. 14/01/2011
  441. - added modifiercompiler escape to improve performance of escaping html, htmlall, url, urlpathinfo, quotes, javascript
  442. - added support to choose template_dir to load from: [index]filename.tpl
  443. 12/01/2011
  444. - added unencode modifier to revert results of encode modifier
  445. - added to_charset and from_charset modifier for character encoding
  446. 11/01/2011
  447. - added SMARTY_MBSTRING to generalize MBString detection
  448. - added argument $lc_rest to modifier.capitalize to lower-case anything but the first character of a word
  449. - changed strip modifier to consider unicode white-space, too
  450. - changed wordwrap modifier to accept UTF-8 strings
  451. - changed count_sentences modifier to consider unicode characters and treat sequences delimited by ? and ! as sentences, too
  452. - added argument $double_encode to modifier.escape (applies to html and htmlall only)
  453. - changed escape modifier to be UTF-8 compliant
  454. - changed textformat block to be UTF-8 compliant
  455. - optimized performance of mailto function
  456. - fixed spacify modifier so characters are not prepended and appended, made it unicode compatible
  457. - fixed truncate modifier to properly use mb_string if possible
  458. - removed UTF-8 frenzy from count_characters modifier
  459. - fixed count_words modifier to treat "hello-world" as a single word like str_count_words() does
  460. - removed UTF-8 frenzy from upper modifier
  461. - removed UTF-8 frenzy from lower modifier
  462. 01/01/2011
  463. - optimize smarty_modified_escape for hex, hexentity, decentity.
  464. 28/12/2010
  465. - changed $tpl_vars, $config_vars and $parent to belong to Smarty_Internal_Data
  466. - added Smarty::registerCacheResource() for dynamic cache resource object registration
  467. 27/12/2010
  468. - added Smarty_CacheResource API and refactored existing cache resources accordingly
  469. - added Smarty_CacheResource_Custom and Smarty_CacheResource_Mysql
  470. 26/12/2010
  471. - added Smarty_Resource API and refactored existing resources accordingly
  472. - added Smarty_Resource_Custom and Smarty_Resource_Mysql
  473. - bugfix Smarty::createTemplate() to return properly cloned template instances
  474. 24/12/2010
  475. - optimize smarty_function_escape_special_chars() for PHP >= 5.2.3
  476. ===== SVN 3.0 trunk =====
  477. 14/05/2011
  478. - bugfix error handling at stream resources
  479. 13/05/2011
  480. - bugfix condition starting with "-" did fail at {if} and {while} tags
  481. 22/04/2011
  482. - bugfix allow only fixed string as file attribute at {extends} tag
  483. 01/04/2011
  484. - bugfix do not run filters and default modifier when displaying the debug template
  485. - bugfix of embedded double quotes within multi line strings (""")
  486. 29/03/2011
  487. - bugfix on error message in smarty_internal_compile_block.php
  488. - bugfix mb handling in strip modifier
  489. - bugfix for Smarty2 style registered compiler function on unnamed attribute passing like {tag $foo $bar}
  490. 17/03/2011
  491. - bugfix on default {function} parameters when {function} was used in nocache sections
  492. - bugfix on compiler object destruction. compiler_object property was by mistake unset.
  493. 09/03/2011
  494. -bugfix a variable filter should run before modifers on an output tag (see change of 23/07/2010)
  495. 08/03/2011
  496. - bugfix loading config file without section should load only defaults
  497. 03/03/2011
  498. - bugfix "smarty" template variable was not recreated when cached templated had expired
  499. - bugfix internal rendered_content must be cleared after subtemplate was included
  500. 01/03/2011
  501. - bugfix replace modifier did not work in 3.0.7 on systems without multibyte support
  502. - bugfix {$smarty.template} could return in 3.0.7 parent template name instead of
  503. child name when it needed to compile
  504. 25/02/2011
  505. - bugfix for Smarty2 style compiler plugins on unnamed attribute passing like {tag $foo $bar}
  506. 24/02/2011
  507. - bugfix $smarty->clearCache('some.tpl') did by mistake cache the template object
  508. 18/02/2011
  509. - bugfix removed possible race condition when isCached() was called for an individually cached subtemplate
  510. - bugfix force default debug.tpl to be loaded by the file resource
  511. 17/02/2011
  512. -improvement not to delete files starting with '.' from cache and template_c folders on clearCompiledTemplate() and clearCache()
  513. 16/02/2011
  514. -fixed typo in exception message of Smarty_Internal_Template
  515. -improvement allow leading spaces on } tag closing if auto_literal is enabled
  516. 13/02/2011
  517. - bufix replace $smarty->triggerError() by exception
  518. - removed obsolete {popup_init..} plugin from demo templates
  519. - bugfix replace $smarty->triggerError() by exception in smarty_internal_resource_extends.php
  520. ===== Smarty 3.0.7 =====
  521. 09/02/2011
  522. - patched vulnerability when using {$smarty.template}
  523. 01/02/2011
  524. - removed assert() from config and template parser
  525. 31/01/2011
  526. - bugfix the lexer/parser did fail on special characters like VT
  527. 16/01/2011
  528. -bugfix of ArrayAccess object handling in internal _count() method
  529. -bugfix of Iterator object handling in internal _count() method
  530. 14/01/2011
  531. -bugfix removed memory leak while processing compileAllTemplates
  532. 12/01/2011
  533. - bugfix in {if} and {while} tag compiler when using assignments as condition and nocache mode
  534. 10/01/2011
  535. - bugfix when using {$smarty.block.child} and name of {block} was in double quoted string
  536. - bugfix updateParentVariables() was called twice when leaving {include} processing
  537. - bugfix mb_str_replace in replace and escape modifiers work with utf8
  538. 31/12/2010
  539. - bugfix dynamic configuration of $debugging_crtl did not work
  540. - bugfix default value of $config_read_hidden changed to false
  541. - bugfix format of attribute array on compiler plugins
  542. - bugfix getTemplateVars() could return value from wrong scope
  543. 28/12/2010
  544. - bugfix multiple {append} tags failed to compile.
  545. 22/12/2010
  546. - update do not clone the Smarty object an internal createTemplate() calls to increase performance
  547. 21/12/2010
  548. - update html_options to support class and id attrs
  549. 17/12/2010
  550. - bugfix added missing support of $cache_attrs for registered plugins
  551. 15/12/2010
  552. - bugfix assignment as condition in {while} did drop an E_NOTICE
  553. 14/12/2010
  554. - bugfix when passing an array as default parameter at {function} tag
  555. 13/12/2010
  556. - bugfix {$smarty.template} in child template did not return right content
  557. - bugfix Smarty3 did not search the PHP include_path for template files
  558. ===== Smarty 3.0.6 =====
  559. 12/12/2010
  560. - bugfix fixed typo regarding yesterdays change to allow streamWrapper
  561. 11/12/2010
  562. - bugfix nested block tags in template inheritance child templates did not work correctly
  563. - bugfix {$smarty.current_dir} in child template did not point to dir of child template
  564. - bugfix changed code when writing temporary compiled files to allow stream_wrapper
  565. 06/12/2010
  566. - bugfix getTemplateVars() should return 'null' instead dropping E_NOTICE on an unassigned variable
  567. 05/12/2010
  568. - bugfix missing declaration of $smarty in Smarty class
  569. - bugfix empty($foo) in {if} did drop a notice when $foo was not assigned
  570. 01/12/2010
  571. - improvement of {debug} tag output
  572. 27/11/2010
  573. -change run output filter before cache file is written. (same as in Smarty2)
  574. 24/11/2011
  575. -bugfix on parser at !$foo|modifier
  576. -change parser logic when assignments used as condition in {if] and {while} to allow assign to array element
  577. 23/11/2011
  578. -bugfix allow integer as attribute name in plugin calls
  579. -change trimm whitespace from error message, removed long list of expected tokens
  580. 22/11/2010
  581. - bugfix on template inheritance when an {extends} tag was inserted by a prefilter
  582. - added error message for illegal variable file attributes at {extends...} tags
  583. ===== Smarty 3.0.5 =====
  584. 19/11/2010
  585. - bugfix on block plugins with modifiers
  586. 18/11/2010
  587. - change on handling of unassigned template variable -- default will drop E_NOTICE
  588. - bugfix on Smarty2 wrapper load_filter() did not work
  589. 17/11/2010
  590. - bugfix on {call} with variable function name
  591. - bugfix on {block} if name did contain '-'
  592. - bugfix in function.fetch.php , referece to undefined $smarty
  593. 16/11/2010
  594. - bugfix whitespace in front of "<?php" in smarty_internal_compile_private_block_plugin.php
  595. - bugfix {$smarty.now} did compile incorrectly
  596. - bugfix on reset(),end(),next(),prev(),current() within templates
  597. - bugfix on default parameter for {function}
  598. 15/11/2010
  599. - bugfix when using {$smarty.session} as object
  600. - bugfix scoping problem on $smarty object passed to filters
  601. - bugfix captured content could not be accessed globally
  602. - bugfix Smarty2 wrapper functions could not be call from within plugins
  603. ===== Smarty 3.0.4 =====
  604. 14/11/2010
  605. - bugfix isset() did not allow multiple parameter
  606. - improvment of some error messages
  607. - bugfix html_image did use removed property $request_use_auto_globals
  608. - small performace patch in Smarty class
  609. 13/11/2010
  610. - bugfix overloading problem when $smarty->fetch()/display() have been used in plugins
  611. (introduced with 3.0.2)
  612. - code cleanup
  613. ===== Smarty 3.0.3 =====
  614. 13/11/2010
  615. - bugfix on {debug}
  616. - reverted location of loadPlugin() to Smarty class
  617. - fixed comments in plugins
  618. - fixed internal_config (removed unwanted code line)
  619. - improvement remove last linebreak from {function} definition
  620. ===== Smarty 3.0.2 =====
  621. 12/11/2010
  622. - reactivated $error_reporting property handling
  623. - fixed typo in compile_continue
  624. - fixed security in {fetch} plugin
  625. - changed back plugin parameters to two. second is template object
  626. with transparent access to Smarty object
  627. - fixed {config_load} scoping form compile time to run time
  628. ===== Smarty 3.0.0 =====
  629. 11/11/2010
  630. - major update including some API changes
  631. 10/11/2010
  632. - observe compile_id also for config files
  633. 09/11/2010
  634. -bugfix on complex expressions as start value for {for} tag
  635. request_use_auto_globals
  636. 04/11/2010
  637. - bugfix do not allow access of dynamic and private object members of assigned objects when
  638. security is enabled.
  639. 01/11/2010
  640. - bugfix related to E_NOTICE change. {if empty($foo)} did fail when $foo contained a string
  641. 28/10/2010
  642. - bugfix on compiling modifiers within $smarty special vars like {$smarty.post.{$foo|lower}}
  643. 27/10/2010
  644. - bugfix default parameter values did not work for template functions included with {include}
  645. 25/10/2010
  646. - bugfix for E_NOTICE change, array elements did not work as modifier parameter
  647. 20/10/2010
  648. - bugfix for the E_NOTICE change
  649. 19/10/2010
  650. - change Smarty does no longer mask out E_NOTICE by default during template processing
  651. 13/10/2010
  652. - bugfix removed ambiguity between ternary and stream variable in template syntax
  653. - bugfix use caching properties of template instead of smarty object when compiling child {block}
  654. - bugfix {*block}...{/block*} did throw an exception in template inheritance
  655. - bugfix on template inheritance using nested eval or string resource in {extends} tags
  656. - bugfix on output buffer handling in isCached() method
  657. ===== RC4 =====
  658. 01/10/2010
  659. - added {break} and {continue} tags for flow control of {foreach},{section},{for} and {while} loops
  660. - change of 'string' resource. It's no longer evaluated and compiled files are now stored
  661. - new 'eval' resource which evaluates a template without saving the compiled file
  662. - change in isCached() method to allow multiple calls for the same template
  663. 25/09/2010
  664. - bugfix on some compiling modifiers
  665. 24/09/2010
  666. - bugfix merge_compiled_includes flag was not restored correctly in {block} tag
  667. 22/09/2010
  668. - bugfix on default modifier
  669. 18/09/2010
  670. - bugfix untility compileAllConfig() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS
  671. - bugfix on templateExists() for extends resource
  672. 17/09/2010
  673. - bugfix {$smarty.template} and {$smarty.current_dir} did not compile correctly within {block} tags
  674. - bugfix corrected error message on missing template files in extends resource
  675. - bugfix untility compileAllTemplates() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS
  676. 16/09/2010
  677. - bugfix when a doublequoted modifier parameter did contain Smarty tags and ':'
  678. 15/09/2010
  679. - bugfix resolving conflict between '<%'/'%>' as custom Smarty delimiter and ASP tags
  680. - use ucfirst for resource name on internal resource class names
  681. 12/09/2010
  682. - bugfix for change of 08/09/2010 (final {block} tags in subtemplates did not produce correct results)
  683. 10/09/2010
  684. - bugfix for change of 08/09/2010 (final {block} tags in subtemplates did not produce correct results)
  685. 08/09/2010
  686. - allow multiple template inheritance branches starting in subtemplates
  687. 07/09/2010
  688. - bugfix {counter} and {cycle} plugin assigned result to smarty variable not in local(template) scope
  689. - bugfix templates containing just {strip} {/strip} tags did produce an error
  690. 23/08/2010
  691. - fixed E_STRICT errors for uninitialized variables
  692. 22/08/2010
  693. - added attribute cache_id to {include} tag
  694. 13/08/2010
  695. - remove exception_handler property from Smarty class
  696. - added Smarty's own exceptions SmartyException and SmartyCompilerException
  697. 09/08/2010
  698. - bugfix on modifier with doublequoted strings as parameter containing embedded tags
  699. 06/08/2010
  700. - bugfix when cascading some modifier like |strip|strip_tags modifier
  701. 05/08/2010
  702. - added plugin type modifiercompiler to produce compiled modifier code
  703. - changed standard modifier plugins to the compiling versions whenever possible
  704. - bugfix in nocache sections {include} must not cache the subtemplate
  705. 02/08/2010
  706. - bugfix strip did not work correctly in conjunction with comment lines
  707. 31/07/2010
  708. - bugfix on nocache attribute at {assign} and {append}
  709. 30/07/2010
  710. - bugfix passing scope attributes in doublequoted strings did not work at {include} {assign} and {append}
  711. 25/07/2010
  712. - another bugfix of change from 23/07/2010 when compiling modifer
  713. 24/07/2010
  714. - bugfix of change from 23/07/2010 when compiling modifer
  715. 23/07/2010
  716. - changed execution order. A variable filter does now run before modifiers on output of variables
  717. - bugfix use always { and } as delimiter for debug.tpl
  718. 22/07/2010
  719. - bugfix in templateExists() method
  720. 20/07/2010
  721. - fixed handling of { strip } tag with whitespaces
  722. 15/07/2010
  723. - bufix {$smarty.template} does include now the relative path, not just filename
  724. ===== RC3 =====
  725. 15/07/2010
  726. - make the date_format modifier work also on objects of the DateTime class
  727. - implementation of parsetrees in the parser to close security holes and remove unwanted empty line in HTML output
  728. 08/07/2010
  729. - bugfix on assigning multidimensional arrays within templates
  730. - corrected bugfix for truncate modifier
  731. 07/07/2010
  732. - bugfix the truncate modifier needs to check if the string is utf-8 encoded or not
  733. - bugfix support of script files relative to trusted_dir
  734. 06/07/2010
  735. - create exception on recursive {extends} calls
  736. - fixed reported line number at "unexpected closing tag " exception
  737. - bugfix on escape:'mail' modifier
  738. - drop exception if 'item' variable is equal 'from' variable in {foreach} tag
  739. 01/07/2010
  740. - removed call_user_func_array calls for optimization of compiled code when using registered modifiers and plugins
  741. 25/06/2010
  742. - bugfix escaping " when block tags are used within doublequoted strings
  743. 24/06/2010
  744. - replace internal get_time() calls with standard PHP5 microtime(true) calls in Smarty_Internal_Utility
  745. - added $smarty->register->templateClass() and $smarty->unregister->templateClass() methods for supporting static classes with namespace
  746. 22/06/2010
  747. - allow spaces between typecast and value in template syntax
  748. - bugfix get correct count of traversables in {foreach} tag
  749. 21/06/2010
  750. - removed use of PHP shortags SMARTY_PHP_PASSTHRU mode
  751. - improved speed of cache->clear() when a compile_id was specified and use_sub_dirs is true
  752. 20/06/2010
  753. - replace internal get_time() calls with standard PHP5 microtime(true) calls
  754. - closed security hole when php.ini asp_tags = on
  755. 18/06/2010
  756. - added __toString method to the Smarty_Variable class
  757. 14/06/2010
  758. - make handling of Smarty comments followed by newline BC to Smarty2
  759. ===== RC2 =====
  760. 13/06/2010
  761. - bugfix Smarty3 did not handle hexadecimals like 0x0F as numerical value
  762. - bugifx Smarty3 did not accept numerical constants like .1 or 2. (without a leading or trailing digit)
  763. 11/06/2010
  764. - bugfix the lexer did fail on larger {literal} ... {/literal} sections
  765. 03/06/2010
  766. - bugfix on calling template functions like Smarty tags
  767. 01/06/2010
  768. - bugfix on template functions used with template inheritance
  769. - removed /* vim: set expandtab: */ comments
  770. - bugfix of auto literal problem introduce with fix of 31/05/2010
  771. 31/05/2010
  772. - bugfix the parser did not allow some smarty variables with special name like $for, $if, $else and others.
  773. 27/05/2010
  774. - bugfix on object chaining using variable properties
  775. - make scope of {counter} and {cycle} tags again global as in Smarty2
  776. 26/05/2010
  777. - bugfix removed decrepated register_resource call in smarty_internal_template.php
  778. 25/05/2010
  779. - rewrite of template function handling to improve speed
  780. - bugfix on file dependency when merge_compiled_includes = true
  781. 16/05/2010
  782. - bugfix when passing parameter with numeric name like {foo 1='bar' 2='blar'}
  783. 14/05/2010
  784. - bugfix compile new config files if compile_check and force_compile = false
  785. - added variable static classes names to template syntax
  786. 11/05/2010
  787. - bugfix make sure that the cache resource is loaded in all conditions when template methods getCached... are called externally
  788. - reverted the change 0f 30/04/2010. With the exception of forward references template functions can be again called by a standard tag.
  789. 10/05/2010
  790. - bugfix on {foreach} and {for} optimizations of 27/04/2010
  791. 09/05/2010
  792. - update of template and config file parser because of minor parser generator bugs
  793. 07/05/2010
  794. - bugfix on {insert}
  795. 06/05/2010
  796. - bugfix when merging compiled templates and objects are passed as parameter of the {include} tag
  797. 05/05/2010
  798. - bugfix on {insert} to cache parameter
  799. - implementation of $smarty->default_modifiers as in Smarty2
  800. - bugfix on getTemplateVars method
  801. 01/05/2010
  802. - bugfix on handling of variable method names at object chaning
  803. 30/04/2010
  804. - bugfix when comparing timestamps in sysplugins/smarty_internal_config.php
  805. - work around of a substr_compare bug in older PHP5 versions
  806. - bugfix on template inheritance for tag names starting with "block"
  807. - bugfix on {function} tag with name attribute in doublequoted strings
  808. - fix to make calling of template functions unambiguously by madatory usage of the {call} tag
  809. ===== RC1 =====
  810. 27/04/2010
  811. - change default of $debugging_ctrl to 'NONE'
  812. - optimization of compiled code of {foreach} and {for} loops
  813. - change of compiler for config variables
  814. 27/04/2010
  815. - bugfix in $smarty->cache->clear() method. (do not cache template object)
  816. 17/04/2010
  817. - security fix in {math} plugin
  818. 12/04/2010
  819. - bugfix in smarty_internal_templatecompilerbase (overloaded property)
  820. - removed parser restrictions in using true,false and null as ID
  821. 07/04/2010
  822. - bugfix typo in smarty_internal_templatecompilerbase
  823. 31/03/2010
  824. - compile locking by touching old compiled files to avoid concurrent compilations
  825. 29/03/2010
  826. - bugfix allow array definitions as modifier parameter
  827. - bugfix observe compile_check property when loading config files
  828. - added the template object as third filter parameter
  829. 25/03/2010
  830. - change of utility->compileAllTemplates() log messages
  831. - bugfix on nocache code in {function} tags
  832. - new method utility->compileAllConfig() to compile all config files
  833. 24/03/2010
  834. - bugfix on register->modifier() error messages
  835. 23/03/2010
  836. - bugfix on template inheritance when calling multiple child/parent relations
  837. - bugfix on caching mode SMARTY_CACHING_LIFETIME_SAVED and cache_lifetime = 0
  838. 22/03/2010
  839. - bugfix make directory separator operating system independend in compileAllTemplates()
  840. 21/03/2010
  841. - removed unused code in compileAllTemplates()
  842. 19/03/2010
  843. - bugfix for multiple {/block} tags on same line
  844. 17/03/2010
  845. - bugfix make $smarty->cache->clear() function independent from caching status
  846. 16/03/2010
  847. - bugfix on assign attribute at registered template objects
  848. - make handling of modifiers on expression BC to Smarty2
  849. 15/03/2010
  850. - bugfix on block plugin calls
  851. 11/03/2010
  852. - changed parsing of <?php and ?> back to Smarty2 behaviour
  853. 08/03/2010
  854. - bugfix on uninitialized properties in smarty_internal_template
  855. - bugfix on $smarty->disableSecurity()
  856. 04/03/2010
  857. - bugfix allow uppercase chars in registered resource names
  858. - bugfix on accessing chained objects of static classes
  859. 01/03/2010
  860. - bugfix on nocache code in {block} tags if child template was included by {include}
  861. 27/02/2010
  862. - allow block tags inside double quoted string
  863. 26/02/2010
  864. - cache modified check implemented
  865. - support of access to a class constant from an object (since PHP 5.3)
  866. 24/02/2010
  867. - bugfix on expressions in doublequoted string enclosed in backticks
  868. - added security property $static_classes for static class security
  869. 18/02/2010
  870. - bugfix on parsing Smarty tags inside <?xml ... ?>
  871. - bugfix on truncate modifier
  872. 17/02/2010
  873. - removed restriction that modifiers did require surrounding parenthesis in some cases
  874. - added {$smarty.block.child} special variable for template inheritance
  875. 16/02/2010
  876. - bugfix on <?xml ... ?> tags for all php_handling modes
  877. - bugfix on parameter of variablefilter.htmlspecialchars.php plugin
  878. 14/02/2010
  879. - added missing _plugins property in smarty.class.php
  880. - bugfix $smarty.const... inside doublequoted strings and backticks was compiled into wrong PHP code
  881. 12/02/2010
  882. - bugfix on nested {block} tags
  883. - changed Smarty special variable $smarty.parent to $smarty.block.parent
  884. - added support of nested {bock} tags
  885. 10/02/2010
  886. - avoid possible notice on $smarty->cache->clear(...), $smarty->clear_cache(....)
  887. - allow Smarty tags inside <? ... ?> tags in SMARTY_PHP_QUOTE and SMARTY_PHP_PASSTHRU mode
  888. - bugfix at new "for" syntax like {for $x=1 to 10 step 2}
  889. 09/02/2010
  890. - added $smarty->_tag_stack for tracing block tag hierarchy
  891. 08/02/2010
  892. - bugfix use template fullpath at §smarty->cache->clear(...), $smarty->clear_cache(....)
  893. - bugfix of cache filename on extended templates when force_compile=true
  894. 07/02/2010
  895. - bugfix on changes of 05/02/2010
  896. - preserve line endings type form template source
  897. - API changes (see README file)
  898. 05/02/2010
  899. - bugfix on modifier and block plugins with same name
  900. 02/02/2010
  901. - retaining newlines at registered functions and function plugins
  902. 01/25/2010
  903. - bugfix cache resource was not loaded when caching was globally off but enabled at a template object
  904. - added test that $_SERVER['SCRIPT_NAME'] does exist in Smarty.class.php
  905. 01/22/2010
  906. - new method $smarty->createData([$parent]) for creating a data object (required for bugfixes below)
  907. - bugfix config_load() method now works also on a data object
  908. - bugfix get_config_vars() method now works also on a data and template objects
  909. - bugfix clear_config() method now works also on a data and template objects
  910. 01/19/2010
  911. - bugfix on plugins if same plugin was called from a nocache section first and later from a cached section
  912. ###beta 7###
  913. 01/17/2010
  914. - bugfix on $smarty.const... in double quoted strings
  915. 01/16/2010
  916. - internal change of config file lexer/parser on handling of section names
  917. - bugfix on registered objects (format parameter of register_object was not handled correctly)
  918. 01/14/2010
  919. - bugfix on backslash within single quoted strings
  920. - bugfix allow absolute filepath for config files
  921. - bugfix on special Smarty variable $smarty.cookies
  922. - revert handling of newline on no output tags like {if...}
  923. - allow special characters in config file section names for Smarty2 BC
  924. 01/13/2010
  925. - bugfix on {if} tags
  926. 01/12/2010
  927. - changed back modifer handling in parser. Some restrictions still apply:
  928. if modifiers are used in side {if...} expression or in mathematical expressions
  929. parentheses must be used.
  930. - bugfix the {function..} tag did not accept the name attribute in double quotes
  931. - closed possible security hole at <?php ... ?> tags
  932. - bugfix of config file parser on large config files
  933. ###beta 6####
  934. 01/11/2010
  935. - added \n to the compiled code of the {if},{else},{elseif},{/if} tags to get output of newlines as expected by the template source
  936. - added missing support of insert plugins
  937. - added optional nocache attribute to {block} tags in parent template
  938. - updated <?php...?> handling supporting now heredocs and newdocs. (thanks to Thue Jnaus Kristensen)
  939. 01/09/2010
  940. - bugfix on nocache {block} tags in parent templates
  941. 01/08/2010
  942. - bugfix on variable filters. filter/nofilter attributes did not work on output statements
  943. 01/07/2010
  944. - bugfix on file dependency at template inheritance
  945. - bugfix on nocache code at template inheritance
  946. 01/06/2010
  947. - fixed typo in smarty_internal_resource_registered
  948. - bugfix for custom delimiter at extends resource and {extends} tag
  949. 01/05/2010
  950. - bugfix sha1() calculations at extends resource and some general improvments on sha1() handling
  951. 01/03/2010
  952. - internal change on building cache files
  953. 01/02/2010
  954. - update cached_timestamp at the template object after cache file is written to avoid possible side effects
  955. - use internally always SMARTY_CACHING_LIFETIME_* constants
  956. 01/01/2010
  957. - bugfix for obtaining plugins which must be included (related to change of 12/30/2009)
  958. - bugfix for {php} tag (trow an exception if allow_php_tag = false)
  959. 12/31/2009
  960. - optimization of generated code for doublequoted strings containing variables
  961. - rewrite of {function} tag handling
  962. - can now be declared in an external subtemplate
  963. - can contain nocache sections (nocache_hash handling)
  964. - can be called in noccache sections (nocache_hash handling)
  965. - new {call..} tag to call template functions with a variable name {call name=$foo}
  966. - fixed nocache_hash handling in merged compiled templates
  967. 12/30/2009
  968. - bugfix for plugins defined in the script as smarty_function_foo
  969. 12/29/2009
  970. - use sha1() for filepath encoding
  971. - updates on nocache_hash handling
  972. - internal change on merging some data
  973. - fixed cache filename for custom resources
  974. 12/28/2009
  975. - update for security fixes
  976. - make modifier plugins always trusted
  977. - fixed bug loading modifiers in child template at template inheritance
  978. 12/27/2009
  979. --- this is a major update with a couple of internal changes ---
  980. - new config file lexer/parser (thanks to Thue Jnaus Kristensen)
  981. - template lexer/parser fixes for PHP and {literal} handing (thanks to Thue Jnaus Kristensen)
  982. - fix on registered plugins with different type but same name
  983. - rewrite of plugin handling (optimized execution speed)
  984. - closed a security hole regarding PHP code injection into cache files
  985. - fixed bug in clear cache handling
  986. - Renamed a couple of internal classes
  987. - code cleanup for merging compiled templates
  988. - couple of runtime optimizations (still not all done)
  989. - update of getCachedTimestamp()
  990. - fixed bug on modifier plugins at nocache output
  991. 12/19/2009
  992. - bugfix on comment lines in config files
  993. 12/17/2009
  994. - bugfix of parent/global variable update at included/merged subtemplates
  995. - encode final template filepath into filename of compiled and cached files
  996. - fixed {strip} handling in auto literals
  997. 12/16/2009
  998. - update of changelog
  999. - added {include file='foo.tpl' inline} inline option to merge compiled code of subtemplate into the calling template
  1000. 12/14/2009
  1001. - fixed sideefect of last modification (objects in array index did not work anymore)
  1002. 12/13/2009
  1003. - allow boolean negation ("!") as operator on variables outside {if} tag
  1004. 12/12/2009
  1005. - bugfix on single quotes inside {function} tag
  1006. - fix short append/prepend attributes in {block} tags
  1007. 12/11/2009
  1008. - bugfix on clear_compiled_tpl (avoid possible warning)
  1009. 12/10/2009
  1010. - bugfix on {function} tags and template inheritance
  1011. 12/05/2009
  1012. - fixed problem when a cached file was fetched several times
  1013. - removed unneeded lexer code
  1014. 12/04/2009
  1015. - added max attribute to for loop
  1016. - added security mode allow_super_globals
  1017. 12/03/2009
  1018. - template inheritance: child templates can now call functions defined by the {function} tag in the parent template
  1019. - added {for $foo = 1 to 5 step 2} syntax
  1020. - bugfix for {$foo.$x.$y.$z}
  1021. 12/01/2009
  1022. - fixed parsing of names of special formated tags like if,elseif,while,for,foreach
  1023. - removed direct access to constants in templates because of some syntax problems
  1024. - removed cache resource plugin for mysql from the distribution
  1025. - replaced most hard errors (exceptions) by softerrors(trigger_error) in plugins
  1026. - use $template_class property for template class name when compiling {include},{eval} and {extends} tags
  1027. 11/30/2009
  1028. - map 'true' to SMARTY_CACHING_LIFETIME_CURRENT for the $smarty->caching parameter
  1029. - allow {function} tags within {block} tags
  1030. 11/28/2009
  1031. - ignore compile_id at debug template
  1032. - added direct access to constants in templates
  1033. - some lexer/parser optimizations
  1034. 11/27/2009
  1035. - added cache resource MYSQL plugin
  1036. 11/26/2009
  1037. - bugfix on nested doublequoted strings
  1038. - correct line number on unknown tag error message
  1039. - changed {include} compiled code
  1040. - fix on checking dynamic varibales with error_unassigned = true
  1041. 11/25/2009
  1042. - allow the following writing for boolean: true, TRUE, True, false, FALSE, False
  1043. - {strip} tag functionality rewritten
  1044. 11/24/2009
  1045. - bugfix for $smarty->config_overwrite = false
  1046. 11/23/2009
  1047. - suppress warnings on unlink caused by race conditions
  1048. - correct line number on unknown tag error message
  1049. ------- beta 5
  1050. 11/23/2009
  1051. - fixed configfile parser for text starting with a numeric char
  1052. - the default_template_handler_func may now return a filepath to a template source
  1053. 11/20/2009
  1054. - bugfix for empty config files
  1055. - convert timestamps of registered resources to integer
  1056. 11/19/2009
  1057. - compiled templates are no longer touched with the filemtime of template source
  1058. 11/18/2009
  1059. - allow integer as attribute name in plugin calls
  1060. ------- beta 4
  1061. 11/18/2009
  1062. - observe umask settings when setting file permissions
  1063. - avoide unneeded cache file creation for subtemplates which did occur in some situations
  1064. - make $smarty->_current_file available during compilation for Smarty2 BC
  1065. 11/17/2009
  1066. - sanitize compile_id and cache_id (replace illegal chars with _)
  1067. - use _dir_perms and _file_perms properties at file creation
  1068. - new constant SMARTY_RESOURCE_DATE_FORMAT (default '%b %e, %Y') which is used as default format in modifier date_format
  1069. - added {foreach $array as $key=>$value} syntax
  1070. - renamed extend tag and resource to extends: {extends file='foo.tol'} , $smarty->display('extends:foo.tpl|bar.tpl);
  1071. - bugfix cycle plugin
  1072. 11/15/2009
  1073. - lexer/parser optimizations on quoted strings
  1074. 11/14/2009
  1075. - bugfix on merging compiled templates when source files got removed or renamed.
  1076. - bugfix modifiers on registered object tags
  1077. - fixed locaion where outputfilters are running
  1078. - fixed config file definitions at EOF
  1079. - fix on merging compiled templates with nocache sections in nocache includes
  1080. - parser could run into a PHP error on wrong file attribute
  1081. 11/12/2009
  1082. - fixed variable filenames in {include_php} and {insert}
  1083. - added scope to Smarty variables in the {block} tag compiler
  1084. - fix on nocache code in child {block} tags
  1085. 11/11/2009
  1086. - fixed {foreachelse}, {forelse}, {sectionelse} compiled code at nocache variables
  1087. - removed checking for reserved variables
  1088. - changed debugging handling
  1089. 11/10/2009
  1090. - fixed preg_qoute on delimiters
  1091. 11/09/2009
  1092. - lexer/parser bugfix
  1093. - new SMARTY_SPL_AUTOLOAD constant to control the autoloader option
  1094. - bugfix for {function} block tags in included templates
  1095. 11/08/2009
  1096. - fixed alphanumeric array index
  1097. - bugfix on complex double quoted strings
  1098. 11/05/2009
  1099. - config_load method can now be called on data and template objects
  1100. 11/04/2009
  1101. - added typecasting support for template variables
  1102. - bugfix on complex indexed special Smarty variables
  1103. 11/03/2009
  1104. - fixed parser error on objects with special smarty vars
  1105. - fixed file dependency for {incude} inside {block} tag
  1106. - fixed not compiling on non existing compiled templates when compile_check = false
  1107. - renamed function names of autoloaded Smarty methods to Smarty_Method_....
  1108. - new security_class property (default is Smarty_Security)
  1109. 11/02/2009
  1110. - added neq,lte,gte,mod as aliases to if conditions
  1111. - throw exception on illegal Smarty() constructor calls
  1112. 10/31/2009
  1113. - change of filenames in sysplugins folder for internal spl_autoload function
  1114. - lexer/parser changed for increased compilation speed
  1115. 10/27/2009
  1116. - fixed missing quotes in include_php.php
  1117. 10/27/2009
  1118. - fixed typo in method.register_resource
  1119. - pass {} through as literal
  1120. 10/26/2009
  1121. - merge only compiled subtemplates into the compiled code of the main template
  1122. 10/24/2009
  1123. - fixed nocache vars at internal block tags
  1124. - fixed merging of recursive includes
  1125. 10/23/2009
  1126. - fixed nocache var problem
  1127. 10/22/2009
  1128. - fix trimwhitespace outputfilter parameter
  1129. 10/21/2009
  1130. - added {$foo++}{$foo--} syntax
  1131. - buxfix changed PHP "if (..):" to "if (..){" because of possible bad code when concenating PHP tags
  1132. - autoload Smarty internal classes
  1133. - fixed file dependency for config files
  1134. - some code optimizations
  1135. - fixed function definitions on some autoloaded methods
  1136. - fixed nocache variable inside if condition of {if} tag
  1137. 10/20/2009
  1138. - check at compile time for variable filter to improve rendering speed if no filter is used
  1139. - fixed bug at combination of {elseif} tag and {...} in double quoted strings of static class parameter
  1140. 10/19/2009
  1141. - fixed compiled template merging on variable double quoted strings as name
  1142. - fixed bug in caching mode 2 and cache_lifetime -1
  1143. - fixed modifier support on block tags
  1144. 10/17/2009
  1145. - remove ?>\n<?php and ?><?php sequences from compiled template
  1146. 10/15/2009
  1147. - buxfix on assigning array elements inside templates
  1148. - parser bugfix on array access
  1149. 10/15/2009
  1150. - allow bit operator '&' inside {if} tag
  1151. - implementation of ternary operator
  1152. 10/13/2009
  1153. - do not recompile evaluated templates if reused just with other data
  1154. - recompile config files when config properties did change
  1155. - some lexer/parser otimizations
  1156. 10/11/2009
  1157. - allow {block} tags inside included templates
  1158. - bugfix for resource plugins in Smarty2 format
  1159. - some optimizations of internal.template.php
  1160. 10/11/2009
  1161. - fixed bug when template with same name is used with different data objects
  1162. - fixed bug with double quoted name attribute at {insert} tag
  1163. - reenabled assign_by_ref and append_by_ref methods
  1164. 10/07/2009
  1165. - removed block nesting checks for {capture}
  1166. 10/05/2009
  1167. - added support of "isinstance" to {if} tag
  1168. 10/03/2009
  1169. - internal changes to improve performance
  1170. - fix registering of filters for classes
  1171. 10/01/2009
  1172. - removed default timezone setting
  1173. - reactivated PHP resource for simple PHP templates. Must set allow_php_templates = true to enable
  1174. - {PHP} tag can be enabled by allow_php_tag = true
  1175. 09/30/2009
  1176. - fixed handling template_exits method for all resource types
  1177. - bugfix for other cache resources than file
  1178. - the methods assign_by_ref is now wrapped to assign, append_by_ref to append
  1179. - allow arrays of variables pass in display, fetch and createTemplate calls
  1180. $data = array('foo'=>'bar','foo2'=>'blar');
  1181. $smarty->display('my.tpl',$data);
  1182. 09/29/2009
  1183. - changed {php} tag handling
  1184. - removed support of Smarty::instance()
  1185. - removed support of PHP resource type
  1186. - improved execution speed of {foreach} tags
  1187. - fixed bug in {section} tag
  1188. 09/23/2009
  1189. - improvements and bugfix on {include} tag handling
  1190. NOTICE: existing compiled template and cache files must be deleted
  1191. 09/19/2009
  1192. - replace internal "eval()" calls by "include" during rendering process
  1193. - speed improvment for templates which have included subtemplates
  1194. the compiled code of included templates is merged into the compiled code of the parent template
  1195. - added logical operator "xor" for {if} tag
  1196. - changed parameter ordering for Smarty2 BC
  1197. fetch($template, $cache_id = null, $compile_id = null, $parent = null)
  1198. display($template, $cache_id = null, $compile_id = null, $parent = null)
  1199. createTemplate($template, $cache_id = null, $compile_id = null, $parent = null)
  1200. - property resource_char_set is now replaced by constant SMARTY_RESOURCE_CHAR_SET
  1201. - fixed handling of classes in registered blocks
  1202. - speed improvement of lexer on text sections
  1203. 09/01/2009
  1204. - dropped nl2br as plugin
  1205. - added '<>' as comparission operator in {if} tags
  1206. - cached caching_lifetime property to cache_liftime for backward compatibility with Smarty2.
  1207. {include} optional attribute is also now cache_lifetime
  1208. - fixed trigger_error method (moved into Smarty class)
  1209. - version is now Beta!!!
  1210. 08/30/2009
  1211. - some speed optimizations on loading internal plugins
  1212. 08/29/2009
  1213. - implemented caching of registered Resources
  1214. - new property 'auto_literal'. if true(default) '{ ' and ' }' interpreted as literal, not as Smarty delimiter
  1215. 08/28/2009
  1216. - Fix on line breaks inside {if} tags
  1217. 08/26/2009
  1218. - implemented registered resources as in Smarty2. NOTE: caching does not work yet
  1219. - new property 'force_cache'. if true it forces the creation of a new cache file
  1220. - fixed modifiers on arrays
  1221. - some speed optimization on loading internal classes
  1222. 08/24/2009
  1223. - fixed typo in lexer definition for '!==' operator
  1224. - bugfix - the ouput of plugins was not cached
  1225. - added global variable SCRIPT_NAME
  1226. 08/21/2009
  1227. - fixed problems whitespace in conjuction with custom delimiters
  1228. - Smarty tags can now be used as value anywhere
  1229. 08/18/2009
  1230. - definition of template class name moded in internal.templatebase.php
  1231. - whitespace parser changes
  1232. 08/12/2009
  1233. - fixed parser problems
  1234. 08/11/2009
  1235. - fixed parser problems with custom delimiter
  1236. 08/10/2009
  1237. - update of mb support in plugins
  1238. 08/09/2009
  1239. - fixed problems with doublequoted strings at name attribute of {block} tag
  1240. - bugfix at scope attribute of {append} tag
  1241. 08/08/2009
  1242. - removed all internal calls of Smarty::instance()
  1243. - fixed code in double quoted strings
  1244. 08/05/2009
  1245. - bugfix mb_string support
  1246. - bugfix of \n.\t etc in double quoted strings
  1247. 07/29/2009
  1248. - added syntax for variable config vars like #$foo#
  1249. 07/28/2009
  1250. - fixed parsing of $smarty.session vars containing objects
  1251. 07/22/2009
  1252. - fix of "$" handling in double quoted strings
  1253. 07/21/2009
  1254. - fix that {$smarty.current_dir} return correct value within {block} tags.
  1255. 07/20/2009
  1256. - drop error message on unmatched {block} {/block} pairs
  1257. 07/01/2009
  1258. - fixed smarty_function_html_options call in plugin function.html_select_date.php (missing ,)
  1259. 06/24/2009
  1260. - fixed smarty_function_html_options call in plugin function.html_select_date.php
  1261. 06/22/2009
  1262. - fix on \n and spaces inside smarty tags
  1263. - removed request_use_auto_globals propert as it is no longer needed because Smarty 3 will always run under PHP 5
  1264. 06/18/2009
  1265. - fixed compilation of block plugins when caching enabled
  1266. - added $smarty.current_dir which returns the current working directory
  1267. 06/14/2009
  1268. - fixed array access on super globals
  1269. - allow smarty tags within xml tags
  1270. 06/13/2009
  1271. - bugfix at extend resource: create unique files for compiled template and cache for each combination of template files
  1272. - update extend resource to handle appen and prepend block attributes
  1273. - instantiate classes of plugins instead of calling them static
  1274. 06/03/2009
  1275. - fixed repeat at block plugins
  1276. 05/25/2009
  1277. - fixed problem with caching of compiler plugins
  1278. 05/14/2009
  1279. - fixed directory separator handling
  1280. 05/09/2009
  1281. - syntax change for stream variables
  1282. - fixed bug when using absolute template filepath and caching
  1283. 05/08/2009
  1284. - fixed bug of {nocache} tag in included templates
  1285. 05/06/2009
  1286. - allow that plugins_dir folder names can end without directory separator
  1287. 05/05/2009
  1288. - fixed E_STRICT incompabilities
  1289. - {function} tag bug fix
  1290. - security policy definitions have been moved from plugins folder to file Security.class.php in libs folder
  1291. - added allow_super_global configuration to security
  1292. 04/30/2009
  1293. - functions defined with the {function} tag now always have global scope
  1294. 04/29/2009
  1295. - fixed problem with directory setter methods
  1296. - allow that cache_dir can end without directory separator
  1297. 04/28/2009
  1298. - the {function} tag can no longer overwrite standard smarty tags
  1299. - inherit functions defined by the {fuction} tag into subtemplates
  1300. - added {while <statement>} sytax to while tag
  1301. 04/26/2009
  1302. - added trusted stream checking to security
  1303. - internal changes at file dependency check for caching
  1304. 04/24/2009
  1305. - changed name of {template} tag to {function}
  1306. - added new {template} tag
  1307. 04/23/2009
  1308. - fixed access of special smarty variables from included template
  1309. 04/22/2009
  1310. - unified template stream syntax with standard Smarty resource syntax $smarty->display('mystream:mytemplate')
  1311. 04/21/2009
  1312. - change of new style syntax for forach. Now: {foreach $array as $var} like in PHP
  1313. 04/20/2009
  1314. - fixed "$foo.bar ..." variable replacement in double quoted strings
  1315. - fixed error in {include} tag with variable file attribute
  1316. 04/18/2009
  1317. - added stream resources ($smarty->display('mystream://mytemplate'))
  1318. - added stream variables {$mystream:myvar}
  1319. 04/14/2009
  1320. - fixed compile_id handling on {include} tags
  1321. - fixed append/prepend attributes in {block} tag
  1322. - added {if 'expression' is in 'array'} syntax
  1323. - use crc32 as hash for compiled config files.
  1324. 04/13/2009
  1325. - fixed scope problem with parent variables when appending variables within templates.
  1326. - fixed code for {block} without childs (possible sources for notice errors removed)
  1327. 04/12/2009
  1328. - added append and prepend attribute to {block} tag
  1329. 04/11/2009
  1330. - fixed variables in 'file' attribute of {extend} tag
  1331. - fixed problems in modifiers (if mb string functions not present)
  1332. 04/10/2009
  1333. - check if mb string functions available otherwise fallback to normal string functions
  1334. - added global variable scope SMARTY_GLOBAL_SCOPE
  1335. - enable 'variable' filter by default
  1336. - fixed {$smarty.block.parent.foo}
  1337. - implementation of a 'variable' filter as replacement for default modifier
  1338. 04/09/2009
  1339. - fixed execution of filters defined by classes
  1340. - compile the always the content of {block} tags to make shure that the filters are running over it
  1341. - syntax corrections on variable object property
  1342. - syntax corrections on array access in dot syntax
  1343. 04/08/2009
  1344. - allow variable object property
  1345. 04/07/2009
  1346. - changed variable scopes to SMARTY_LOCAL_SCOPE, SMARTY_PARENT_SCOPE, SMARTY_ROOT_SCOPE to avoid possible conflicts with user constants
  1347. - Smarty variable global attribute replaced with scope attribute
  1348. 04/06/2009
  1349. - variable scopes LOCAL_SCOPE, PARENT_SCOPE, ROOT_SCOPE
  1350. - more getter/setter methods
  1351. 04/05/2009
  1352. - replaced new array looping syntax {for $foo in $array} with {foreach $foo in $array} to avoid confusion
  1353. - added append array for short form of assign {$foo[]='bar'} and allow assignments to nested arrays {$foo['bla']['blue']='bar'}
  1354. 04/04/2009
  1355. - make output of template default handlers cachable and save compiled source
  1356. - some fixes on yesterdays update
  1357. 04/03/2006
  1358. - added registerDefaultTemplateHandler method and functionallity
  1359. - added registerDefaultPluginHandler method and functionallity
  1360. - added {append} tag to extend Smarty array variabled
  1361. 04/02/2009
  1362. - added setter/getter methods
  1363. - added $foo@first and $foo@last properties at {for} tag
  1364. - added $set_timezone (true/false) property to setup optionally the default time zone
  1365. 03/31/2009
  1366. - bugfix smarty.class and internal.security_handler
  1367. - added compile_check configuration
  1368. - added setter/getter methods
  1369. 03/30/2009
  1370. - added all major setter/getter methods
  1371. 03/28/2009
  1372. - {block} tags can be nested now
  1373. - md5 hash function replace with crc32 for speed optimization
  1374. - file order for exted resource inverted
  1375. - clear_compiled_tpl and clear_cache_all will not touch .svn folder any longer
  1376. 03/27/2009
  1377. - added extend resource
  1378. 03/26/2009
  1379. - fixed parser not to create error on `word` in double quoted strings
  1380. - allow PHP array(...)
  1381. - implemented $smarty.block.name.parent to access parent block content
  1382. - fixed smarty.class
  1383. 03/23/2009
  1384. - fixed {foreachelse} and {forelse} tags
  1385. 03/22/2009
  1386. - fixed possible sources for notice errors
  1387. - rearrange SVN into distribution and development folders
  1388. 03/21/2009
  1389. - fixed exceptions in function plugins
  1390. - fixed notice error in Smarty.class.php
  1391. - allow chained objects to span multiple lines
  1392. - fixed error in modifers
  1393. 03/20/2009
  1394. - moved /plugins folder into /libs folder
  1395. - added noprint modifier
  1396. - autoappend a directory separator if the xxxxx_dir definition have no trailing one
  1397. 03/19/2009
  1398. - allow array definition as modifer parameter
  1399. - changed modifier to use multi byte string funktions.
  1400. 03/17/2009
  1401. - bugfix
  1402. 03/15/2009
  1403. - added {include_php} tag for BC
  1404. - removed @ error suppression
  1405. - bugfix fetch did always repeat output of first call when calling same template several times
  1406. - PHPunit tests extended
  1407. 03/13/2009
  1408. - changed block syntax to be Smarty like {block:titel} -> {block name=titel}
  1409. - compiling of {block} and {extend} tags rewriten for better performance
  1410. - added special Smarty variable block ($smarty.block.foo} returns the parent definition of block foo
  1411. - optimization of {block} tag compiled code.
  1412. - fixed problem with escaped double quotes in double quoted strings
  1413. 03/12/2009
  1414. - added support of template inheritance by {extend } and {block } tags.
  1415. - bugfix comments within literals
  1416. - added scope attribuie to {include} tag
  1417. 03/10/2009
  1418. - couple of bugfixes and improvements
  1419. - PHPunit tests extended
  1420. 03/09/2009
  1421. - added support for global template vars. {assign_global...} $smarty->assign_global(...)
  1422. - added direct_access_security
  1423. - PHPunit tests extended
  1424. - added missing {if} tag conditions like "is div by" etc.
  1425. 03/08/2009
  1426. - splitted up the Compiler class to make it easier to use a coustom compiler
  1427. - made default plugins_dir relative to Smarty root and not current working directory
  1428. - some changes to make the lexer parser better configurable
  1429. - implemented {section} tag for Smarty2 BC
  1430. 03/07/2009
  1431. - fixed problem with comment tags
  1432. - fixed problem with #xxxx in double quoted string
  1433. - new {while} tag implemented
  1434. - made lexer and paser class configurable as $smarty property
  1435. - Smarty method get_template_vars implemented
  1436. - Smarty method get_registered_object implemented
  1437. - Smarty method trigger_error implemented
  1438. - PHPunit tests extended
  1439. 03/06/2009
  1440. - final changes on config variable handling
  1441. - parser change - unquoted strings will by be converted into single quoted strings
  1442. - PHPunit tests extended
  1443. - some code cleanup
  1444. - fixed problem on catenate strings with expression
  1445. - update of count_words modifier
  1446. - bugfix on comment tags
  1447. 03/05/2009
  1448. - bugfix on <?xml...> tag with caching enabled
  1449. - changes on exception handling (by Monte)
  1450. 03/04/2009
  1451. - added support for config variables
  1452. - bugfix on <?xml...> tag
  1453. 03/02/2009
  1454. - fixed unqouted strings within modifier parameter
  1455. - bugfix parsing of mofifier parameter
  1456. 03/01/2009
  1457. - modifier chaining works now as in Smarty2
  1458. 02/28/2009
  1459. - changed handling of unqouted strings
  1460. 02/26/2009
  1461. - bugfix
  1462. - changed $smarty.capture.foo to be global for Smarty2 BC.
  1463. 02/24/2009
  1464. - bugfix {php} {/php} tags for backward compatibility
  1465. - bugfix for expressions on arrays
  1466. - fixed usage of "null" value
  1467. - added $smarty.foreach.foo.first and $smarty.foreach.foo.last
  1468. 02/06/2009
  1469. - bugfix for request variables without index for example $smarty.get
  1470. - experimental solution for variable functions in static class
  1471. 02/05/2009
  1472. - update of popup plugin
  1473. - added config variables to template parser (load config functions still missing)
  1474. - parser bugfix for empty quoted strings
  1475. 02/03/2009
  1476. - allow array of objects as static class variabales.
  1477. - use htmlentities at source output at template errors.
  1478. 02/02/2009
  1479. - changed search order on modifiers to look at plugins folder first
  1480. - parser bug fix for modifier on array elements $foo.bar|modifier
  1481. - parser bug fix on single quoted srings
  1482. - internal: splitted up compiler plugin files
  1483. 02/01/2009
  1484. - allow method chaining on static classes
  1485. - special Smarty variables $smarty.... implemented
  1486. - added {PHP} {/PHP} tags for backward compatibility
  1487. 01/31/2009
  1488. - added {math} plugin for Smarty2 BC
  1489. - added template_exists method
  1490. - changed Smarty3 method enable_security() to enableSecurity() to follow camelCase standards
  1491. 01/30/2009
  1492. - bugfix in single quoted strings
  1493. - changed syntax for variable property access from $foo:property to $foo@property because of ambiguous syntax at modifiers
  1494. 01/29/2009
  1495. - syntax for array definition changed from (1,2,3) to [1,2,3] to remove ambiguous syntax
  1496. - allow {for $foo in [1,2,3]} syntax
  1497. - bugfix in double quoted strings
  1498. - allow <?xml...?> tags in template even if short_tags are enabled
  1499. 01/28/2009
  1500. - fixed '!==' if condition.
  1501. 01/28/2009
  1502. - added support of {strip} {/strip} tag.
  1503. 01/27/2009
  1504. - bug fix on backticks in double quoted strings at objects
  1505. 01/25/2009
  1506. - Smarty2 modfiers added to SVN
  1507. 01/25/2009
  1508. - bugfix allow arrays at object properties in Smarty syntax
  1509. - the template object is now passed as additional parameter at plugin calls
  1510. - clear_compiled_tpl method completed
  1511. 01/20/2009
  1512. - access to class constants implemented ( class::CONSTANT )
  1513. - access to static class variables implemented ( class::$variable )
  1514. - call of static class methods implemented ( class::method() )
  1515. 01/16/2009
  1516. - reallow leading _ in variable names {$_var}
  1517. - allow array of objects {$array.index->method()} syntax
  1518. - finished work on clear_cache and clear_cache_all methods
  1519. 01/11/2009
  1520. - added support of {literal} tag
  1521. - added support of {ldelim} and {rdelim} tags
  1522. - make code compatible to run with E_STRICT error setting
  1523. 01/08/2009
  1524. - moved clear_assign and clear_all_assign to internal.templatebase.php
  1525. - added assign_by_ref, append and append_by_ref methods
  1526. 01/02/2009
  1527. - added load_filter method
  1528. - fished work on filter handling
  1529. - optimization of plugin loading
  1530. 12/30/2008
  1531. - added compiler support of registered object
  1532. - added backtick support in doubled quoted strings for backward compatibility
  1533. - some minor bug fixes and improvments
  1534. 12/23/2008
  1535. - fixed problem of not working "not" operator in if-expressions
  1536. - added handling of compiler function plugins
  1537. - finished work on (un)register_compiler_function method
  1538. - finished work on (un)register_modifier method
  1539. - plugin handling from plugins folder changed for modifier plugins
  1540. deleted - internal.modifier.php
  1541. - added modifier chaining to parser
  1542. 12/17/2008
  1543. - finished (un)register_function method
  1544. - finished (un)register_block method
  1545. - added security checking for PHP functions in PHP templates
  1546. - plugin handling from plugins folder rewritten
  1547. new - internal.plugin_handler.php
  1548. deleted - internal.block.php
  1549. deleted - internal.function.php
  1550. - removed plugin checking from security handler
  1551. 12/16/2008
  1552. - new start of this change_log file