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
Argument | Toelichting |
---|
name | De 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