Mercurial > SimpleWebPresenter
annotate InputParser.inc @ 127:14959382c901
Mark static function.
| author | Tom Fredrik Blenning <bfg@bfgconsult.no> |
|---|---|
| date | Wed, 28 Dec 2022 01:05:01 +0100 |
| parents | 7858ceb293d1 |
| children | ee5f98a0bc93 |
| 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 } |
|
126
7858ceb293d1
A bit more verbosity in errors.
Tom Fredrik Blenning <bfg@bfgconsult.no>
parents:
124
diff
changeset
|
149 else { |
|
7858ceb293d1
A bit more verbosity in errors.
Tom Fredrik Blenning <bfg@bfgconsult.no>
parents:
124
diff
changeset
|
150 throw new UnexpectedValueException("Unknown parameter type '$param_type'"); |
|
7858ceb293d1
A bit more verbosity in errors.
Tom Fredrik Blenning <bfg@bfgconsult.no>
parents:
124
diff
changeset
|
151 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
152 return $param_value; |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
153 } |
|
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
154 |
|
66
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
155 /** |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
156 * 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
|
157 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
158 * @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
|
159 * @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
|
160 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
161 * @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
|
162 */ |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
163 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
|
164 $lang = $options->getLang(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
165 $conf = $options->getName(); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
166 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
167 $toRemove = array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
168 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
169 $topLevelTags = $doc->getElementsByTagName("toplevel"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
170 foreach ($topLevelTags as $topLevel) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
171 $topLevel->parentNode->removeChild($topLevel); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
172 } |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
173 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
174 $valueDict = array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
175 $fragments = array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
176 $setters = $doc->getElementsByTagName("set"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
177 foreach ($setters as $setTag) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
178 $key = $setTag->getAttribute("id"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
179 $type = $setTag->getAttribute("type"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
180 if ($type == "fragment") { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
181 $fragments[$key] = $setTag; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
182 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
183 else { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
184 $value = $setTag->getAttribute("value"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
185 if ($key && $value) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
186 $valueDict[$key] = $value; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
187 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
188 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
189 //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
|
190 //so best shifting. |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
191 array_unshift($toRemove, $setTag); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
192 } |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
193 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
194 $params = $doc->getElementsByTagName("param"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
195 foreach ($params as $param) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
196 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
|
197 $id = $param->getAttribute("id"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
198 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
|
199 $value = $valueDict[$id]; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
200 $tmp = new DOMDocument(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
201 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
202 $tmp->loadXml("<xml>${value}</xml>"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
203 $parent = $param->parentNode; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
204 $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
|
205 //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
|
206 //so best shifting. |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
207 array_unshift($toRemove, $param); |
|
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 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
|
210 $fragment = $fragments[$id]; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
211 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
212 $cloneFragment = $fragment->cloneNode(true); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
213 $insNode = $param; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
214 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
|
215 $child = $cloneFragment->childNodes->item($i); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
216 $child = $child->parentNode->removeChild($child); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
217 $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
|
218 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
219 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
220 //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
|
221 //so best shifting. |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
222 array_unshift($toRemove, $param); |
|
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 } |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
225 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
226 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
227 foreach($toRemove as $param) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
228 $parent = $param->parentNode; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
229 $parent->removeChild($param); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
230 } |
|
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
231 |
|
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
|
232 $body = getElementByTagName($doc,"html"); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
233 $files = $body->getElementsByTagName("file"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
234 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
235 $toRemove = array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
236 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
237 foreach ($files as $file) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
238 $script = $file->getAttribute("script"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
239 if ($script) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
240 $options->setCacheable(false); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
241 $src=""; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
242 $cwd = getcwd(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
243 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
244 $matches=array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
245 preg_match('/(.*\/)/', $script, $matches); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
246 $dirname=$matches[0]; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
247 preg_match('/([^\/]*)$/', $script, $matches); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
248 $filename=$matches[0]; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
249 chdir("${lang}/${dirname}"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
250 $pipe=popen("php ${filename}","r"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
251 $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
|
252 chdir("${cwd}"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
253 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
254 else { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
255 $src = $file->getAttribute("src"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
256 $fname = $options->getBasePath() . "/${lang}/${src}"; |
|
107
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
257 if (!file_exists($fname) ) { |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
258 $fname = $options->getBasePath() . "/common/${src}"; |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
259 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
260 $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
|
261 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
262 if(floatval($file_content)<0) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
263 errorPage("Resource not found '${lang}/${src}'"); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
264 } |
|
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
265 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
266 $filters = $file->getElementsByTagName("filter"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
267 foreach($filters as $filter) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
268 $func = $filter->getAttribute("function"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
269 $params = $filter->getElementsByTagName("param"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
270 $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
|
271 $param_values = array(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
272 $i = 0; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
273 foreach ($filter->childNodes as $param) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
274 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
|
275 { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
276 $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
|
277 $callString .= ",\$param_value[$i]"; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
278 $i++; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
279 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
280 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
281 $callString .= ");"; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
282 eval($callString); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
283 } |
|
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 $ndoc = $doc->createDocumentFragment(); |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
285 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
286 $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
|
287 |
|
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
|
288 $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
|
289 $parent->insertBefore($ndoc, $file); |
|
105
b6381903122e
Prevent entity encoding of javascript
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
100
diff
changeset
|
290 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
291 //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
|
292 //so best shifting. |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
293 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
|
294 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
295 foreach($toRemove as $param) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
296 $parent = $param->parentNode; |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
297 $parent->removeChild($param); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
298 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
299 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
300 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
|
301 } |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
302 |
|
66
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 * 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
|
305 * $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
|
306 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
307 * 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
|
308 * 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
|
309 * |
|
74f7b64bdb78
Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
63
diff
changeset
|
310 * @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
|
311 * @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
|
312 * @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
|
313 */ |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
314 function getInput($master, $param, $options) |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
315 { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
316 $lang = $options->getLang(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
317 $name = $param->getAttribute("id"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
318 $conf = $options->getName(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
319 if (!$conf) |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
320 $conf = $param->getAttribute("default"); |
|
23
814296ea84a9
Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
321 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
322 $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
|
323 if (! file_exists($confFile) ) { |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
324 $confFile = $options->getBasePath() . "/common/${conf}.xml"; |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
325 } |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
326 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
327 $options->getCache()->cache_time($confFile); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
328 $doc = new DOMDocument(); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
329 $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
|
330 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
331 $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
|
332 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
333 if(! $toplevel->length) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
334 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
|
335 } |
|
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 $includes = $doc->getElementsByTagName("include"); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
338 $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
|
339 |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
340 while($includes->length > 0) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
341 if(++$recurse > MAX_RECURSE) { |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
342 errorPage('Recursion limit exceeded', 500); |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
343 } |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
344 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
|
345 $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
|
346 $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
|
347 $subfile = $options->getBasePath() . "/${lang}/${src}"; |
|
107
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
348 if (! file_exists($subfile) ) { |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
349 $subfile = $options->getBasePath() . "/common/${src}"; |
|
d5f3efba33e2
Support for common files between languages.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
105
diff
changeset
|
350 } |
|
59
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
351 $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
|
352 $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
|
353 $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
|
354 $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
|
355 foreach($xml->childNodes as $child) { |
|
105
b6381903122e
Prevent entity encoding of javascript
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
100
diff
changeset
|
356 $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
|
357 $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
|
358 $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
|
359 } |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
360 $parent->removeChild($include); |
|
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 $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
|
363 } |
|
62
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
364 |
|
b7efe2ecbc11
Wrapped everything in inputParser in a class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
59
diff
changeset
|
365 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
|
366 } |
|
0e157721bbad
Change the way we parse input files, preparing for more reasonable
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
51
diff
changeset
|
367 } |
|
126
7858ceb293d1
A bit more verbosity in errors.
Tom Fredrik Blenning <bfg@bfgconsult.no>
parents:
124
diff
changeset
|
368 ?> |
