PHP Classes

H2OTpl: Process and output PHP template scripts

Recommend this page to a friend!
  Info   View files Example   Screenshots Screenshots   View files View files (12)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2023-06-02 (4 months ago) RSS 2.0 feedNot enough user ratingsTotal: 184 All time: 8,630 This week: 188Up
Version License PHP version Categories
h2otpl 2.9GNU Lesser Genera...5.2PHP 5, Templates
Description 

Author

This class can process and output PHP template scripts

It can process a given template PHP script by including it and capturing its output.

The template can access the template variables using $this, as the template variables are class variables.

It supports all the constructs of PHP like loops, conditional sections, including external files, etc..

The template output can be compressed by removing HTML comments and whitespace. The final processed output can be cached in local files to avoid template reprocessing overhead.

Picture of Pierre-Henry Soria
  Performance   Level  
Name: Pierre-Henry Soria <contact>
Classes: 43 packages by
Country: United Kingdom
Age: 32
All time rank: 38916 in United Kingdom
Week rank: 1 Up
Innovation award
Innovation award
Nominee: 16x

Winner: 3x

Example

<?php
/**
 * @author Pierre-Henry Soria <ph7software@gmail.com>
 * @copyright (c) 2010-2014, Pierre-Henry Soria. All Rights Reserved.
 * @license LGPL Lesser General Public License <http://www.gnu.org/copyleft/lesser.html>
 * @link http://hizup.com
 */

if (version_compare(PHP_VERSION, '5.4.0', '<'))
{
    echo
'<p style="color:#FF0000;text-align:center">Oops! Your PHP version is <i>' . PHP_VERSION . '</i>. <b>H2OTpl Demo</b> is only compatible with PHP <i>5.4</i> or higher.</p>';
    exit;
}

if (
ini_get('short_open_tag') == 0)
{
    echo
'<p style="color:#FF0000;text-align:center"><b>Warning!</b> short_open_tag of your PHP configuration is Off (must be On!)<br /> This example cannot work without <b>short_open_tag</b>.</p>';
    exit;
}

define('SITE_URL', 'http://'.dirname($_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']) .DIRECTORY_SEPARATOR);
include_once (
dirname(__FILE__) . DIRECTORY_SEPARATOR . 'libs/H2OTpl.class.php');
$oTpl = new H2OTpl;
$oTpl->setTplDir('templates'); // Set the templates directory
$oTpl->setCacheDir('cache'); // Set the cache directory
$oTpl->setTplExt('.tpl.php'); // Set a template extension
$oTpl->setCacheExt('.cache.php'); // Set a cache extension
$oTpl->setCaching(true); // Enable the cache
$oTpl->setCacheExpire(3600); // Set the caching time - 3600 = 1 hour
$oTpl->setHtmlCompress(true); // Set the HTML compress
// $oTpl->clearCache(); // Clear Cache

/* Disable automatic protection on variables, because we use HTML code in the variables. However, to protect other variable (such <title></title> tag in the example) it is still possible to use the escape() method. */
$oTpl->setAutoEscape(false);


// Create some variables...
$sName = 'Welcome To My WebSite';
$sH1Description = 'Hello World!';
$sDescription = 'Welcome to my site using <strong>H2OTpl</strong>: The <em>fastest</em> and <em>easiest</em> template engine using PHP!';

// Generate an array of authors and titles.
$aBookList = [
    [
       
'author' => 'Hernando de Soto',
       
'title' => 'The Mystery of Capitalism'
   
],
    [
       
'author' => 'Neal Stephenson',
       
'title' => 'Cryptonomicon'
   
],
    [
       
'author' => 'Milton Friedman',
       
'title' => 'Free to Choose'
   
]
];

// Assign values to the H2OTpl instance.
$oTpl->sBaseUrl = SITE_URL;
$oTpl->sTitle = $sName;
$oTpl->aBooks = $aBookList;
$oTpl->sTitle = $sName;
$oTpl->sH1 = $sH1Description;
$oTpl->sDesc = $sDescription;

// Display the template using the assigned values.
$oTpl->display('home');


Screenshots  
  • H2OTpl-Exemple
  Files folder image Files  
File Role Description
Files folder imagedemo (1 file, 3 directories)
Accessible without login Plain text file CHANGES-LOG Data Auxiliary data
Plain text file H2OTpl.class.php Class Class source
Accessible without login Plain text file LICENSE.txt Lic. Documentation
Accessible without login Plain text file README.md Data Auxiliary data

  Files folder image Files  /  demo  
File Role Description
Files folder imagecache (1 file)
Files folder imagelibs (1 file)
Files folder imagetemplates (1 file, 2 directories)
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files  /  demo  /  cache  
File Role Description
  Accessible without login Plain text file home.cache.php Output Cache output file

  Files folder image Files  /  demo  /  libs  
File Role Description
  Accessible without login Plain text file H2OTpl.class.php Example Example script

  Files folder image Files  /  demo  /  templates  
File Role Description
Files folder imageinc (2 files)
Files folder imagestyle (2 directories)
  Accessible without login Plain text file home.tpl.php Aux. Example script

  Files folder image Files  /  demo  /  templates  /  inc  
File Role Description
  Accessible without login Plain text file footer.tpl.php Aux. Example script
  Accessible without login Plain text file header.tpl.php Aux. Example script

  Files folder image Files  /  demo  /  templates  /  style  
File Role Description
Files folder imagecss (1 file)
Files folder imageimg (1 file)

  Files folder image Files  /  demo  /  templates  /  style  /  css  
File Role Description
  Accessible without login Plain text file common.css Data Sample output

  Files folder image Files  /  demo  /  templates  /  style  /  img  
File Role Description
  Accessible without login Image file HTML5.png Icon Icon image

 Version Control Unique User Downloads Download Rankings  
 92%
Total:184
This week:0
All time:8,630
This week:188Up