Mercurial > SimpleWebPresenter
annotate InputParser.inc @ 124:6766250a0baa
Support for parameters as directory structure.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Fri, 29 Dec 2017 19:59:22 +0100 |
| parents | 8678ce12d533 |
| children | 7858ceb293d1 |
| rev | line source |
|---|---|
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 <?php |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
2 /// @cond |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
3 $baseDir = dirname(__FILE__); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
4 $cache = ScriptIncludeCache::instance(__FILE__); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
5 $cache->includeOnce('Page.inc', dirname(__FILE__)); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
6 /// @endcond |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
7 |
|
51
2cfea6e84694
Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
39
diff
changeset
|
8 /** |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
9 * Functionality for translating an XML configuration document into a webpage |
|
51
2cfea6e84694
Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
39
diff
changeset
|
10 */ |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
11 class InputParser extends Page |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
12 { |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
13 private $options; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
14 private $master; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
15 |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
16 /** |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
17 * Constructs a new InputParser object |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
18 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
19 * @param $name name of file to read configuration from |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
20 * |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
68
diff
changeset
|
21 * @param $masterCache CacheTimeCheck cache object to use as parent |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
68
diff
changeset
|
22 * for this inputParsercache |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
23 */ |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
24 function __construct($name, $masterCache) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
25 $this->master = new DOMDocument(); |
|
68
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
66
diff
changeset
|
26 $cache = new CacheTimeCheck($name); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
66
diff
changeset
|
27 $cache->addParent($masterCache); |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
28 parent::setCache($cache); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
29 $this->master->load($name); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
30 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
31 $this->options = new Options($this->master); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
32 $this->options->setCache($cache); |
|
124
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
33 $base=basePath(); |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
34 $base=$_SERVER['CONTEXT_DOCUMENT_ROOT']; |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
35 $this->options->setBasePath($base); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
36 $this->options->setCacheable(true); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
37 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
38 $this->options->setUrlParams(array('name', 'lang')); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
39 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
40 if(array_key_exists('lang', $_GET) && $_GET['lang']) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
41 $this->options->setLang($_GET['lang']); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
42 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
43 else { |
|
100
0a33803ee026
Setting variant correctly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
99
diff
changeset
|
44 if (count($this->options->getAcceptedLanguages()) > 1) |
|
0a33803ee026
Setting variant correctly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
99
diff
changeset
|
45 $this->addVariant('Accept-Language'); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
46 $this->options->setLang($this->options->getDefaultLang()); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
47 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
48 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
49 if(array_key_exists('name', $_GET) && $_GET['name']) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
50 $this->options->setName($_GET['name']); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
51 } |
|
124
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
52 else { |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
53 $pathToAnalyze=$_SERVER['PATH_TRANSLATED']; |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
54 $prefix=$_SERVER['SCRIPT_FILENAME']; |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
55 if (substr($pathToAnalyze, 0, strlen($prefix)) == $prefix) { |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
56 $pathToAnalyze = substr($pathToAnalyze, strlen($prefix)); |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
57 } |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
58 preg_match('/\/([^\/]*)$/', $pathToAnalyze, $groups); |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
59 if ($groups[1]) { |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
60 $this->options->setName($groups[1]); |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
61 } |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
62 } |
|
6766250a0baa
Support for parameters as directory structure.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
123
diff
changeset
|
63 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
64 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
65 $params = $this->master->getElementsByTagName("param"); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
66 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
67 foreach ($params as $param) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
68 if ($param->getAttribute("type") == "input") { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
69 $doc = self::getInput($this->master, $param, $this->options); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
70 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
71 $parent = $param->parentNode; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
72 foreach ($doc->firstChild->childNodes as $child) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
73 $clonedChild = $this->master->importNode($child, true); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
74 $parent->insertBefore($clonedChild, $param); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
75 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
76 $parent->removeChild($param); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
77 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
78 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
79 $this->master = self::getFiles($this->master, $this->options); |
|
115
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
80 self::removeCommentsFromDOM($this->master); |
|
111
adf7b11921f4
No compression when debugging.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
81 $cache->setMaxAge(0); |
|
29
394b5df43d1a
Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
26
diff
changeset
|
82 } |
|
394b5df43d1a
Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
26
diff
changeset
|
83 |
|
115
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
84 /** |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
85 * Removes all comments from the DOM |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
86 * |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
87 * @param $dom A DOMDocument for processing |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
88 */ |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
89 static function removeCommentsFromDOM($dom) |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
90 { |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
91 $xpath = new DOMXPath($dom); |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
92 foreach ($xpath->query('//comment()') as $comment) { |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
93 $comment->parentNode->removeChild($comment); |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
94 } |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
95 } |
|
b9668126e52e
Remove comments.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
107
diff
changeset
|
96 |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
97 function cacheCheck() |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
98 { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
99 return $this->options->getCacheable(); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
100 } |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
101 |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
102 /** |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
103 * Generate an appropriate response for this page, eg. 302 NOT |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
104 * MODIFIED or the actual page |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
105 */ |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
106 function generateContent() |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
107 { |
|
105
b6381903122e
Prevent entity encoding of javascript
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
100
diff
changeset
|
108 //We may need to set and check the contenttype and replace |
|
b6381903122e
Prevent entity encoding of javascript
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
100
diff
changeset
|
109 //saveHTML with saveXML |
|
123
8678ce12d533
Make sure all placeholders are replaced.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
117
diff
changeset
|
110 $retVal = new PageContent(options::replacePlaceholders($this->master->saveXML())); |
|
92
f468365813c9
Set language header.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
111 $retVal->setHeader('Content-Language', $this->options->getLang()); |
|
f468365813c9
Set language header.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
112 return $retVal; |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
113 } |
|
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
114 |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
115 /** |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
116 * Extracts data from a @<param@> tag. |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
117 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
118 * @param $param the param tag |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
119 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
120 * @return if the type is array, return an array, otherwise return a |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
121 * scalar |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
122 */ |
|
105
b6381903122e
Prevent entity encoding of javascript
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
100
diff
changeset
|
123 static function getParam($param) |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
124 { |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
125 $param_type = $param->getAttribute("type"); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
126 $param_value; |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
127 if (! $param_type) |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
128 $param_type = "scalar"; |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
129 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
130 if($param_type == "scalar") { |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
131 $param_subst = $param->getAttribute("subst"); |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
132 $param_value = $param->getAttribute("value"); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
133 if ($param_subst) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
134 /* |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
135 $param_value=preg_replace("/name/", $name, $param_subst); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
136 $param_value=preg_replace('/lang/', $lang, $param_value); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
137 */ |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
138 } |
|
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
139 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
140 elseif($param_type == "array") { |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
141 $params = $param->getElementsByTagName("param"); |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
142 $param_value = array(); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
143 foreach ($param->childNodes as $param) { |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
144 if ($param->nodeType == XML_ELEMENT_NODE) { |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
145 array_push($param_value, self::getParam($param)); |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
146 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
147 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
148 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
149 return $param_value; |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
150 } |
|
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
151 |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
152 /** |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
153 * This is the last processing stage for generating a file. |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
154 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
155 * @param $doc the document to be worked upon |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
156 * @param $options an Options object for this file. |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
157 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
158 * @return This is the same as the input document, fully processed |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
159 */ |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
160 static function getFiles($doc, $options) { |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
161 $lang = $options->getLang(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
162 $conf = $options->getName(); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
163 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
164 $toRemove = array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
165 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
166 $topLevelTags = $doc->getElementsByTagName("toplevel"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
167 foreach ($topLevelTags as $topLevel) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
168 $topLevel->parentNode->removeChild($topLevel); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
169 } |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
170 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
171 $valueDict = array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
172 $fragments = array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
173 $setters = $doc->getElementsByTagName("set"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
174 foreach ($setters as $setTag) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
175 $key = $setTag->getAttribute("id"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
176 $type = $setTag->getAttribute("type"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
177 if ($type == "fragment") { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
178 $fragments[$key] = $setTag; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
179 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
180 else { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
181 $value = $setTag->getAttribute("value"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
182 if ($key && $value) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
183 $valueDict[$key] = $value; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
184 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
185 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
186 //We need to iterate in the opposite direction when removing, |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
187 //so best shifting. |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
188 array_unshift($toRemove, $setTag); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
189 } |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
190 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
191 $params = $doc->getElementsByTagName("param"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
192 foreach ($params as $param) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
193 if ($param->getAttribute("type")=="input_config") { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
194 $id = $param->getAttribute("id"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
195 if (array_key_exists($id, $valueDict)) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
196 $value = $valueDict[$id]; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
197 $tmp = new DOMDocument(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
198 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
199 $tmp->loadXml("<xml>${value}</xml>"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
200 $parent = $param->parentNode; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
201 $parent->insertBefore(new DOMText($tmp->textContent), $param); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
202 //We need to iterate in the opposite direction when removing, |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
203 //so best shifting. |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
204 array_unshift($toRemove, $param); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
205 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
206 elseif (array_key_exists($id, $fragments)) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
207 $fragment = $fragments[$id]; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
208 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
209 $cloneFragment = $fragment->cloneNode(true); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
210 $insNode = $param; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
211 for ($i = $cloneFragment->childNodes->length - 1; $i >= 0; $i--) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
212 $child = $cloneFragment->childNodes->item($i); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
213 $child = $child->parentNode->removeChild($child); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
214 $insNode = $insNode->parentNode->insertBefore($child, $insNode); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
215 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
216 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
217 //We need to iterate in the opposite direction when removing, |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
218 //so best shifting. |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
219 array_unshift($toRemove, $param); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
220 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
221 } |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
222 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
223 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
224 foreach($toRemove as $param) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
225 $parent = $param->parentNode; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
226 $parent->removeChild($param); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
227 } |
|
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
228 |
|
117
e01ce5722f2b
New change to how we save (X)HTML files. This time we simplify things
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
116
diff
changeset
|
229 $body = getElementByTagName($doc,"html"); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
230 $files = $body->getElementsByTagName("file"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
231 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
232 $toRemove = array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
233 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
234 foreach ($files as $file) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
235 $script = $file->getAttribute("script"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
236 if ($script) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
237 $options->setCacheable(false); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
238 $src=""; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
239 $cwd = getcwd(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
240 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
241 $matches=array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
242 preg_match('/(.*\/)/', $script, $matches); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
243 $dirname=$matches[0]; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
244 preg_match('/([^\/]*)$/', $script, $matches); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
245 $filename=$matches[0]; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
246 chdir("${lang}/${dirname}"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
247 $pipe=popen("php ${filename}","r"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
248 $file_content = stream_get_contents($pipe); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
249 chdir("${cwd}"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
250 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
251 else { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
252 $src = $file->getAttribute("src"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
253 $fname = $options->getBasePath() . "/${lang}/${src}"; |
|
107
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
254 if (!file_exists($fname) ) { |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
255 $fname = $options->getBasePath() . "/common/${src}"; |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
256 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
257 $file_content = $options->getCache()->loadFile($fname); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
258 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
259 if(floatval($file_content)<0) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
260 errorPage("Resource not found '${lang}/${src}'"); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
261 } |
|
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
262 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
263 $filters = $file->getElementsByTagName("filter"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
264 foreach($filters as $filter) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
265 $func = $filter->getAttribute("function"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
266 $params = $filter->getElementsByTagName("param"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
267 $callString = "\$file_content = ${func}(\$file_content, \$options"; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
268 $param_values = array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
269 $i = 0; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
270 foreach ($filter->childNodes as $param) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
271 if ($param->nodeType == XML_ELEMENT_NODE) |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
272 { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
273 $param_value[$i] = self::getParam($param); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
274 $callString .= ",\$param_value[$i]"; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
275 $i++; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
276 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
277 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
278 $callString .= ");"; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
279 eval($callString); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
280 } |
|
117
e01ce5722f2b
New change to how we save (X)HTML files. This time we simplify things
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
116
diff
changeset
|
281 $ndoc = $doc->createDocumentFragment(); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
282 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
283 $parent = $file->parentNode; |
|
117
e01ce5722f2b
New change to how we save (X)HTML files. This time we simplify things
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
116
diff
changeset
|
284 |
|
e01ce5722f2b
New change to how we save (X)HTML files. This time we simplify things
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
116
diff
changeset
|
285 $ndoc->appendXML($file_content); |
|
e01ce5722f2b
New change to how we save (X)HTML files. This time we simplify things
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
116
diff
changeset
|
286 $parent->insertBefore($ndoc, $file); |
|
105
b6381903122e
Prevent entity encoding of javascript
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
100
diff
changeset
|
287 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
288 //We need to iterate in the opposite direction when removing, |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
289 //so best shifting. |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
290 array_unshift($toRemove, $file); |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
291 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
292 foreach($toRemove as $param) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
293 $parent = $param->parentNode; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
294 $parent->removeChild($param); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
295 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
296 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
297 return $doc; |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
298 } |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
299 |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
300 /** |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
301 * Follows all include directives recursively for the specified |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
302 * $param an generates an xml file. |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
303 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
304 * This function may be used to generate a file which has all the |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
305 * necessary information to determine wether or not we may cache. |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
306 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
307 * @param $master The master document to be processed |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
308 * @param $param the input tag to resolve |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
309 * @param $options the options object for this file |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
310 */ |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
311 function getInput($master, $param, $options) |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
312 { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
313 $lang = $options->getLang(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
314 $name = $param->getAttribute("id"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
315 $conf = $options->getName(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
316 if (!$conf) |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
317 $conf = $param->getAttribute("default"); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
318 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
319 $confFile = $options->getBasePath() . "/${lang}/${conf}.xml"; |
|
107
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
320 if (! file_exists($confFile) ) { |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
321 $confFile = $options->getBasePath() . "/common/${conf}.xml"; |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
322 } |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
323 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
324 $options->getCache()->cache_time($confFile); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
325 $doc = new DOMDocument(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
326 $doc->load($confFile); |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
327 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
328 $toplevel = $doc->getElementsByTagName("toplevel"); |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
329 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
330 if(! $toplevel->length) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
331 errorPage("Resource '${conf}' is not available", 500); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
332 } |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
333 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
334 $includes = $doc->getElementsByTagName("include"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
335 $recurse = 0; |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
336 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
337 while($includes->length > 0) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
338 if(++$recurse > MAX_RECURSE) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
339 errorPage('Recursion limit exceeded', 500); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
340 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
341 foreach ($includes as $include) { |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
342 $src = $include->getAttribute("src"); |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
343 $subdoc = new DOMDocument(); |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
344 $subfile = $options->getBasePath() . "/${lang}/${src}"; |
|
107
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
345 if (! file_exists($subfile) ) { |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
346 $subfile = $options->getBasePath() . "/common/${src}"; |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
347 } |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
348 $subdoc->load("$subfile"); |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
349 $options->getCache()->cache_time($subfile); |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
350 $parent = $include->parentNode; |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
351 $xml = getElementByTagName($subdoc,"xml"); |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
352 foreach($xml->childNodes as $child) { |
|
105
b6381903122e
Prevent entity encoding of javascript
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
100
diff
changeset
|
353 $text = $subdoc->saveHTML($child); |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
354 $clonedChild = $doc->importNode($child,true); |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
355 $parent->insertBefore($clonedChild,$include); |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
356 } |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
357 $parent->removeChild($include); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
358 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
359 $includes = $doc->getElementsByTagName("include"); |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
360 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
361 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
362 return $doc; |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
363 } |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
364 } |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
365 ?> |
