Example #1
0
 /**
  * Begins or continues (if parameter omitted) a foreach block around the node.
  * @param HtmlNode $node Node.
  * @param TemplateNode|null $value Macro parameter.
  */
 public function _foreach(HtmlNode $node, TemplateNode $value)
 {
     if (!isset($value)) {
         if ($node->prev instanceof ForeachNode) {
             $foreachNode = $node->prev;
             $node->detach();
             $foreachNode->append($node);
             return;
         }
         throw new InvalidTemplateException(tr('Empty foreach-node must folow another foreach-node'));
     }
     $foreachNode = new ForeachNode(PhpNode::expr($value)->code);
     $node->replaceWith($foreachNode);
     $foreachNode->append($node);
 }