annotate inputParser.inc @ 51:2cfea6e84694

Documentation update.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Thu, 11 Oct 2012 00:06:26 +0200
parents bd82b719a0de
children 0e157721bbad
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
1 <?php
51
2cfea6e84694 Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 39
diff changeset
2 /**
2cfea6e84694 Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 39
diff changeset
3 * @file
2cfea6e84694 Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 39
diff changeset
4 * Functionality for translating an XML document into a webpage
2cfea6e84694 Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 39
diff changeset
5 */
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
6 function getParam($param)
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
7 {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
8 $param_type=$param->getAttribute("type");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
9 $param_value;
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
10 if (!$param_type)
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
11 $param_type="scalar";
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
12
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
13 if($param_type == "scalar") {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
14 $param_subst=$param->getAttribute("subst");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
15 $param_value=$param->getAttribute("value");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
16 if ($param_subst) {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
17 /*
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
18 $param_value=preg_replace("/name/", $name, $param_subst);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
19 $param_value=preg_replace('/lang/', $lang, $param_value);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
20 */
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
21 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
22 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
23 elseif($param_type == "array") {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
24 $params=$param->getElementsByTagName("param");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
25 $param_value=array();
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
26 foreach ($param->childNodes as $param) {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
27 if ($param->nodeType == XML_ELEMENT_NODE)
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
28 {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
29 array_push($param_value, getParam($param));
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
30 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
31 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
32 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
33 return $param_value;
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
34 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
35
26
d8c7b328899e Removed globals, and introduced Options object for passing values
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 23
diff changeset
36 function getInput($master, $param, $options)
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
37 {
29
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
38 $out = '';
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
39
26
d8c7b328899e Removed globals, and introduced Options object for passing values
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 23
diff changeset
40 $lang = $options->getLang();
29
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
41 $name = $param->getAttribute("id");
26
d8c7b328899e Removed globals, and introduced Options object for passing values
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 23
diff changeset
42 $conf = $options->getName();
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
43 if (!$conf)
26
d8c7b328899e Removed globals, and introduced Options object for passing values
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 23
diff changeset
44 $conf = $param->getAttribute("default");
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
45
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
46 $confFile = $options->getBasePath() . "/${lang}/${conf}.xml";
32
7b19be62ea94 Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 29
diff changeset
47 $options->getCache()->cache_time($confFile);
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
48 $doc = new DOMDocument();
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
49 $doc->load($confFile);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
50
29
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
51 $toplevel = $doc->getElementsByTagName("toplevel");
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
52
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
53 if(! $toplevel->length) {
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
54 errorPage("Resource '${conf}' is not available", 500);
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
55 }
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
56
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
57 $includes = $doc->getElementsByTagName("include");
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
58 $recurse = 0;
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
59
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
60 while($includes->length>0) {
29
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
61 if(++$recurse > MAX_RECURSE) {
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
62 errorPage('Recursion limit exceeded', 500);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
63 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
64 foreach ($includes as $include) {
29
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
65 $src = $include->getAttribute("src");
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
66 $subdoc = new DOMDocument();
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
67 $subfile = $options->getBasePath() . "/${lang}/${src}";
29
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
68 $subdoc->load("$subfile");
32
7b19be62ea94 Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 29
diff changeset
69 $options->getCache()->cache_time($subfile);
29
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
70 $parent = $include->parentNode;
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
71 $xml = getElementByTagName($subdoc,"xml");
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
72 foreach($xml->childNodes as $child) {
29
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
73 $text = $subdoc->saveXml($child);
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
74 $clonedChild = $doc->importNode($child,true);
26
d8c7b328899e Removed globals, and introduced Options object for passing values
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 23
diff changeset
75 $parent->insertBefore($clonedChild,$include);
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
76 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
77 $parent->removeChild($include);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
78 }
29
394b5df43d1a Fix some formatting.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 26
diff changeset
79 $includes = $doc->getElementsByTagName("include");
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
80 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
81
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
82 $head = getElementByTagName($doc, "head");
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
83 $title = $head->getAttribute("title");
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
84
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
85 if($title) {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
86 $values=$master->getElementsByTagName("param");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
87 foreach ($values as $value) {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
88 if ($value->getAttribute("type")=="input_config") {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
89 if ($value->getAttribute("id")=="title") {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
90 $tmp = new DOMDocument();
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
91 $tmp->loadXml("<xml>${title}</xml>");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
92 $parent=$value->parentNode;
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
93 $parent->removeChild($value);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
94 $parent->appendChild(new DOMText($tmp->textContent));
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
95 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
96 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
97 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
98 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
99
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
100 $css = getElementByTagName($head,"css");
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
101 $css = $doc->saveXML($css);
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
102 $css = preg_replace('/\s*<\/?\s*css\s*>\s*/s', '', $css);
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
103
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
104 if($css) {
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
105 $values = $master->getElementsByTagName("param");
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
106 foreach ($values as $value) {
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
107 if ($value->getAttribute("type") == "input_config") {
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
108 if ($value->getAttribute("id") == "css") {
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
109 $tmp = new DOMDocument();
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
110 $tmp->loadXml("<xml>${css}</xml>");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
111 $parent=$value->parentNode;
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
112 foreach($tmp->firstChild->childNodes as $node) {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
113 $clonedChild=$master->importNode($node,true);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
114 $parent->insertBefore($clonedChild,$value);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
115 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
116 $parent->removeChild($value);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
117 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
118 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
119 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
120 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
121
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
122
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
123 $body=getElementByTagName($doc,"body");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
124 $files=$body->getElementsByTagName("file");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
125
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
126 foreach ($files as $file) {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
127 $script=$file->getAttribute("script");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
128 if ($script) {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
129 $cacheable = false;
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
130 $src="";
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
131 $cwd = getcwd();
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
132
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
133 $matches=array();
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
134 preg_match('/(.*\/)/', $script, $matches);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
135 $dirname=$matches[0];
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
136 preg_match('/([^\/]*)$/', $script, $matches);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
137 $filename=$matches[0];
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
138 chdir("${lang}/${dirname}");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
139 $pipe=popen("php ${filename}","r");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
140 $file_content = stream_get_contents($pipe);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
141 chdir("${cwd}");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
142 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
143 else {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
144 $src = $file->getAttribute("src");
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 38
diff changeset
145 $fname = $options->getBasePath() . "/${lang}/${src}";
38
42533600214b Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 33
diff changeset
146 $file_content = $options->getCache()->loadFile($fname);
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
147 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
148 if(floatval($file_content)<0) {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
149 errorPage("Resource not found '${lang}/${src}'");
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
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
152 $filters=$file->getElementsByTagName("filter");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
153 foreach($filters as $filter) {
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
154 $func = $filter->getAttribute("function");
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
155 $params = $filter->getElementsByTagName("param");
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
156 $callString = "\$file_content = ${func}(\$file_content, \$options";
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
157 $param_values = array();
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
158 $i = 0;
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
159 foreach ($filter->childNodes as $param) {
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
160 if ($param->nodeType == XML_ELEMENT_NODE)
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
161 {
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
162 $param_value[$i] = getParam($param);
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
163 $callString .= ",\$param_value[$i]";
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
164 $i++;
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
165 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
166 }
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
167 $callString .= ");";
23
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
168 eval($callString);
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
169 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
170 $out.= $file_content;
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
171 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
172
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
173 $doc = new DOMDocument();
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
174 $doc->loadXml("<xml>${out}</xml>");
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
175
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
176 return $doc;
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
177 }
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
178
814296ea84a9 Move functionality into inputParser.inc
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
179 ?>