$flexy->compile()

$flexy->compile() – Converts a template from markup to PHP if required

Synopsis

void $flexy-> compile ( string $template )

Description

If necessary it will convert the Template markup into PHP code, and writes it to the compiledTemplate directory adding the {locale}.php to the end of the filename. The Template is only compiled if

  • No compiled file exists
  • The file modification date of the template is greater than the compiled one
  • The forceCompile Flag was set in config or when you created the template object.

It is not normally necessary to set the forceCompile flag, unless you are working on the engine itself.

Parameter

  • string $template - Used in conjuction with the config variable 'templateDir' to locate the template to compile into PHP code.

Return value

string - the location of the compiled file (which could be used with include) - although it is recommended to use the outputObject methods.

In case compileToString option is set to TRUE, the compiled file is directly returned as string here.

Note

This function can not be called statically.

Example

Compiling multiple files.

<?php
class controller_test 
{
    
    var 
$masterTemplate "master.html"
    
var $template "home.html"// name of template
    
var $title;                // page title;
    
var $numbers = array();    // an array example
    
    /* start section - deals with posts, get variables etc.*/

    
function controller_test() 
    {
        
$this->start();
        
$this->output();
    }


    function 
start() 
    {
        
$this->title "<Hello World>";
        
        for (
$i 1;$i5;$i++) {
            
$this->numbers[$i] = "Number $i";
        }
    }
    
    
/* output section - probably best to put this in the default_controller class */
    
    
function output() {
        
$master = new HTML_Template_Flexy();
        
$master->compile('some_file_name');
        
$master->outputObject($this);
    }
    
    function 
outputBody() {
        
$body = new HTML_Template_Flexy();
        
$body->compile($this->template);
        
$body->outputObject($this);
    }
    
    
    
}

new 
controller_test;
?>

Master template example

         
Page Header Goes here. 

{outputBody()}
 
Page Footer Goes here

Simple ouput example

         
      
Page Header Goes here. 

some numbers
Number 1
Number 2
Number 3
Number 4
 
Page Footer Goes here