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
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);
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
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 16 12
diff changeset
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
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 16 12
diff changeset
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
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 16 12
diff changeset
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
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 16 12
diff changeset
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
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 16 12
diff changeset
136 =======
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 16 12
diff changeset
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
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 16 12
diff changeset
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
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 16 12
diff changeset
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
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 16 12
diff changeset
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 ?>