dotblue/nette-templating

Localizable templates with smooth setup in Nette Framework

Installs: 3 032

Dependents: 0

Stars: 5

Watchers: 6

Language: PHP

2.0.0 2014-05-12 11:22 UTC

README

Requirements

Installation

  1. Copy source codes from Github or using Composer:
$ composer require dotblue/nette-templating@~1.0
  1. Register as Configurator's extension:
extensions:
    templateHelpers: DotBlue\Templating\Helpers\Extension
  1. Register your helpers:
templateHelpers:
    - ShoutHelper

How should MyHelper look?

use DotBlue\Templating\Helpers;

class ShoutHelper implements Helpers\IHelper
{

    public function getName()
    {
        return 'shout';
    }

    public function execute($value, Helpers\Options $options)
    {
        return $value . '!';
    }

}

All arguments are wrapped in Options object.

public function execute($value, Helpers\Options $options)
{
    $mark = $options->first('!');
    return $value . $mark;
}
{var $text = 'Hi'}
{$text|shout:'!!!'} {* print "Hi!!!" *}

Localization

You can use new macro {locale $language /} in your templates (best place is your layout). Provided $language variable is then available in helper via Options object:

$language = $options->getLocale();

$language can be anything you wish. You can also place {locale} macro in template multiple times, for example to print amount of money in all localized versions (using hypothetical currency helper):

{foreach $languages as $language}
    {locale $language}
        {$money|currency}
    {/locale}
{/foreach}