7
Smarty is a template engine for PHP. More specifically, it facilitates a managable way to separate application logic and content from its presentation. This is best described in a situation where the application programmer and the template designer play different roles, or in most cases are not the same person. For example, let's say you are creating a web page that is displaying a newspaper article. The article headline, tagline, author and body are content elements, they contain no information about how they will be presented. They are passed into Smarty by the application, then the template designer edits the templates and uses a combination of HTML tags and template tags to format the presentation of these elements (HTML tables, background colors, font sizes, style sheets, etc.) One day the programmer needs to change the way the article content is retrieved (a change in application logic.) This change does not affect the template designer, the content will still arrive in the template exactly the same. Likewise, if the template designer wants to completely redesign the templates, this requires no changes to the application logic. Therefore, the programmer can make changes to the application logic without the need to restructure templates, and the template designer can make changes to templates without breaking application logic.
XOOPS uses the Smarty Template Engine and XOOPS scripts have Smarty tags embedded in the code. Smarty tags are identified by the delimiters <{ and }>. If you see variables, conditionals or functions inside those delimiters, they are considered Smarty tags.
Smarty tags speed up site loading because the content of these tags have already been processed and compiled. So instead of creating a script to call out the site url, the username or even the theme folder, a Smarty tag is used.
The great thing about using Smarty tags inside the theme.html is that it allows better control of layout by having a Smarty tag represent a content instead of a php script. Smarty tags can be placed in between HTML tags to enable formatting.