Version 1.5.0 ------------- - added include_php built-in function, documented. (Monte) - added trusted_dir functionality, documented. (Monte) - consolidated secure_dir tests to one function. (Monte) - prepended _smarty_ to variable names in fetch() class function to avoid namespace conflicts. (Monte) - introduced $compile_id class variable that can be used to set persistent compile identifier across multiple display calls, documented. (Andrei) - fixed bug with concatenated null cache and compile identifiers. (Andrei) - added $smarty.section.* syntax for accessing section properties, documented. (Andrei) - added custom cache handling function ability, documented. (Monte) - added assign attribute to include, include_php, insert, fetch, math, and counter functions, documented. (Monte) - fixed bug with fetch testing for local file when http address. (Monte) - fixed bug with counter and skipval setting. (Monte) - made {config_load ...} merge globals from each config file only once per scope, thus avoiding several problems. (Andrei) - added {foreach ...} tag that can be used to iterate through non-sequential and associative arrays, documented. (Andrei) - speeded up section property access a bit. (Andrei) - removed $smarty variable from storage used by normal template variables, to prevent any problems. (Andrei) - fixed a bug that could cause parse error with quotes inside literal blocks. (Andrei, Alexander Belonosov) - added 'field_array' attribute to html_select_time function, documented. (Andrei, Michael Caplan) - documented {section} "max" attribute. (Monte) - fixed notice message in Smarty_Compiler.class.php. (Monte) - fixed bug with clear_cache introduced in 1.4.6, third parameter should default to null. (Monte) - updated Config_File class to support '\' path separator in OS/2. (Monte, Francesco Cipriani) - removed secure_ext setting (not used). (Monte) - made cache reading process more efficient. (Monte) - fixed bug, is_cached() now supports new 1.4.6 caching behavior. (Monte) - update FAQ with mailing list Reply-To header FAQ. (Monte) - supress error messages for fopen(), fix cache to regenerate if cache file is not available (i.e. cluster race condition). (Monte) - added index key example to QUICKSTART guide. (Monte) Version 1.4.6 ------------- - fixed bug with {assign ...} when passing an empty value. (Monte) - add more warning message fixes. (Monte, Tara Johnson) - documentation updates. (Monte) - update fetch function to give proper warning when fetching a non-readable or non-existant file. (Monte) - fixed problem with newline at the end of included templates (Monte, Andrei) - added feature to regenerate cache if compile_check is enabled and an involved template or config file gets modified. (Monte) - added DEBUG execution times to included files: REQUIRES updated debug.tpl file! (Monte) - added support for hidden config variables that cannot be read by templates. (Andrei) - added execution time to DEBUG console, total and inserts. (Monte) - fixed bug where DEBUG console would not appear with cached content. (Monte) - added support for postfilter functions that are applied to compiled template right after compilation. (Andrei) - fixed the name of clear_compile_tpl() API function to clear_compiled_tpl. (Andrei) - added fix for removing comments so that the line numbers are reported correctly in case of errors. (patch from Anders Janson) - made html_options output xhtml compatible code. (Monte, Arnaud Limbourg) Version 1.4.5 ------------- - update FAQ with index of questions at the top - update overlib to 3.50, adjust addon code so that the overlib.js file isn't modified, and not using the mini one. (Monte) - added many more options to html_select_date. (Alexander Skwar, Andrei) - added support for generating different compiled templates from the same source template. (Hans-Peter Oeri, Andrei) - modified Smarty to pass itself to insert functions as the second parameter. (Andrei) - modified Smarty to pass itself to prefilter functions as the second parameter. (Andrei) - fixed syntax error when including a non-existant template with security enabled. (Monte) - fixed comments handling to allow commenting out template blocks. (Andrei) - implemented named capture buffers, with results accessible via $smarty.capture.. (Andrei) - added ability to index arrays directly by numbers. (Andrei) - fixed bug with SMARTY_DIR not prepended to Config_File include. (Monte) Version 1.4.4 ------------- - fixed problem with including insecure templates with security enabled. (Monte) - numerous documentation updates. (Monte) - added ENT_QUOTES to escapement of html. (Monte, Sam Beckwith) - implemented access to request variables via auto-assigned $smarty template variable. (Andrei) - fixed a bug with parsing function arguments inside {if} tags if a comma was present. (Andrei) - updated debug console with config file vars. (Monte) - added SMARTY_DIR constant as an alternative to relying on include_path. (Monte) - added popup_init and popup functions (requires overlib.js). (Monte) - updated debug console with config file vars. (Monte) - added debugging url control. (Monte) - added 'quotes' type to escape modifier. (Monte, Mike Krus) - added 'total' and 'iteration' section properties. (Andrei) - added 'start', 'max', and 'step' section attributes/properties. (Andrei) - fixed a bug with security checking of functions inside {if} tags. (Andrei) - fixed a bug in Config_File that would incorrectly booleanize values that weren't really booleans. (Andrei) Version 1.4.3 ------------- - added regex_replace modifier, documented. (Monte) - added debugging console feature and custom function assign_debug_info, documented. (Monte) - added 'scope' attribute for {config_load}, 'global' is now deprecated but is still supported. (Andrei) - reduced template symbol table pollution by moving config array into the class itself. (Andrei) - fixed a bug with passing quoted arguments to modifiers inside {if} statements. (Andrei, Sam Beckwith) - added security features for third party template editing, documented (Monte) - added assign custom function, documented. (Monte) - fixed bug with template header using version instead of _version. (Monte) - fixed a problem with putting $ followed by numbers inside {strip} and {/strip} tags. (Andrei) - fixed Config_File class to allow empty config paths (defaults to current directory). (Andrei) Version 1.4.2 ------------- - move $version to internal variable, remove from docs. (Monte) - cleaned up compiled templates global scope by moving some variables into the class itself. (Andrei) - fixed a bug that would not allow referring to a section in the including file from the included file. (Andrei) - configs directory missing from 1.4.1 release, added back in. (Monte) - added windows include_path setup instructions to FAQ & QUICKSTART. (Monte) Version 1.4.1 ------------- - fix LOCK_EX logic for all windows platforms (Monte) - fixed indexing by section properties with the new syntax. (Andrei) - updated Smarty to use absolute paths when requiring/including Smarty components. (Andrei, John Lim) Version 1.4.0 ------------- - added {capture}{/capture} function, documented (Monte) - added {counter} function, documented (Monte) Version 1.4.0b2 --------------- - fixed issue in Config_File.class with referencing blank sections (Andrei) - fixed problem with passing variables to included files (Andrei) - fixed resource path recognition for windows (Monte) Version 1.4.0b1 --------------- - added "componentized templates" tip into documentation (Monte) - added {php}{/php} tags for embedding php code into templates (Monte) - changed default value of $show_info_header to false (Monte) - implemented '->' syntax for accessing properties of objects passed to the template. (Andrei) - allowed custom functions to receive Smarty object as the second parameter; this can be used to dynamically change template variables, for example. (Andrei) - added custom compiler functions support, register_compiler_function() and unregister_compiler_function() API functions. (Andrei, Ivo Jansch). - updated GLOBAL_ASSIGN to take SCRIPT_NAME from HTTP_SERVER_VARS instead of global variable. You can also assign several variables in one shot with an array. (Monte, Roman Neuhauser) - added template prefilters, register_prefilter() and unregister_prefilter() API functions. (Monte) - added RELEASE_NOTES file to distribution. (Monte) - moved CREDITS out of manual into its own file. (Monte) - added register_resource() and unregister_resource() API functions. (Monte) - changed the syntax of indexing template variables, thus supporting structures of arbitrary complexity; supplied fix_vars.php script to fix old syntax. (Andrei) - added $insert_tag_check to speed up cached pages if {insert ...} is not used. (Monte) - added $compiler_class variable to allow specifying a different compiler class. (Andrei) - changed Smarty to compile templates at runtime, allowing for arbitrary template resources. (Monte) - added fix for LOCK_EX under Windows and changed a couple of file permissions for security. (Monte, Fernando Nunes) - allow arbitrary date strings to date_format, html_select_date and html_select_time (Monte) Version 1.3.2 ------------- - fixed a bug that caused some nested includes to loop infinitely. (Andrei) - added optional HTML header to output. (Monte) - significantly improved config_load performance. (Andrei) - added format attribute to math function. (Monte) - added html_select_time custom function. (Andrei) - fixed minor PHP warning when attempting to unset an unset variable (Monte) - added count_characters, count_words, count_sentences, count_paragraphs modifiers (Monte) Version 1.3.1pl1 -------------- - bug fix, recovered missing _syntax_error function (Monte) Version 1.3.1 ------------- - document first, last, index_prev, index_next (Monte) - added 'first' and 'last' section properties. (Andrei) - split out compiling code to separate class for faster template execution time (Monte) - fixed a couple of minor PHP warnings (Monte) - added and documented unregister_modifier() and unregister_function() API calls. (Monte) - added and documented 'fetch' and 'math' functions. (Monte) - added ability to index looped variables by section properties, e.g. $foo.index_prev/bar. (Andrei) - added index_prev and index_next section properties. (Andrei) - fixed issue with php executing in literal blocks. (Monte) Version 1.3.0 ------------- - moved license from GPL to LGPL (Monte) - implemented workaround for PHP "feature" that eats carriage returns if the PHP tag is at the end of the line. (Andrei) - removed $allow_php, added $php_handling logic (Monte) - added file locking to prevent reader/writer problem. (Andrei) - made Smarty catch unimplemented modifiers and custom functions and output error messages during compilation instead of failing during run time. (Andrei) - removed short-tags at the top of the smarty scripts (Monte) - added register_function() and register_modifier() API calls to make registering stuff easier. (Andrei) - added template results caching capability. (Monte, Andrei) - added optional 'options' attribute to html_options custom function that allows passing associative arrays for values/output. (Andrei) - modifier arguments can now contain '|' and ':' characters inside quoted strings. (Andrei) Version 1.2.2 ------------- - fixed bug that would not respect nested template directories and would put all compiled files into top-level one. (Andrei) - fixed bug using $PHP_VERSION instead of environment var PHP_VERSION. (Monte) - a couple small warning fixes. (Monte) Version 1.2.1 ------------- - added $compile_dir, removed $compile_dir_ext, simplified usage. (Monte) - added tips & tricks chapter to documentation. (Monte) - misc documentation updates. (Monte) Version 1.2.0 ------------- - updated documentation (Monte) - added file and line number information to syntax error messages. (Andrei) - added ability to index template vars by a key. (Andrei) Version 1.1.0 ------------- - misc documentation changes, official stable release Version 1.0b ------------ - fixed the bug that prevented using non-array values for 'loop' attribute. (Andrei) - many misc documentation changes & additions (Monte) Version 1.0a ------------ - fixed bug that caused templates to recompile every time (Monte) Version 1.0 ------------ - initial release /* vim: set et: */