From 4fb69bf23ae7e3f183c63434c0657890f407f289 Mon Sep 17 00:00:00 2001 From: Greg Bowler Date: Sat, 21 Feb 2015 15:57:12 +0000 Subject: [PATCH] Add appendTemplate() helper function --- src/Dom/Node.php | 11 +++++++++-- src/Page/TemplateFactory.php | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Dom/Node.php b/src/Dom/Node.php index bb1a8e40..06ff60d1 100644 --- a/src/Dom/Node.php +++ b/src/Dom/Node.php @@ -169,6 +169,7 @@ public function __set($name, $value) { $this->setValue($value); break; + case "templateName": case "templateParentNode": case "templatePreviousSibling": case "templateNextSibling": @@ -204,10 +205,16 @@ public function __call($name, $args) { return $value; } - // TODO: attach template parent stuff... + if($name === "appendTemplate" + && !empty($this->domNode->templateName)) { + $this->templateParentNode->insertBefore( + $this, + $this->templateNextSibling + ); + return; + } throw new NodeMethodNotDefinedException($name); - break; } /** diff --git a/src/Page/TemplateFactory.php b/src/Page/TemplateFactory.php index 2c33906c..e84f65aa 100644 --- a/src/Page/TemplateFactory.php +++ b/src/Page/TemplateFactory.php @@ -62,12 +62,13 @@ public function __construct($document) { public function get($name) { if(isset($this->elementArray[$name])) { $node = $this->elementArray[$name]->cloneNode(true); + $node->templateName = $name; $node->templateParentNode = $this->templateNodeMap["parent"][$name]; $node->templatePreviousSibling = $this->templateNodeMap["previousSibling"][$name]; $node->templateNextSibling = $this->templateNodeMap["nextSibling"][$name]; - $node->template = $name; + return $node; }