Met deze oplossing kan je een eigen functie aanmaken in je content, dit kan handig zijn als je meerdere keren dezelfde handeling moet doen in je content. 

Argumenten

ArgumentToelichting
nameDe naam van je functie
[var ...]Je kan argumenten toevoegen aan je functie

Voorbeelden

function voor het berekenen van de leeftijd

{{function name='age'}}{{strip}}
    {{$parts = '-'|explode:$date}}
    {{$yearDiff  = "Y"|date - $parts[0]}}
    {{$monthDiff = "m"|date - $parts[1]}}
    {{$dayDiff   = "d"|date - $parts[2]}}
    {{if $monthDiff lt 0}}
       {{$yearDiff = $yearDiff - 1}}
    {{else}}
       {{if $monthDiff eq 0 && $dayDiff lt 0}}
           {{$yearDiff = $yearDiff - 1}}
       {{/if}}
    {{/if}}
    {{$yearDiff}}
{{/strip}}{{/function}}

{{customer field='birthday' assign='birthday' default='1998-01-01'}}
{{age date=$birthday}} jaar


Uitkomst:

25 jaar

function met data verwerking

{{function name='list' level=0}}{{strip}}
      <ul class="level{{$level}}">
     {{foreach $data as $entry}}
         {{if count($entry) > 1}}
         <li>{{$entry@key}}</li>
             {{list data=$entry level=$level+1}}
        {{else}}
        <li>{{$entry}}</li>
        {{/if}}
     {{/foreach}}
     </ul>
{{/strip}}{{/function}}

{{* create an array to demonstrate *}}
{{$menu = ['item1','item2','item3' => ['item3-1','item3-2','item3-3'],'item4']}}

{{* run the array through the function *}}
{{list data=$menu}}


Uitkomst:

<ul class="level0">
   <li>item1</li>
   <li>item2</li>
   <li>item3</li>
   <ul class="level1">
      <li>item3-1</li>
      <li>item3-2</li>
      <li>item3-3</li>
   </ul>
</ul>

function voor het bepalen van het huidige kwartaal

{{function name='currentQuarter'}}
        {{$currentMonth = $smarty.now|date_format:'%m'}}
        {{if $currentMonth lte 3}}
           {{$return = 1}}
        {{else if $currentMonth lte 6}}
           {{$return = 2}}
        {{else if $currentMonth lte 9}}
           {{$return = 3}}
        {{else}}
           {{$return = 4}}
        {{/if}}
        {{$return}}
{{/function}}

Huidig kwartaal: {{currentQuarter}}

Uitkomst op basis van Juli:

Huidig kwartaal: 3