PEAR Manual
Prev |  | Next

# Configuration Options

Configuration Options -- Setting the defaults for HTML_Template_Flexy

## Configuration

HTML_Template_Flexy can either be configured globally or on each instance, using an associated array. The easiest way to configure HTML_Template_Flexy is to use ini files (although you may also like to consider the PEAR::Config class, or your own configuration system)

Example 41-1. This is a typical configuration file for HTML_Template_Flexy
    [HTML_Template_Flexy]

    templateDir = /home/me/Projects/myapplication/templates
    compileDir =  /home/me/Projects/myapplication/compiled_templates
    forceCompile = 0
    debug = 0
    locale = en
    compiler = Standard

To use this ini file with HTML_Template_Flexy, (and Possibly any other classes that use options like this)

Example 41-2. Setting the default options
    <?php
    $config = parse_ini_file('example.ini',TRUE);
    foreach($config as $class=>$values) {
      $options = &PEAR::getStaticProperty($class,'options');
      $options = $values;
    }
    ?>

Alternatively you can set (or override) the configuration when you instantate the class

Example 41-3. Setting the default options
    <?php
      $options = array(
          'templateDir'   => '/home/me/Projects/myapplication/templates',
          'compileDir'    => '/home/me/Projects/myapplication/compiled_templates',
          'forceCompile'  => 0,
          'debug'         => 0,
          'locale'        => 'en',
          'compiler'      => 'Standard',
      );
      $template = new HTML_Template_Flexy($options);
    ?>

## Configuration Options

`templateDir` directory

  This is the directory where all your templates are located

`compileDir` directory

  The directory where the compiled templates will be stored, This directory should be writable by the web server

`forceCompile` boolean

  Normally 0, means that the template will only be compiled once (or if the template file is altered), this is only really usefull if you are developing filters and need to test the result.

`debug` integer

  The default debugging level (default 0=off), 1= shows some debugging information

`locale` string

  Default is 'en' - english. The language use for reading/writing templates. Currently it is only used in the compiled files filename = eg. originalname.html.en.php

  Flexy uses get_text() internally if it is installed, and will replace all strings in a HTML page with the return value of get_text(). - This enables the creation of multilanguage sites with a little less pain.

  A file {templatename}.strings.serial is created for each file that is parsed, you can use this with PHP's unserialize function to retrieve an array of all the strings in a file. (for translating), or just use the tool xgettext.

`compiler` string

  Default is 'Flexy' - The Flexy Tokenizer Driver engine. Other engines available are regex (similar to Xipe's engine), Raw (For plain PHP files with no replacement or compiling) and Standard (depreciated). You can use this field to load your own engines, either based Off the core code, or totally seperate..

`multiSource` boolean

  Default is false - Allow the same template to exist in multiple places (eg. if you have theme's and want to fall back to a default template if the themed version doesnt exist.)

`templateDirOrder` string

  Default is '' - by default, the first matched template is used, if you have multiple paths, and want the last in the list to be used, then set this to 'reverse'

`filters` array|string

  an array or comma seperated string of filters ONLY USED BY THE Regex backend, available filters are: BodyOnly (strip everything before and after body tag), Mail (add an extra line break after php tags.), Php (removes php code, not very reliably), SimpleTags (variable, method etc. replacement), XML (replace XML opening tag with echos.)

`nonHTML` boolean

  default is false - if you use the Flexy compiler, it turns off parsing of HTML, (not heavily tested)

`allowPHP` boolean|string

  default is false - allows php code in templates, normally off to help you reduce the chance of you shooting your self in the foot by forgetting to escape output.. (can be usefull for complex looping), but not normally recommended. setting to true, enables PHP code, setting to 'delete' removes php code. (although it doesnt prevent XSS attacks, so it is only suited to trusted users)

`flexyIgnore` boolean

  default is false - setting to true, will turn off the conversion of html form elements into HTML_Template_Flexy_Element's

`numberFormat` string

  default is ",2,'.',','" - this is the piece of code that is appended to the output engine when using the :n modifier, eg. {xxxx:n} is replaced with number_format($t->xxxx,2,'.',','); seen the php manual page for number_format the default output would be: 1,200.00

`url_rewrite` string

  when compiling the template flexy can rewrite <img src, <script src, <a href and xul stylesheet urls. The format is "match/original:new/url, match/another/original:new/url" each combo is seperated by a comma, and the colon seperates the pair. This helps previewing templates without using the engine.

`compileToString` boolean

  default false - if set tot try, the compile will return a string of the compiled template, rather than writing it to the cache file. eg. {object._myvar}

`privates` boolean

  default false - if set to true, you can access variables prefixed with an underscore (normally private in PEAR's coding standards) eg. {someobject._myprivatevar} and {_myprivate}

`globals` boolean

  default false - if set to true, you can access php's globals and superglobals, eg. {_POST[myvar]}, {GLOBALS[somevalue]}

`globalfunctions` boolean

  default false - if set to true, you can access any native php function using the GLOBALS. prefix eg. {GLOBALS.date(#d/m/Y#)} obviously you should trust your template authors, as they can easily run exec() if this is enabled.

`locale` string

  default 'en' - either used to search for language specific templates with {filename}.{locale}.{extension} or in conjunction with the Translation2 language translation toolkit, to set the language used to translate templates to at compile time.

`Translation2` mixed

  default false - you can set this to an array or an existing Translation2 object eg. Translation2 => array('driver'=>'dataobjectsimple', options=>array()));

`strict` boolean

  default false - By default warnings about undefined variabes are hidden, this turns on all PHP warnings during the outputObject calls. Can be usefull for finding bugs hidden by method callbacks.

`fatalError` int

  default constant HTML_TEMPLATE_FLEXY_ERROR_DIE - this determines the behaviour when compiling a template fails, normally flexy will die and report the error to the screen, you can change this to HTML_TEMPLATE_FLEXY_ERROR_RETURN, if you want to recieve a PEAR_Error object from compile().

`plugins` string|array

  loads plugin classes, (by default from the Plugin folder), these can be used either via {plugin.nameofmethod} or as a modifier {outputstring:dateformat}, default formats are normally collected via configuration options plugin.dateformat, plugin.numberformat.decimals, plugin.numberformat.point, plugin.numberformat.thousands

Prev | Home | Next
Introduction | Up | new HTML_Template_Flexy