Mercurial > defr > templates
comparison class.template.php @ 8:0b796d56c767
Suppression du pre-supposé selon lequel l'espace de template est prefixé t.
author | Franck Deroche <webmaster@defr.org> |
---|---|
date | Sun, 21 Oct 2007 14:18:09 +0200 |
parents | 61dee7e34a9d |
children | d06e9d5ff344 |
comparison
equal
deleted
inserted
replaced
7:61dee7e34a9d | 8:0b796d56c767 |
---|---|
8 function __construct($fileName, $shouldValidate = false) { | 8 function __construct($fileName, $shouldValidate = false) { |
9 $this->xmlDocument = new DOMDocument(); | 9 $this->xmlDocument = new DOMDocument(); |
10 $this->xmlDocument->validateOnParse = $shouldValidate; | 10 $this->xmlDocument->validateOnParse = $shouldValidate; |
11 $this->xmlDocument->loadXML(file_get_contents($fileName)); | 11 $this->xmlDocument->loadXML(file_get_contents($fileName)); |
12 $this->xmlXPath = new DOMXPath($this->xmlDocument); | 12 $this->xmlXPath = new DOMXPath($this->xmlDocument); |
13 $this->xmlXPath->registerNamespace('_t', Template::NS); | |
13 } | 14 } |
14 | 15 |
15 function apply($selector, $obj, DOMElement $root = null) { | 16 function apply($selector, $obj, DOMElement $root = null) { |
16 if(!($root instanceof DOMElement)) | 17 if(!($root instanceof DOMElement)) |
17 $root = $this->xmlDocument->documentElement; | 18 $root = $this->xmlDocument->documentElement; |
77 if($pos !== false) { | 78 if($pos !== false) { |
78 $obj['attribute'] = substr($selector,$pos +1); | 79 $obj['attribute'] = substr($selector,$pos +1); |
79 $selector = substr($selector, 0, $pos); | 80 $selector = substr($selector, 0, $pos); |
80 } | 81 } |
81 if($selector[0] == '#') { | 82 if($selector[0] == '#') { |
82 $obj['xpath'] = "//*[@t:id='" . substr($selector, 1) . "']"; | 83 $obj['xpath'] = "//*[@_t:id='" . substr($selector, 1) . "']"; |
83 $obj['nodes'] = $this->xmlXPath->query($obj['xpath'], $root); | 84 $obj['nodes'] = $this->xmlXPath->query($obj['xpath'], $root); |
84 } | 85 } |
85 else { | 86 else { |
86 $obj['nodeName'] = $selector; | 87 $obj['nodeName'] = $selector; |
87 $obj['nodes'] = $root->getElementsByTagName($selector); | 88 $obj['nodes'] = $root->getElementsByTagName($selector); |
138 $node->appendChild($content); | 139 $node->appendChild($content); |
139 } | 140 } |
140 | 141 |
141 function clean() { | 142 function clean() { |
142 // Suppression des noeuds à cloner | 143 // Suppression des noeuds à cloner |
143 $nodes = $this->xmlXPath->query("//*[@t:toClone]|//t:*"); | 144 $nodes = $this->xmlXPath->query("//*[@_t:toClone]|//_t:*"); |
144 foreach($nodes as $node) { | 145 foreach($nodes as $node) { |
145 if($node->parentNode) { | 146 if($node->parentNode) { |
146 $node->parentNode->removeChild($node); | 147 $node->parentNode->removeChild($node); |
147 } | 148 } |
148 } | 149 } |