XaminProject / handlebars.php

Handlebars processor for php
331 stars 132 forks source link

usage of helper #19

Closed devel-pa closed 11 years ago

devel-pa commented 11 years ago

Hi, I'm trying already for few days to understand how it's working without success.

    $render = new Handlebars_Engine();
     $render->addHelper('toLower',
          function($value) {
            echo $value;
            return strtolower((string) $value);
          }
        );

in template

    {{ 'test0' }}
    {{ toLower 'TEST1' }}
    {{{ toLower 'TEST2' }}}

no result and the helper is not accessed

if I'm doing

    {{#toLower}}TEST3{{/toLower}}

the method is accessed but the value is a template Thanks

everplays commented 11 years ago

I hope it helps:

<?php
$h = new Handlebars_Engine;

$h->addHelper('toLowerArg', function($template, $context, $args, $source){
    return strtolower($args);
});

$h->addHelper('toLowerVar', function($template, $context, $args, $source){
    return strtolower($context->get($args));
});

$h->addHelper('toLowerTemplate', function($template, $context, $args, $source){
    return strtolower($source);
});

echo $h->render(
    '   
    template: {{#toLowerTemplate}}TEST3{{/toLowerTemplate}}
    var: {{#toLowerVar name}}{{/toLowerVar}}
    arg: {{#toLowerArg TEST3}}{{/toLowerArg}}
    ',
    array(
        'name' => 'TEST3'
    )   
);

the result is:

    template: test3
    var: test3
    arg: test3
devel-pa commented 11 years ago

Oh, yeah. Thank you very much