annotate index.php @ 22:ccfddd7fba1b

Cleanup.
author Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
date Wed, 19 Sep 2012 16:15:38 +0200
parents 5dc5cc27471d
children 814296ea84a9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
1 <?php
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
2 define(DEBUG,0);
7
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
3 define(MAX_RECURSE,50);
20
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
4 define(CACHING,1);
7
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
5
11
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
6 /*
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
7 var_dump($_SERVER);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
8 exit;
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
9 */
7
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
10
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
11 if (DEBUG) {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
12 error_reporting(E_ALL);
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
13 ini_set("display_errors", 1);
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
14 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
15
14
91ee5f49907e Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 8
diff changeset
16 $SCRIPT_FILENAME=$_SERVER['SCRIPT_FILENAME'];
91ee5f49907e Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 8
diff changeset
17 $newest = filemtime($SCRIPT_FILENAME);
20
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
18 $cacheable = true;
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
19
20
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
20 include 'php/cache_check.inc';
14
91ee5f49907e Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 8
diff changeset
21 include_with_mtime('php/accept-language.inc');
91ee5f49907e Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 8
diff changeset
22 include_with_mtime('php/filters.inc');
91ee5f49907e Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 8
diff changeset
23 include_with_mtime('php/common-functions.inc');
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
24
20
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
25 $URL_PARAMS=array('name','lang');
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
26
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
27 #Globals
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
28 $name = $_GET['name'];
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
29 $lang = $_GET['lang'];
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
30
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
31 if(!$name) {
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
32 $name="home";
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
33 }
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
34
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
35 if(!$lang) {
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
36 $lang="no";
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
37 $langs=acceptedLanguages();
11
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
38 if ($langs) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
39 foreach ($langs as $l => $val) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
40 if (file_exists($l)) {
21
5dc5cc27471d Get correct filename for script cache_time check.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 20
diff changeset
41 $lang = $l;
11
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
42 break;
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
43 }
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
44 }
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
45 }
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
46 }
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
47
22
ccfddd7fba1b Cleanup.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 21
diff changeset
48 function getParam($param)
ccfddd7fba1b Cleanup.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 21
diff changeset
49 {
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
50 $param_type=$param->getAttribute("type");
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
51 $param_value;
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
52 if (!$param_type)
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
53 $param_type="scalar";
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
54
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
55 if($param_type == "scalar") {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
56 $param_subst=$param->getAttribute("subst");
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
57 $param_value=$param->getAttribute("value");
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
58 if ($param_subst) {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
59 /*
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
60 $param_value=preg_replace("/name/", $name, $param_subst);
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
61 $param_value=preg_replace('/lang/', $lang, $param_value);
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
62 */
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
63 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
64 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
65 elseif($param_type == "array") {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
66 $params=$param->getElementsByTagName("param");
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
67 $param_value=array();
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
68 foreach ($param->childNodes as $param) {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
69 if ($param->nodeType == XML_ELEMENT_NODE)
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
70 {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
71 array_push($param_value, getParam($param));
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
72 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
73 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
74 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
75 return $param_value;
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
76 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
77
22
ccfddd7fba1b Cleanup.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 21
diff changeset
78 function getInput($master, $param)
ccfddd7fba1b Cleanup.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 21
diff changeset
79 {
11
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
80 $out='';
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
81
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
82 $lang=$GLOBALS['lang'];
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
83 $name=$param->getAttribute("id");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
84 $conf=$_GET[$name];
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
85 $GLOBALS[$name]=$conf;
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
86 if (!$conf)
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
87 $conf=$param->getAttribute("default");
20
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
88
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
89 $fname = "${lang}/${conf}.xml";
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
90 cache_time($fname);
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
91 $config = loadFile($fname);
11
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
92
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
93 $confFile="${lang}/${conf}.xml";
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
94 if (!file_exists($confFile)) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
95 errorPage("Resource not available");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
96 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
97 $doc = new DOMDocument();
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
98 $doc->load($confFile);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
99
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
100 $includes=$doc->getElementsByTagName("include");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
101 $recurse=0;
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
102
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
103 while($includes->length>0) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
104 if(++$recurse>MAX_RECURSE) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
105 errorPage('Recursion limit exceeded', 500);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
106 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
107 foreach ($includes as $include) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
108 $src=$include->getAttribute("src");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
109 $subdoc = new DOMDocument();
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
110 $subdoc->load("${lang}/${src}");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
111 $parent=$include->parentNode;
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
112 $xml=getElementByTagName($subdoc,"xml");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
113 foreach($xml->childNodes as $child) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
114 $text=$subdoc->saveXml($child);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
115 $clonedChild=$doc->importNode($child,true);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
116 $parent->insertBefore($clonedChild,$include);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
117 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
118 $parent->removeChild($include);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
119 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
120 $includes=$doc->getElementsByTagName("include");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
121 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
122
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
123 $head=getElementByTagName($doc,"head");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
124 $title=$head->getAttribute("title");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
125
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
126 if($title) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
127 $values=$master->getElementsByTagName("param");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
128 foreach ($values as $value) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
129 if ($value->getAttribute("type")=="input_config") {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
130 if ($value->getAttribute("id")=="title") {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
131 $tmp = new DOMDocument();
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
132 $tmp->loadXml("<xml>${title}</xml>");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
133 $parent=$value->parentNode;
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
134 $parent->removeChild($value);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
135 $parent->appendChild(new DOMText($tmp->textContent));
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
136 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
137 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
138 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
139 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
140
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
141 $css=getElementByTagName($head,"css");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
142 $css=$doc->saveXML($css);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
143 $css=preg_replace('/\s*<\/?\s*css\s*>\s*/s', '', $css);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
144
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
145 if($css) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
146 $values=$master->getElementsByTagName("param");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
147 foreach ($values as $value) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
148 if ($value->getAttribute("type")=="input_config") {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
149 if ($value->getAttribute("id")=="css") {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
150 $tmp = new DOMDocument();
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
151 $tmp->loadXml("<xml>${css}</xml>");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
152 $parent=$value->parentNode;
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
153 foreach($tmp->firstChild->childNodes as $node) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
154 $clonedChild=$master->importNode($node,true);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
155 $parent->insertBefore($clonedChild,$value);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
156 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
157 $parent->removeChild($value);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
158 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
159 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
160 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
161 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
162
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
163
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
164 $body=getElementByTagName($doc,"body");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
165 $files=$body->getElementsByTagName("file");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
166
20
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
167 foreach ($files as $file) {
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
168 $script=$file->getAttribute("script");
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
169 if ($script) {
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
170 $cacheable = false;
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
171 $src="";
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
172 $cwd=getcwd();
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
173
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
174 $matches=array();
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
175 preg_match('/(.*\/)/', $script, $matches);
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
176 $dirname=$matches[0];
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
177 preg_match('/([^\/]*)$/', $script, $matches);
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
178 $filename=$matches[0];
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
179 chdir("${lang}/${dirname}");
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
180 $pipe=popen("php ${filename}","r");
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
181 $file_content = stream_get_contents($pipe);
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
182 chdir("${cwd}");
16
a64e8f968e7e Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 14
diff changeset
183 }
20
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
184 else {
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
185 $src = $file->getAttribute("src");
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
186 $fname = "${lang}/${src}";
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
187 cache_time($fname);
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
188 $file_content = loadFile($fname);
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
189 }
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
190 if(floatval($file_content)<0) {
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
191 errorPage("Resource not found '${lang}/${src}'");
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
192 }
8
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
193
20
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
194 $filters=$file->getElementsByTagName("filter");
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
195 foreach($filters as $filter) {
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
196 $func=$filter->getAttribute("function");
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
197 $params=$filter->getElementsByTagName("param");
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
198 $callString="\$file_content=${func}(\$file_content";
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
199 $param_values=array();
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
200 $i=0;
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
201 foreach ($filter->childNodes as $param) {
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
202 if ($param->nodeType == XML_ELEMENT_NODE)
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
203 {
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
204 $param_value[$i]=getParam($param);
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
205 $callString.=",\$param_value[$i]";
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
206 $i++;
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
207 }
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
208 }
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
209 $callString.=");";
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
210 eval($callString);
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
211 }
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
212 $out.= $file_content;
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
213 }
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
214
11
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
215 $doc = new DOMDocument();
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
216 $doc->loadXml("<xml>${out}</xml>");
20
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
217
11
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
218 return $doc;
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
219 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
220
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
221 $master = new DOMDocument();
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
222 $master->load("master.xml");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
223
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
224 $params=$master->getElementsByTagName("param");
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
225 foreach ($params as $param) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
226 if ($param->getAttribute("type") == "input") {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
227 $doc=getInput($master,$param);
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
228
11
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
229 $parent=$param->parentNode;
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
230 foreach ($doc->firstChild->childNodes as $child) {
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
231 $clonedChild=$master->importNode($child,true);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
232 $parent->insertBefore($clonedChild,$param);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
233 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
234 $parent->removeChild($param);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
235
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
236 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
237 }
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
238
20
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
239 if (CACHING && $cacheable)
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
240 print cache_check($newest);
ac24b41a12ad Something strange got committed in last comit, correct commit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 19
diff changeset
241
11
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
242 print $master->saveXml($master);
ba6f0818018b Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 10
diff changeset
243
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
244 ?>