You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Frédéric BISSON be80cbde33 Source code now conforms to PSR-2
Added composer support
Added PHP Code Sniffer configuration
Added PHP Mess Detector configuration
Added Makefile
6 years ago
sample Source code now conforms to PSR-2 6 years ago
test Source code now conforms to PSR-2 6 years ago
.travis.yml travis 6 years ago
Makefile Source code now conforms to PSR-2 6 years ago
README.md : 6 years ago
TplBlock.php Source code now conforms to PSR-2 6 years ago
composer.json Source code now conforms to PSR-2 6 years ago
phpcs.xml Source code now conforms to PSR-2 6 years ago
phpmd.xml Source code now conforms to PSR-2 6 years ago

README.md

tplBlock

A very simple PHP template class

Build Status

Sample

This simple template file:

<html>
<body>
    <h1>{{pageTilte}}</h1>
    <ul>
    <!-- BEGIN templatesystem -->
        <li><a href="{{templatesystem.url}}"> {{templatesystem.name}}</a>
         by {{templatesystem.author}} is {{templatesystem.quality}}</li> 
    <!-- END templatesystem -->
    </ul>

</body>
</html>

Parsed with this code:

<?php
require_once ("path/class.TplBlock.php");

//init object
$tpl = new TplBlock();
//add a var
$tpl->add_vars(array("pageTilte" => "Poke @zigazou ;)"));


$data = array(
    array(
        "url"       => "https://github.com/gnieark/tplBlock",
        "name"      => "tplBlock",
        "author"    => "Gnieark",
        "quality"   => "simple and perfect"
    ),
    array(
        "url"       => "https://github.com/Zigazou/TemplateEngine",
        "name"      =>  "TemplateEngine",
        "author"    => "Zigazou",
        "quality"   => "more complex than tplBlock"

    )
);

//add blocks
foreach ($data as $block){
    $tplTemplateSystem = new TplBlock("templatesystem");
    $tplTemplateSystem -> add_vars($block);
    $tpl->add_sub_block($tplTemplateSystem);
}

//parsing:
echo $tpl->apply_tpl_file("template.html");

will return:

<html>
<body>
    <h1>Poke @zigazou ;)</h1>
    <ul>
            <li><a href="https://github.com/gnieark/tplBlock"> tplBlock</a>
         by Gnieark is simple and perfect</li> 
            <li><a href="https://github.com/Zigazou/TemplateEngine"> TemplateEngine</a>
         by Zigazou is more complex than tplBlock</li> 
    
    </ul>

</body>
</html>

Conception choices

I wrote this class for use it on others personnals projects. It's really simple. I think logicals functions "OR" "IF", filtering, caching, are not the templating system matter.

If a block ( <--BEGIN .... )is in the template, but is not called, it will be deleted.

Methods apply_tpl_file and apply_tpl_str have for second (optional) parameters a bolean. (true if not given). If true, the potentials carriage returns just after the BEGIN and just before the END are deleted.

For now, class is permissive. I'll improve it to manage templating errors.