PHP Classes

File: htdocs/xoops_lib/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-capture.md

Recommend this page to a friend!
  Packages of Michael Beck   Xoops 2.5   htdocs/xoops_lib/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-capture.md   Download  
File: htdocs/xoops_lib/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-capture.md
Role: Auxiliary data
Content type: text/markdown
Description: Auxiliary data
Class: Xoops 2.5
Modular content management publication system
Author: By
Last change:
Date: 2 months ago
Size: 2,914 bytes
 

Contents

Class file image Download

{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 $caching enabled 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}.