Example #1
0
 public function test_recursion()
 {
     $x = new Template(null, "main");
     $x->setContents("{recursive1}");
     $x->set_recursionDepth(50);
     $x->add(new Template(dirname(__FILE__) . '/files/templates/recursive1.tmpl'), false);
     $x->add(new Template(dirname(__FILE__) . '/files/templates/recursive2.tmpl'), false);
     $rendered = $x->render(true);
     $this->assertTrue(strlen($rendered) > 0, "rendered value is blank... ");
     $matches = array();
     $num = preg_match_all('~recursive1~', $rendered, $matches);
     $this->assertEquals(50, $num, "did not recurse... ");
 }
Example #2
0
 public function setBlockRow($handle, $removeDefs = true)
 {
     $name = $handle;
     $rowPlaceholder = $name;
     $reg = "/<!-- BEGIN {$handle} -->(.+){0,}<!-- END {$handle} -->/sU";
     $m = array();
     preg_match_all($reg, $this->_contents, $m);
     if (!is_array($m) || !isset($m[0][0]) || !is_string($m[0][0])) {
         throw new \Exception("could not find block row '" . $handle . "' in template '" . $this->name . ", filename=(" . $this->_origin . ")");
     } else {
         if ($removeDefs) {
             $openHandle = "<!-- BEGIN {$handle} -->";
             $endHandle = "<!-- END {$handle} -->";
             $m[0][0] = str_replace($openHandle, "", $m[0][0]);
             $m[0][0] = str_replace($endHandle, "", $m[0][0]);
         }
         $this->_contents = preg_replace($reg, "{" . $rowPlaceholder . "}", $this->_contents);
     }
     $blockRow = new Template(null, $rowPlaceholder);
     $blockRow->setContents($m[0][0]);
     $this->_blockRows[$handle] = $blockRow;
     return $blockRow;
 }