PHP Classes

File: htdocs/xoops_lib/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-block.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-block.md   Download  
File: htdocs/xoops_lib/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-block.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: 4,858 bytes
 

Contents

Class file image Download

{block}

{block} is used to define a named area of template source for template inheritance. For details see section of Template Inheritance.

The {block} template source area of a child template will replace the corresponding areas in the parent template(s).

Optionally {block} areas of child and parent templates can be merged into each other. You can append or prepend the parent {block} content by using the append or prepend option flag with the child's {block} definition. With {$smarty.block.parent} the {block} content of the parent template can be inserted at any location of the child {block} content. {$smarty.block.child} inserts the {block} content of the child template at any location of the parent {block}.

{blocks}'s can be nested.

Attributes

| Attribute Name | Required | Description | |----------------|----------|----------------------------------------------------------------------------------------------------------------------| | name | yes | The name of the template source block | | assign | no | The name of variable to assign the output of the block to. |

> Note > > The assign attribute only works on the block that actually gets executed, so you may need > to add it to each child block as well.

Option Flags (in child templates only):

| Name | Description | |---------|-----------------------------------------------------------------------------------------| | append | The {block} content will be appended to the content of the parent template {block} | | prepend | The {block} content will be prepended to the content of the parent template {block} | | hide | Ignore the block content if no child block of same name is existing. | | nocache | Disables caching of the {block} content |

Examples

parent.tpl

    <html>
      <head>
        <title>{block name="title"}Default Title{/block}</title>
        <title>{block "title"}Default Title{/block}</title>  {short-hand}
      </head>
    </html>
  

child.tpl

    {extends file="parent.tpl"} 
    {block name="title"}
    Page Title
    {/block}
  

The result would look like

    <html>
      <head>
        <title>Page Title</title>
      </head>
    </html>

parent.tpl

    <html>
      <head>
        <title>{block name="title"}Title - {/block}</title>
      </head>
    </html>
  

child.tpl

    {extends file="parent.tpl"} 
    {block name="title" append}
        Page Title
    {/block}
  

The result would look like

    <html>
      <head>
        <title>Title - Page Title</title>
      </head>
    </html>

parent.tpl

    <html>
      <head>
        <title>{block name="title"} is my title{/block}</title>
      </head>
    </html>
  

child.tpl

    {extends file="parent.tpl"} 
    {block name="title" prepend}
    Page Title
    {/block}
  

The result would look like

    <html>
      <head>
        <title>Page title is my titel</title>
      </head>
    </html>

parent.tpl

    <html>
      <head>
        <title>{block name="title"}The {$smarty.block.child} was inserted here{/block}</title>
      </head>
    </html>
  

child.tpl

    {extends file="parent.tpl"} 
    {block name="title"}
        Child Title
    {/block}
 

The result would look like

    <html>
      <head>
        <title>The Child Title was inserted here</title>
      </head>
    </html>

parent.tpl

    <html>
      <head>
        <title>{block name="title"}Parent Title{/block}</title>
      </head>
    </html>
  

child.tpl

    {extends file="parent.tpl"} 
    {block name="title"}
        You will see now - {$smarty.block.parent} - here
    {/block}
 

The result would look like

    <html>
      <head>
        <title>You will see now - Parent Title - here</title>
      </head>
    </html>

See also Template Inheritance, $smarty.block.parent, $smarty.block.child, and {extends}