/** * @param Tokenizer $tokens * @param Tag $scope */ public static function tagBlockClose($tokens, Tag $scope) { $tpl = $scope->tpl; $name = $scope["name"]; if (isset($tpl->blocks[$name])) { // block defined $block =& $tpl->blocks[$name]; if ($block['use_parent']) { $parent = $scope->getContent(); $block['block'] = str_replace($block['use_parent'] . " ?>", "?>" . $parent, $block['block']); } if (!$block["import"]) { // not from {use} - redefine block $scope->replaceContent($block["block"]); return; } elseif ($block["import"] != $tpl->getName()) { // tag {use} was in another template $tpl->blocks[$scope["name"]]["import"] = false; $scope->replaceContent($block["block"]); } } $tpl->blocks[$scope["name"]] = array("from" => $tpl->getName(), "import" => false, "use_parent" => $scope["use_parent"], "block" => $scope->getContent()); }