Mercurial > SimpleWebPresenter
annotate index.php @ 19:ee2c31392ea3
Merge
Regression, fast cache-checking has been removed.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Wed, 19 Sep 2012 15:50:18 +0200 |
| parents | a64e8f968e7e a20bb1b51aad |
| children | ac24b41a12ad |
| 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); |
|
10
1ac66bef193a
Updated to new xml format.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
4 define(CACHING,0); |
|
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 |
|
14
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
11 function include_with_mtime($file) { |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
12 global $newest; |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
13 $mtime = filemtime($file); |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
14 if ($mtime > $newest) { |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
15 $newest = $mtime; |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
16 } |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
17 include $file; |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
18 } |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
19 |
|
6
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
20 if (DEBUG) { |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
21 error_reporting(E_ALL); |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
22 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
|
23 } |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
24 |
|
14
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
25 $SCRIPT_FILENAME=$_SERVER['SCRIPT_FILENAME']; |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
26 $newest = filemtime($SCRIPT_FILENAME); |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
27 $cachable = true; |
|
6
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
28 |
| 19 | 29 <<<<<<< local |
|
14
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
30 include_with_mtime('php/cache_check.inc'); |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
31 include_with_mtime('php/accept-language.inc'); |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
32 include_with_mtime('php/filters.inc'); |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
33 include_with_mtime('php/common-functions.inc'); |
| 19 | 34 ======= |
|
10
1ac66bef193a
Updated to new xml format.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
35 if(CACHING) { |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
36 include 'php/cache_check.inc'; |
|
10
1ac66bef193a
Updated to new xml format.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
37 } |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
38 include 'php/accept-language.inc'; |
|
4
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
39 include 'php/filters.inc'; |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
40 include 'php/common-functions.inc'; |
| 19 | 41 >>>>>>> other |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
42 |
|
14
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
43 $URL_PARAMS=array('name', 'lang'); |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
44 |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
45 #Globals |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
46 $name = $_GET['name']; |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
47 $lang = $_GET['lang']; |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
48 |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
49 if(!$name) { |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
50 $name="home"; |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
51 } |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
52 |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
53 if(!$lang) { |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
54 $lang="no"; |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
55 $langs=acceptedLanguages(); |
|
11
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
56 if ($langs) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
57 foreach ($langs as $l => $val) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
58 if (file_exists($l)) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
59 $lang=$l; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
60 break; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
61 } |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
62 } |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
63 } |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
64 } |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
65 |
| 19 | 66 <<<<<<< local |
|
1
d91abe5f6214
Support for evaluated configuration files.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
0
diff
changeset
|
67 $title="Dummy title"; |
|
4
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
68 |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
69 $config=loadFile("${lang}/${name}.xml"); |
|
1
d91abe5f6214
Support for evaluated configuration files.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
0
diff
changeset
|
70 |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
71 $confFile="${lang}/${name}.xml"; |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
72 if (!file_exists($confFile)) { |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
73 errorPage("Resource not available"); |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
74 } |
|
4
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
75 $doc = new DOMDocument(); |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
76 $doc->load($confFile); |
|
4
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
77 |
|
7
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
78 $includes=$doc->getElementsByTagName("include"); |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
79 $recurse=0; |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
80 |
|
14
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
81 while($includes->length > 0) { |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
82 if(++$recurse > MAX_RECURSE) { |
|
7
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
83 errorPage('Recursion limit exceeded', 500); |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
84 } |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
85 foreach ($includes as $include) { |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
86 $src=$include->getAttribute("src"); |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
87 $subdoc = new DOMDocument(); |
|
14
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
88 $fname = "${lang}/${src}"; |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
89 $subdoc->load($fname); |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
90 $mtime = filemtime($fname); |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
91 if ($mtime > $newest) { |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
92 $newest = $mtime; |
|
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
93 } |
|
7
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
94 $parent=$include->parentNode; |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
95 $xml=getElementByTagName($subdoc,"xml"); |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
96 foreach($xml->childNodes as $child) { |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
97 $text=$subdoc->saveXml($child); |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
98 $clonedChild=$doc->importNode($child,true); |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
99 $parent->insertBefore($clonedChild,$include); |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
100 } |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
101 $parent->removeChild($include); |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
102 } |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
103 $includes=$doc->getElementsByTagName("include"); |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
104 } |
|
350a8c63bd14
Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
105 |
|
4
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
106 $head=getElementByTagName($doc,"head"); |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
107 $title=$head->getAttribute("title"); |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
108 |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
109 $css=getElementByTagName($head,"css"); |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
110 $css=$doc->saveXML($css); |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
111 $css=preg_replace('/\s*<\/?\s*css\s*>\s*/s', '', $css); |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
112 |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
113 $body=getElementByTagName($doc,"body"); |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
114 $files=$body->getElementsByTagName("file"); |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
115 |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
116 |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
117 $out= '<?xml version="1.0" encoding="UTF-8"?>'; |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
118 |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
119 $out.= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
120 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
121 <html xmlns="http://www.w3.org/1999/xhtml"> |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
122 <head> |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
123 <title>'; |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
124 |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
125 $out.= "$title"; |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
126 $out.= ' |
|
1
d91abe5f6214
Support for evaluated configuration files.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
0
diff
changeset
|
127 </title> |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
128 '; |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
129 $out.= "$css"; |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
130 $out.= ' |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
131 </head> |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
132 <body> |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
133 <div id="container"> |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
134 '; |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
135 |
| 19 | 136 ======= |
| 137 >>>>>>> other | |
|
6
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
138 function getParam($param) { |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
139 $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
|
140 $param_value; |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
141 if (!$param_type) |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
142 $param_type="scalar"; |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
143 |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
144 if($param_type == "scalar") { |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
145 $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
|
146 $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
|
147 if ($param_subst) { |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
148 /* |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
149 $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
|
150 $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
|
151 */ |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
152 } |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
153 } |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
154 elseif($param_type == "array") { |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
155 $params=$param->getElementsByTagName("param"); |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
156 $param_value=array(); |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
157 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
|
158 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
|
159 { |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
160 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
|
161 } |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
162 } |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
163 } |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
164 return $param_value; |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
165 } |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
166 |
|
11
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
167 function getInput($master, $param) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
168 $out=''; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
169 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
170 $lang=$GLOBALS['lang']; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
171 $name=$param->getAttribute("id"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
172 $conf=$_GET[$name]; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
173 $GLOBALS[$name]=$conf; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
174 if (!$conf) |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
175 $conf=$param->getAttribute("default"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
176 $config=loadFile("${lang}/${conf}.xml"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
177 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
178 $confFile="${lang}/${conf}.xml"; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
179 if (!file_exists($confFile)) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
180 errorPage("Resource not available"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
181 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
182 $doc = new DOMDocument(); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
183 $doc->load($confFile); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
184 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
185 $includes=$doc->getElementsByTagName("include"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
186 $recurse=0; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
187 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
188 while($includes->length>0) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
189 if(++$recurse>MAX_RECURSE) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
190 errorPage('Recursion limit exceeded', 500); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
191 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
192 foreach ($includes as $include) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
193 $src=$include->getAttribute("src"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
194 $subdoc = new DOMDocument(); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
195 $subdoc->load("${lang}/${src}"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
196 $parent=$include->parentNode; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
197 $xml=getElementByTagName($subdoc,"xml"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
198 foreach($xml->childNodes as $child) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
199 $text=$subdoc->saveXml($child); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
200 $clonedChild=$doc->importNode($child,true); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
201 $parent->insertBefore($clonedChild,$include); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
202 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
203 $parent->removeChild($include); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
204 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
205 $includes=$doc->getElementsByTagName("include"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
206 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
207 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
208 $head=getElementByTagName($doc,"head"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
209 $title=$head->getAttribute("title"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
210 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
211 if($title) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
212 $values=$master->getElementsByTagName("param"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
213 foreach ($values as $value) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
214 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
|
215 if ($value->getAttribute("id")=="title") { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
216 $tmp = new DOMDocument(); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
217 $tmp->loadXml("<xml>${title}</xml>"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
218 $parent=$value->parentNode; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
219 $parent->removeChild($value); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
220 $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
|
221 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
222 } |
|
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 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
225 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
226 $css=getElementByTagName($head,"css"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
227 $css=$doc->saveXML($css); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
228 $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
|
229 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
230 if($css) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
231 $values=$master->getElementsByTagName("param"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
232 foreach ($values as $value) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
233 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
|
234 if ($value->getAttribute("id")=="css") { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
235 $tmp = new DOMDocument(); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
236 $tmp->loadXml("<xml>${css}</xml>"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
237 $parent=$value->parentNode; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
238 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
|
239 $clonedChild=$master->importNode($node,true); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
240 $parent->insertBefore($clonedChild,$value); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
241 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
242 $parent->removeChild($value); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
243 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
244 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
245 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
246 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
247 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
248 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
249 $body=getElementByTagName($doc,"body"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
250 $files=$body->getElementsByTagName("file"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
251 |
|
6
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
252 foreach ($files as $file) { |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
253 if ($file->getAttribute("script")) { |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
254 $cachable = false; |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
255 break; |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
256 } |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
257 else { |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
258 $src = $file->getAttribute("src"); |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
259 $fname = "${lang}/${src}"; |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
260 if (!file_exists($fname)) { |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
261 errorPage("Resource not found '${fname}'"); |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
262 } |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
263 cache_time($fname); |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
264 } |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
265 } |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
266 |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
267 if ($cachable) |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
268 cache_check($newest); |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
269 |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
270 foreach ($files as $file) { |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
271 $script = $file->getAttribute("script"); |
|
8
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
272 if ($script) { |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
273 $src = ""; |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
274 $cwd = getcwd(); |
|
8
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
275 |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
276 $matches=array(); |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
277 preg_match('/(.*\/)/', $script, $matches); |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
278 $dirname=$matches[0]; |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
279 preg_match('/([^\/]*)$/', $script, $matches); |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
280 $filename=$matches[0]; |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
281 chdir("${lang}/${dirname}"); |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
282 $pipe=popen("php ${filename}","r"); |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
283 $file_content = stream_get_contents($pipe); |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
284 chdir("${cwd}"); |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
285 } |
|
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
286 else { |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
287 $src = $file->getAttribute("src"); |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
288 $fname = "${lang}/${src}"; |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
289 $file_content = loadFile($fname); |
|
8
19dfa6f3e2be
Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
290 } |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
291 if(floatval($file_content) < 0) { |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
292 errorPage("Resource not found '${lang}/${src}'"); |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
293 } |
|
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
294 |
|
4
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
295 $filters=$file->getElementsByTagName("filter"); |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
296 foreach($filters as $filter) { |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
297 $func=$filter->getAttribute("function"); |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
298 $params=$filter->getElementsByTagName("param"); |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
299 $callString="\$file_content=${func}(\$file_content"; |
|
6
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
300 $param_values=array(); |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
301 $i=0; |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
302 foreach ($filter->childNodes as $param) { |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
303 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
|
304 { |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
305 $param_value[$i]=getParam($param); |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
306 $callString.=",\$param_value[$i]"; |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
307 $i++; |
|
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
308 } |
|
4
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
309 } |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
310 $callString.=");"; |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
311 eval($callString); |
|
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
312 } |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
313 $out.= $file_content; |
|
4
74196528fc64
Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
314 } |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
315 |
| 19 | 316 <<<<<<< local |
|
14
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
317 |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
318 |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
319 $out.=' |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
320 </div> |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
321 </body> |
|
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
322 </html> |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
323 '; |
| 19 | 324 ======= |
|
11
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
325 $doc = new DOMDocument(); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
326 $doc->loadXml("<xml>${out}</xml>"); |
| 19 | 327 >>>>>>> other |
|
11
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
328 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
329 return $doc; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
330 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
331 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
332 $master = new DOMDocument(); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
333 $master->load("master.xml"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
334 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
335 $params=$master->getElementsByTagName("param"); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
336 foreach ($params as $param) { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
337 if ($param->getAttribute("type") == "input") { |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
338 $doc=getInput($master,$param); |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
339 |
|
11
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
340 $parent=$param->parentNode; |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
341 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
|
342 $clonedChild=$master->importNode($child,true); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
343 $parent->insertBefore($clonedChild,$param); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
344 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
345 $parent->removeChild($param); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
346 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
347 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
348 } |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
349 |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
350 print $master->saveXml($master); |
|
ba6f0818018b
Made recursive input evaluation into a function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
10
diff
changeset
|
351 |
|
5
18aafb1a8986
Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
352 ?> |
