some fixes, and improve tests
This commit is contained in:
parent
11be3ce70c
commit
8f24cef9f6
|
@ -20,7 +20,7 @@ class TplBlock {
|
|||
* Input object name
|
||||
*/
|
||||
|
||||
public function __construct(STRING $name =""){
|
||||
public function __construct($name = NULL){
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ class TplBlock {
|
|||
}
|
||||
|
||||
public function add_sub_block(TplBlock $bloc){
|
||||
if(empty($bloc->name)){
|
||||
if(is_null($bloc->name) || empty($bloc->name)){
|
||||
throw new InvalidTemplateException("A sub tpl bloc can't have an empty name");
|
||||
return false;
|
||||
}
|
||||
|
@ -59,9 +59,9 @@ class TplBlock {
|
|||
|
||||
foreach($this->subBlocs as $blocName => $blocsArr){
|
||||
$str = preg_replace_callback(
|
||||
'/' . self::blockStartStart . preg_quote($blocName) . self::blockStartEnd .
|
||||
'/' . self::blockStartStart . preg_quote($prefix . $blocName) . self::blockStartEnd .
|
||||
'(.*?)'.
|
||||
self::blockEndStart . preg_quote($blocName). self::blockEndEnd.
|
||||
self::blockEndStart . preg_quote($prefix . $blocName). self::blockEndEnd.
|
||||
'/is',
|
||||
function($m) use($blocName,$blocsArr,$prefix) {
|
||||
$out = "";
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
include("../class.TplBlock.php");
|
||||
|
||||
$tpl = new TplBlock();
|
||||
|
||||
//simples vars
|
||||
|
||||
$tpl->add_vars(array(
|
||||
"name" => "Gnieark",
|
||||
"title" => "Monsieur",
|
||||
|
@ -12,15 +15,33 @@ $tpl->add_vars(array(
|
|||
|
||||
$primes = array(1,2,3,5,7,11);
|
||||
|
||||
// a sub bloc
|
||||
foreach($primes as $prime){
|
||||
$tplPrime = new TplBlock('primes');
|
||||
$tplPrime->add_vars(array('number' => $prime));
|
||||
$tpl->add_sub_block($tplPrime);
|
||||
}
|
||||
|
||||
|
||||
// test sub - sub blocs
|
||||
for ($i = 2; $i < 121; $i++){
|
||||
|
||||
$tplNumber = new TplBlock('number');
|
||||
$tplNumber->add_vars( array("value" => $i));
|
||||
$index = 1;
|
||||
$number = $i;
|
||||
while ( $number > 1 && $index < count($primes)){
|
||||
if($number % $primes[$index] == 0){
|
||||
$number = $number / $primes[$index];
|
||||
$tplDivisor = new TplBlock("divisor");
|
||||
$tplDivisor->add_vars( array("value" => $primes[$index]));
|
||||
$tplNumber->add_sub_block($tplDivisor);
|
||||
}else{
|
||||
$index++;
|
||||
}
|
||||
}
|
||||
$tpl->add_sub_block($tplNumber);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
echo $tpl->apply_tpl_file("sample.txt");
|
Loading…
Reference in New Issue
Block a user