2002-02-19 20:19:52 +00:00
|
|
|
2.0
|
|
|
|
---
|
|
|
|
|
2002-02-19 22:40:49 +00:00
|
|
|
This release is a huge milestone for Smarty. Most notable new things are a
|
2002-03-01 21:38:00 +00:00
|
|
|
plugin architecture, removal of PEAR dependency, and optimizations that
|
|
|
|
drastically improve the performance of Smarty in most cases.
|
2002-02-19 22:40:49 +00:00
|
|
|
|
|
|
|
The plugin architecture allows modifiers, custom functions, compiler functions,
|
2002-03-01 21:38:00 +00:00
|
|
|
prefilters, postfilters, resources, and insert functions to be added by
|
2002-02-19 22:40:49 +00:00
|
|
|
simply dropping a file into the plugins directory. Once dropped in, they are
|
|
|
|
automatically registered by the template engine. This makes user-contributed
|
|
|
|
plugins easy to manage, as well as the internal workings of Smarty easy to
|
|
|
|
control and customize. This new architecture depends on the __FILE__ constant,
|
|
|
|
which contains the full path to the executing script. Some older versions of
|
|
|
|
PHP incorrectly gave the script name and not the full filesystem path. Be sure
|
|
|
|
your version of PHP populates __FILE__ correctly. If you use custom template
|
|
|
|
resource functions, the format of these changed with the plugin architecture.
|
|
|
|
Be sure to update your functions accordingly. See the template resource section
|
|
|
|
of the documentation.
|
|
|
|
|
|
|
|
The PEAR dependancy was removed from Smarty. The Config_File class that comes
|
|
|
|
with Smarty was actually what needed PEAR for error handling which Smarty didn't
|
|
|
|
use, but now everything is self-contained.
|
|
|
|
|
|
|
|
Performance improvements are graphed on the benchmark page, you will see that
|
|
|
|
overall performance has been sped up by as much as 80% in some cases.
|
|
|
|
|
|
|
|
Smarty-cached pages now support If-Modified-Since headers, meaning that if a
|
|
|
|
cached template page has not changed since the last request, a "304 Not
|
|
|
|
Modified" header will be sent instead of resending the same page. This is
|
|
|
|
disabled by default, change the setting of $cache_modified_check.
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2002-03-01 21:38:00 +00:00
|
|
|
|
2001-12-18 16:51:06 +00:00
|
|
|
1.5.2
|
|
|
|
-----
|
|
|
|
|
|
|
|
Mostly bug fixes, added a default template resource handler.
|
|
|
|
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2001-12-10 15:18:06 +00:00
|
|
|
1.5.1
|
|
|
|
-----
|
|
|
|
|
|
|
|
Critical bug fix release. If you use caching, you'll need to upgrade.
|
|
|
|
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2001-12-06 22:34:43 +00:00
|
|
|
1.5.0
|
|
|
|
-----
|
|
|
|
|
|
|
|
Several feature enhancements were made to this version, most notably the
|
|
|
|
{foreach ...} command which is an alternative to {section ...} with an easier
|
|
|
|
syntax for looping through a single array of values. Several functions were
|
|
|
|
enhanced so that the output can be automatically assigned to a template
|
|
|
|
variable instead of displayed (assign attribute). Cache files can now be
|
|
|
|
controlled with a custom function as an alternative to the built-in file based
|
|
|
|
method. Many code cleanups and bug fixed went into this release as well.
|
|
|
|
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2001-11-01 19:51:07 +00:00
|
|
|
1.4.6
|
|
|
|
-----
|
|
|
|
|
|
|
|
The behavior with caching and compile_check has been slightly enhanced. If
|
|
|
|
caching is enabled AND compile_check is enabled, the cache will immediately get
|
|
|
|
regenerated if _any_ involved template or config file is updated. This imposes
|
|
|
|
a slight performance hit because it must check all the files for changes, so be
|
|
|
|
sure to run live sites with caching enabled and compile_check disabled for best
|
|
|
|
performance. If you update a template or config file, simply turn on
|
|
|
|
compile_check, load the page, then turn it back off. This will update the cache
|
|
|
|
file with the new content. This is accomplished by maintaining a list of
|
|
|
|
included/loaded templates and config files at the beginning of the cache file.
|
|
|
|
Therefore it is advisable to remove all cache files after upgrading to 1.4.6
|
2001-12-03 20:43:43 +00:00
|
|
|
(although not absolutely necessary, old cache files will regenerate)
|
2001-11-01 19:51:07 +00:00
|
|
|
|
|
|
|
The debug console now has script timing and array values printed. You MUST
|
|
|
|
update your debug.tpl file with this version of Smarty. Also, the new debug.tpl
|
|
|
|
will not work with older versions of Smarty.
|
|
|
|
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2001-09-19 14:52:08 +00:00
|
|
|
1.4.5
|
|
|
|
-----
|
|
|
|
|
|
|
|
Mostly bug fixes and minor improvements. Added compile id for separate compiled
|
2001-09-20 17:00:43 +00:00
|
|
|
versions of the same script. The directory format and filename convention for
|
|
|
|
the files in templates_c has changed, so you may want to remove all of the
|
|
|
|
existing ones before you upgrade.
|
2001-09-19 14:52:08 +00:00
|
|
|
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2001-06-29 19:35:06 +00:00
|
|
|
1.4.4
|
|
|
|
-----
|
|
|
|
|
2001-06-29 21:25:40 +00:00
|
|
|
A few bug fixes, new section looping attributes and properties, debugging
|
2001-07-06 16:14:45 +00:00
|
|
|
console function for control via URL, and overLib integration and access
|
|
|
|
to request variables from within the template.
|
2001-06-29 19:35:06 +00:00
|
|
|
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2001-06-25 13:05:43 +00:00
|
|
|
1.4.3
|
|
|
|
-----
|
2001-06-29 19:35:06 +00:00
|
|
|
|
|
|
|
This release has a few bug fixes and several enhancements. Smarty now supports
|
|
|
|
template security for third-party template editing. These features disallow the
|
|
|
|
ability for someone to execute commands or PHP code from the template language.
|
|
|
|
Smarty also now has a built-in debugging console, which is a javascript pop-up
|
|
|
|
window that displays all the included template names and assigned variables.
|
2001-06-25 13:05:43 +00:00
|
|
|
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2001-05-29 18:59:10 +00:00
|
|
|
1.4.2
|
|
|
|
-----
|
|
|
|
|
|
|
|
This was mostly one bug fix with variable scoping within included templates
|
|
|
|
and a few documentation changes and updates. See the ChangeLog file for full
|
|
|
|
details.
|
|
|
|
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2001-05-16 19:53:43 +00:00
|
|
|
1.4.1
|
|
|
|
-----
|
|
|
|
|
|
|
|
It seems that the EX_LOCK logic from the previous release didn't fix all the
|
|
|
|
problems with windows platforms. Hopefully this one does. It basically
|
|
|
|
disables file locking on windows, so there is a potential that two programs
|
|
|
|
could write over the same file at the same time, fyi.
|
|
|
|
|
|
|
|
The reset is minor bug fixes, please refer to the ChangeLog file.
|
|
|
|
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2001-04-11 20:54:35 +00:00
|
|
|
1.4.0
|
|
|
|
-----
|
|
|
|
|
2001-04-19 21:08:17 +00:00
|
|
|
IMPORTANT NOTICE
|
|
|
|
|
|
|
|
Smarty now has a new syntax for accessing elements within section loops. The
|
|
|
|
new syntax is easier to use and nicely handles data structures of any
|
2001-05-09 14:06:59 +00:00
|
|
|
complexity. Consequently, this breaks the old syntax.
|
|
|
|
|
|
|
|
Here is an example of the syntax change:
|
|
|
|
|
|
|
|
old syntax:
|
|
|
|
{$sec1/sec2/sec3/customer.phone}
|
|
|
|
|
|
|
|
new syntax:
|
|
|
|
{$customer[$sec1][$sec2][$sec3].phone}
|
|
|
|
|
|
|
|
The section names used to come first, followed by the variable name. Now the
|
|
|
|
variable name always comes first, followed by the section names in brackets.
|
|
|
|
You can access variable indexes anywhere, depending on how you passed the
|
|
|
|
variables in.
|
|
|
|
|
|
|
|
To fix your current templates, we have provided a script that will adjust the
|
|
|
|
syntax for you. Located in misc/fix_vars.php, run this script from the the
|
|
|
|
command line, giving each template as an argument. Be sure to use absolute
|
|
|
|
pathnames, or pathnames relative to the executing script. Probably the easiest
|
|
|
|
way to do this is to copy the fix_vars.php script into your template directory
|
|
|
|
and run 'php -q fix_vars.php *.tpl' Be sure you have proper write permission,
|
|
|
|
and backup your scripts first to be safe! The examples in the 1.4.0
|
|
|
|
documentation have been updated to reflect the changes.
|
2001-04-16 17:39:59 +00:00
|
|
|
|
2001-04-24 15:16:14 +00:00
|
|
|
cd /path/to/templates
|
|
|
|
cp /path/to/fix_vars.php .
|
|
|
|
find . -name "*.tpl" -exec php -q ./fix_vars.php {} \;
|
|
|
|
|
2001-04-25 15:49:51 +00:00
|
|
|
NEW AND IMPROVED COMPILATION PROCESS
|
2001-04-19 21:08:17 +00:00
|
|
|
|
2001-04-16 17:39:59 +00:00
|
|
|
Smarty 1.4.0 also has a new compilation process. Instead of compiling all the
|
|
|
|
templates up front, it now compiles them at runtime. This has several
|
|
|
|
advantages. First of all, there is no longer a need to have a single template
|
|
|
|
directory. You can now have arbitrary template sources, such as multiple
|
|
|
|
directories or even database calls. This also speeds the performance of Smarty
|
|
|
|
when $compile_check is enabled, since it is only checking the template that is
|
|
|
|
being executed instead of everything found in the template directory. The
|
|
|
|
$tpl_file_ext is no longer needed, but kept for backward compatability.
|
2001-04-19 16:18:17 +00:00
|
|
|
Templates can now be named anything you like with any extension.
|
2001-04-11 20:54:35 +00:00
|
|
|
|
2001-04-19 21:08:17 +00:00
|
|
|
MINOR FIXES
|
|
|
|
|
2001-04-19 16:18:17 +00:00
|
|
|
A workaround for LOCK_EX on Windows systems was added, and changed a couple of
|
2001-04-19 21:08:17 +00:00
|
|
|
file permissions for better security on public servers.
|
|
|
|
|
2001-04-24 15:29:33 +00:00
|
|
|
$show_info_header is now defaulted to false instead of true. This header causes
|
|
|
|
problems when displaying content other than HTML, so now you must explicitly
|
|
|
|
set this flag to true to show the header information (or change the default in
|
|
|
|
your copy of Smarty.)
|
|
|
|
|
2001-04-26 17:27:40 +00:00
|
|
|
Documentation is written in docbook format. I updated the docbook -> HTML
|
|
|
|
generating software & style-sheets, and consequently the examples are no longer
|
|
|
|
in a different background color. If anyone wants to contribute a better
|
|
|
|
stylesheet or help with documentation, drop me a line. <monte@ispi.net>
|
|
|
|
|
|
|
|
CHANGES/ENHANCEMENTS/UPDATES
|
2001-04-11 20:54:35 +00:00
|
|
|
|
|
|
|
date_format, html_select_date and html_select_time used to require a unix
|
|
|
|
timestamp as the format of the date passed into the template. Smarty is now a
|
|
|
|
bit smarter at this. It will take a unix timestamp, a mysql timestamp, or any
|
|
|
|
date string that is parsable by strtotime, such as 10/01/2001 or 2001-10-01,
|
2001-04-13 20:08:32 +00:00
|
|
|
etc. Just give some formats a try and see what works.
|
2001-04-11 20:54:35 +00:00
|
|
|
|
2001-04-30 14:08:00 +00:00
|
|
|
Smarty now has template prefilters, meaning that you can run your templates
|
2001-04-19 21:08:17 +00:00
|
|
|
through custom functions before they are compiled. This is good for things like
|
2001-04-25 14:52:52 +00:00
|
|
|
removing unwanted comments, keeping an eye on words or functionality people are
|
2001-04-30 14:08:00 +00:00
|
|
|
putting in templates, translating XML -> HTML, etc. See the register_prefilter
|
2001-04-25 14:52:52 +00:00
|
|
|
documentation for more info.
|
2001-04-19 21:08:17 +00:00
|
|
|
|
2001-04-25 15:49:51 +00:00
|
|
|
Another addition are the so-called compiler functions. These are custom
|
|
|
|
functions registered by the user that are executed at compilation time of the
|
|
|
|
template. They can be used to inject PHP code or time-sensitive static content
|
|
|
|
into the compiled template.
|
|
|
|
|
2001-04-30 14:08:00 +00:00
|
|
|
The run-time custom functions are now passed the Smarty object as the second
|
2001-04-25 15:49:51 +00:00
|
|
|
parameter. This can be used, for example, to assign or clear template variables
|
|
|
|
from inside the custom function.
|
|
|
|
|
2001-04-26 17:27:40 +00:00
|
|
|
clear_compile_dir() was added for clearing out compiled versions of your
|
|
|
|
templates. Not something normally needed, but you may have a need for this if
|
|
|
|
you have $compile_check set to false and you periodically update templates via
|
|
|
|
some automated process. As of 1.4.0, uncompiled templates _always_ get
|
2001-04-30 14:08:00 +00:00
|
|
|
compiled regardless of $compile_check setting, although they won't be checked
|
2001-04-26 17:27:40 +00:00
|
|
|
for recompile if $compile_check is set to false.
|
|
|
|
|
2001-04-26 16:08:12 +00:00
|
|
|
You can now refer to properties of objects assigned from PHP by using the '->'
|
|
|
|
symbol and specifying the property name after it, e.g. $foo->bar.
|
|
|
|
|
2001-04-26 17:27:40 +00:00
|
|
|
{php}{/php} tags were added to embed php into the templates. Not normally
|
|
|
|
needed, but some circumstances may call for it. Check out the "componentized
|
2001-05-09 14:06:59 +00:00
|
|
|
templates" tip in the documentation for an example.
|
|
|
|
|
|
|
|
{capture}{/capture} and {counter} functions were added. See the documentation
|
|
|
|
for a complete description and examples.
|
2001-04-26 17:27:40 +00:00
|
|
|
|
2001-04-19 21:08:17 +00:00
|
|
|
UPGRADE NOTES
|
|
|
|
|
2001-04-24 15:16:14 +00:00
|
|
|
The format of the files created in the $compile_dir are now a bit different.
|
|
|
|
The compiled template filename is the template resource name url-encoded.
|
|
|
|
Therefore, all compiled files are now in the top directory of $compile_dir.
|
|
|
|
This was done to make way for arbitrary template resources. Each compiled
|
2001-04-30 14:08:00 +00:00
|
|
|
template also has a header that states what template resource was used to
|
|
|
|
create it. From a unix command prompt, you can use "head -2 *" to see the first
|
|
|
|
two lines of each file.
|
2001-04-24 15:16:14 +00:00
|
|
|
|
|
|
|
When upgrading to 1.4.0, you will want to clear out all your old files in the
|
|
|
|
$compile_dir. If you have $compile_check set to false and the compiled template
|
|
|
|
does not yet exist, it will compile it regardless of this setting. This way you
|
|
|
|
can clear out the $compile_dir and not worry about setting $compile_check to
|
|
|
|
true to get the inital compilation under way.
|
2001-04-11 20:54:35 +00:00
|
|
|
|
2002-02-19 20:19:52 +00:00
|
|
|
|
2001-04-13 20:08:32 +00:00
|
|
|
1.3.2
|
|
|
|
-----
|
|
|
|
|
|
|
|
Smarty now has (an optional) header prepended to the output of the Smarty
|
|
|
|
templates. This displays the Smarty version and the date/time when the page was
|
|
|
|
generated. This is useful for debugging your cache routines, and purely
|
|
|
|
informational so there is evidence that the page was generated by Smarty. Set
|
|
|
|
$show_info_header to false to disable it.
|
|
|
|
|
|
|
|
{config_load ...} performance was tuned by placing the loaded variables into a
|
|
|
|
global array, so basically a config file is read from the file system and
|
|
|
|
placed into a php array structure only once, no matter how many times it is
|
|
|
|
called in any of the templates. The scope of the loaded variables has changed a
|
|
|
|
bit as well. Variables loaded by config_load used to be treated as global
|
|
|
|
variables, meaning that parent templates (templates that included the current
|
|
|
|
template) could see them. Now the default behavior is such that loaded
|
|
|
|
variables are only visible by the current template and child templates (all
|
|
|
|
templates included after the {config_load ...} is called.) To mimic the
|
|
|
|
original behavior, provide the attribute "global=yes" like so: {config_load
|
|
|
|
file="mystuff.conf" global=yes}. Now when you load in mystuff.conf, the
|
|
|
|
variables will be visible to parent templates (merged with any existing config
|
|
|
|
variables.)
|
|
|
|
|
|
|
|
A formatting attribute was added to the {math ...} function, adding the ability
|
|
|
|
to control the format of the output. Use the same formatting syntax as the PHP
|
|
|
|
function sprintf().
|
|
|
|
|
|
|
|
{html_select_time ...} was added, a custom function that works much like
|
|
|
|
{html_select_date ...} except it displays time elements instead of dates.
|
|
|
|
|
|
|
|
A few custom modifiers were added: count_characters, count_words,
|
|
|
|
count_sentences, count_paragraphs. All pretty self-explanatory.
|
2002-02-19 20:19:52 +00:00
|
|
|
|
|
|
|
/* vim: set et: */
|