annotate index.php @ 8:19dfa6f3e2be

Support for scripts.
author Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
date Sun, 12 Jun 2011 14:15:00 +0200
parents 350a8c63bd14
children a20bb1b51aad 91ee5f49907e
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);
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
4
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
5 if (DEBUG) {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
6 error_reporting(E_ALL);
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
7 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
8 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
9
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
10
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
11 include 'php/cache_check.inc';
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
12 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
13 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
14 include 'php/common-functions.inc';
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
15
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
16 $URL_PARAMS=array('name','lang');
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
17
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
18 #Globals
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
19 $name = $_GET['name'];
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
20 $lang = $_GET['lang'];
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
21
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
22 if(!$name) {
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
23 $name="home";
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
24 }
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
25
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
26 if(!$lang) {
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
27 $lang="no";
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
28 $langs=acceptedLanguages();
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
29 foreach ($langs as $l => $val) {
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
30 if (file_exists($l)) {
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
31 $lang=$l;
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
32 break;
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
33 }
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
34 }
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
35 }
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
36
1
d91abe5f6214 Support for evaluated configuration files.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 0
diff changeset
37 $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
38
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 $config=loadFile("${lang}/${name}.xml");
1
d91abe5f6214 Support for evaluated configuration files.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 0
diff changeset
40
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
41 $confFile="${lang}/${name}.xml";
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
42 if (!file_exists($confFile)) {
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
43 errorPage("Resource not available");
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
44 }
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
45 $doc = new DOMDocument();
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
46 $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
47
7
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
48 $includes=$doc->getElementsByTagName("include");
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
49 $recurse=0;
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
50
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
51 while($includes->length>0) {
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
52 if(++$recurse>MAX_RECURSE) {
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
53 errorPage('Recursion limit exceeded', 500);
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
54 }
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
55 foreach ($includes as $include) {
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
56 $src=$include->getAttribute("src");
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
57 $subdoc = new DOMDocument();
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
58 $subdoc->load("${lang}/${src}");
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
59 $parent=$include->parentNode;
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
60 $xml=getElementByTagName($subdoc,"xml");
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
61 foreach($xml->childNodes as $child) {
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
62 $text=$subdoc->saveXml($child);
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
63 $clonedChild=$doc->importNode($child,true);
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
64 $parent->insertBefore($clonedChild,$include);
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
65 }
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
66 $parent->removeChild($include);
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
67 }
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
68 $includes=$doc->getElementsByTagName("include");
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
69 }
350a8c63bd14 Support for recursive includes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
70
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
71 $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
72 $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
73
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
74 $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
75 $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
76 $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
77
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
78 $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
79 $files=$body->getElementsByTagName("file");
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
80
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
81
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
82 $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
83
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
84 $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
85 "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
86 <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
87 <head>
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
88 <title>';
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
89
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
90 $out.= "$title";
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
91 $out.= '
1
d91abe5f6214 Support for evaluated configuration files.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 0
diff changeset
92 </title>
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
93 ';
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
94 $out.= "$css";
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
95 $out.= '
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
96 </head>
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
97 <body>
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
98 <div id="container">
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
99 ';
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
100
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
101 function getParam($param) {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
102 $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
103 $param_value;
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
104 if (!$param_type)
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
105 $param_type="scalar";
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
106
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
107 if($param_type == "scalar") {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
108 $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
109 $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
110 if ($param_subst) {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
111 /*
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
112 $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
113 $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
114 */
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
115 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
116 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
117 elseif($param_type == "array") {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
118 $params=$param->getElementsByTagName("param");
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
119 $param_value=array();
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
120 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
121 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
122 {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
123 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
124 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
125 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
126 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
127 return $param_value;
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
128 }
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
129
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
130 foreach ($files as $file) {
8
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
131 $script=$file->getAttribute("script");
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
132 if ($script) {
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
133 $src="";
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
134 $cwd=getcwd();
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
135
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
136 $matches=array();
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
137 preg_match('/(.*\/)/', $script, $matches);
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
138 $dirname=$matches[0];
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
139 preg_match('/([^\/]*)$/', $script, $matches);
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
140 $filename=$matches[0];
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
141 chdir("${lang}/${dirname}");
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
142 $pipe=popen("php ${filename}","r");
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
143 $file_content = stream_get_contents($pipe);
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
144 chdir("${cwd}");
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
145 }
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
146 else {
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
147 $src=$file->getAttribute("src");
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
148 $file_content=loadFile("${lang}/${src}");
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 7
diff changeset
149 }
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
150 if(floatval($file_content)<0) {
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
151 errorPage("Resource not found '${lang}/${src}'");
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
152 }
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
153
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
154 $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
155 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
156 $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
157 $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
158 $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
159 $param_values=array();
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
160 $i=0;
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
161 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
162 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
163 {
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
164 $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
165 $callString.=",\$param_value[$i]";
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
166 $i++;
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
167 }
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
168 }
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
169 $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
170 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
171 }
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
172 $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
173 }
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
174
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
175 $out.='
0
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
176 </div>
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
177 </body>
d2da64705bce Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
178 </html>
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
179 ';
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
180
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
181 print $out;
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
182 ?>