# Template Syntax Example

Variables are output with {{varname}}

    # A simple variable, in Controller it's $data['variable']
    {{variable}}

    # Using assoc array, $data['user']['fullname'] = 'DooPHP'
    {{user.fullname}}

    # Using functions/template tag with variables, case insensitive
    {{upper(variable)}}
    {{UPPER(user.fullname)}}

    # You can pass in arguments with the functions
    {{sample_with_args(variable, 'This is an argument')}}

Include a template file <!-- include 'file' -->

    # Including a template file
    <!-- include 'template_name_without_dot_html' -->

    # Including a template file which is in a sub directory
    <!-- include 'folder/templatename' -->

    # Including a template file where the name is from a variable
    <!-- include "{{filename}}" -->

Looping a list <!-- loop users -->

    # Looping a simple array $data['users']=array('john','doo','marie')
    <!-- loop users -->
        <li> {{users' value}} </li>
    <!-- endloop -->

    # Or a shorter alternative ...
    <!-- loop users -->
        <li> {{users' v}} </li>
    <!-- endloop -->

    # The loop name can be change ...
    <!-- loop users -->
        <li> {{loop' v}} </li>
    <!-- endloop -->

    # Functions can be used in loop
    <!-- loop users -->
        <li> {{upper(users' value)}} </li>
    <!-- endloop -->

    # Looping an assoc array
     $data['users']=array(
        'john'=>array('name'=>'John Smith', 'gender'=>'male'),
        'lee'=>array('name'=>'Bruce Lee', 'gender'=>'male')
     );

    <!-- loop users -->
        <li> {{users' key}} fullname is {{users' value.name}} gender is {{users' value.gender}} </li>
    <!-- endloop -->

Using Objects in Template {{object.@property}}

    # A simple object
    Doo::loadModel('SomeModel');
    $obj = new SomeModel;
    $obj->fullname = 'My Cool Name';
    $obj->SomeObject->weight = 88
    $data['obj'] = $obj;

    {{obj.@fullname}}
    {{upper(obj.@fullname)}}
    {{obj.@SomeObject.@weight}}

    # Looping an array of Object
    <!-- loop users -->
        <li>
            Name:   {{users' value.@fullname}}
            Gender: {{users' value.@gender}}
            Weight: {{users' v.@Physical.@weight}}
            Height: {{l' v.@Physical.@height}}
        </li>
    <!-- endloop -->

BACK TO TOP