Source of: Report_template.php


<?php

require_once("template.inc");
class 
ReportTemplate extends template {
                            
   
/**
    * public Report::setup()
    * Calls the right initialization for the template
    * 
    * IMPORTANT: template.inc uses a handle to point to the file
    * if you need a different one from "Index"  remover the call
    * to setFile here and call it yourself with another name.
    * 
    * @return 
    **/
   
function setup()
   {
        
/**
         *  Call the template constructor
         **/
        
$this->Template($this->_dir);
        
$this->setFile();
    } 

    
/**
     * Report::setFile()
     * 
     * Wrapper for set file functions of templates
     * 
     * @param string $handle name of the variable holding the file.
     * @return 
     **/
    
function setFile($handle="")
    {
        
/**
         *  Call the template file file
         **/
        
if( $handle ) {
            
$this->_handle $handle// Variable holding the page
        
} else {
            
$this->_handle "Index";
        }
        
$this->set_file($this->_handle$this->_file);      
    }
    
    function 
setHandle($handle
    {
        
$this->_handle $handle;
    }
    
/**
     * Wrapper for template's set variable functions
     *
     * @access public
     * @return void 
     **/
    
function replaceVar($name$value)
    {
        
/**
         * PHPLib template set variable style. 
         **/
        
$this->set_var($name$value);
    }

    
    
/**
     * Report::blockParser()
     * 
     * Wrapper to block parsing functions.
     * 
     * @param $titlename
     * @param $title
     * @return 
     **/
    
function blockParser($titlename$title)
    {
       
/**
        * PHPlib template's block handling. 
        **/
        
$titleblock "b_" $titlename
        
        if ( !isset(
$this->dummies[$titleblock])) {
        
/** 
         * if not we create one.
         * Create a marker to replace $block at the parent block
         **/
            
$this->dummies[$titleblock] = "_" $titlename "_";
            
$this->set_block($this->_handle$titleblock$this->dummies[$titleblock]);
        }
        
$this->setVar($titlename$title);
        
$this->parse($this->dummies[$titleblock], $titleblocktrue);         
    
//    $this->parse($titleblock, $this->dummies[$titleblock]);         
    
}
    
/**
     * ReportTemplate::cleanBlock()
     * 
     * Do the same cleaning we have at parseVariable, but should be
     * called from Report class
     * 
     * @param $titlename
     * @return 
     **/
    
function cleanBlock($titlename)
    {
        
$titleblock "b_" $titlename
        if ( isset(
$this->dummies[$titleblock]) ) {
            
$this->set_var($this->dummies[$titleblock], "");        
        }
    }
    
    
/**
     * Report::parseVariables()
     * 
     * Wrapper to parse the last level from report, i.e., the vars
     * 
     * PHPlib template's block handling.
     * This should the done at the innermost level of parsing, or 
     * else we get in trouble.
     * $value can be an array of values.
     * It only got here at the last level of iteration
     * 
     * @param $block
     * @param $value
     * @return 
     **/
    
function parseVariables($list)
    {
       
/**
        * See if we already have a handler $block
        * if not we create one.
        * Create a marker to replace $block at the parent currentblock
        **/
        
$block $this->_blockvaluename;

        if ( !isset(
$this->dummies[$block])) {
            
$this->dummies[$block] = "_" $block "_";
            
$this->set_block($this->_handle$block$this->dummies[$block]);
        }  
           
        
/**
         * See if we have totals to parse too. 
         **/    
        
$totalsname $this->_blocktotalname;
        if (
$this->_showtotals && !$this->dummies[$totalsname] ) {
            
/** 
             * Create a marker to replace $block for the totals
             **/
            
$this->dummies[$totalsname] = "_" $totalsname "_";
            
$this->set_block($this->_handle$totalsname$this->dummies[$totalsname]);
        }
        
        
$this->set_var($this->dummies[$block], "");
        
$this->_totalizing true;
        foreach (
$list as $name => $value) {
            
$this->setVar($value);
            
$this->parse($this->dummies[$block], $blocktrue);
        } 
        
/**
         * Parse totals
         **/
        
if ($this->_showtotals) {        
            
$this->_totalizing false;
            
$this->setVar($this->_totals);
            
$this->parse($this->dummies[$totalsname], $totalsname);
            unset(
$this->_totals);
            
$this->_totalizing true;
        } 
    }
    
/**
     * Apply the transform to a indepentend block.
     *
     */
    
function parseFinal($list$block)
    {
       
/**
        * See if we already have a handler $block
        * if not we create one.
        * Create a marker to replace $block at the parent currentblock
        **/
        
if ( !isset($this->dummies[$block])) {
            
$this->dummies[$block] = "_" $block "_";
            
$this->set_block($this->_handle$block$this->dummies[$block]);
        }  

        
/**
         * Parse totals
         **/
        
$this->_totalizing false;
        
$this->setVar($list);
        
$this->parse($this->dummies[$block], $block);
        
$this->_totalizing true;
    }

    
/**
     * Show the report
     * 
     * @access public
     * @return void 
     **/
    
function show()
    {
        
$this->parse("Out"$this->_handle);
        
$this->p("Out");
    }
    
}

?>

Processed: 2010/Sep/08 12:10:52