- Smarty 4.1.1 → 4.5.6 (behebt dynamic property deprecations) - Core-Klassen: #[\AllowDynamicProperties] für Admin_role, base, Config, Customer, Customer_group, CustomerGroups, Item, Structure, website - website.class.php: counts[parent_id] initialisieren vor ++ (PHP 8.1) - layout.class.php: HTTP_ACCEPT_LANGUAGE mit isset-Guard - website_init.php: session_status()-Check vor session_start - .htaccess: HTTPS-Redirect via X-Forwarded-Proto (statt SERVER_PORT) - themes/easyshop_advanced/media/: Parent-Theme-Assets nachgezogen - .gitignore: smarty.4.1.1.bak ausschließen
2.8 KiB
{capture}
{capture} is used to collect the output of the template between the
tags into a variable instead of displaying it. Any content between
{capture name='foo'} and {/capture} is collected into the variable
specified in the name attribute.
The captured content can be used in the template from the variable
$smarty.capture.foo where "foo"
is the value passed in the name attribute. If you do not supply the
name attribute, then "default" will be used as the name ie
$smarty.capture.default.
{capture}'s can be nested.
Attributes
| Attribute Name | Required | Description |
|---|---|---|
| name | Yes | The name of the captured block |
| assign | No | The variable name where to assign the captured output to |
| append | No | The name of an array variable where to append the captured output to |
Option Flags
| Name | Description |
|---|---|
| nocache | Disables caching of this captured block |
Note
Be careful when capturing
{insert}output. If you have$cachingenabled and you have{insert}commands that you expect to run within cached content, do not capture this content.
Examples
{* we don't want to print a div tag unless content is displayed *}
{capture name="banner"}
{capture "banner"} {* short-hand *}
{include file="get_banner.tpl"}
{/capture}
{if $smarty.capture.banner ne ""}
<div id="banner">{$smarty.capture.banner}</div>
{/if}
This example demonstrates the capture function.
{capture name=some_content assign=popText}
{capture some_content assign=popText} {* short-hand *}
The server is {$my_server_name|upper} at {$my_server_addr}<br>
Your ip is {$my_ip}.
{/capture}
<a href="#">{$popText}</a>
This example also demonstrates how multiple calls of capture can be used to create an array with captured content.
{capture append="foo"}hello{/capture}I say just {capture append="foo"}world{/capture}
{foreach $foo as $text}{$text} {/foreach}
The above example will output:
I say just hello world
See also $smarty.capture,
{eval},
{fetch}, fetch() and
{assign}.