Mercurial > SimpleWebPresenter
annotate Page.inc @ 86:b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Mon, 15 Oct 2012 18:32:56 +0200 |
| parents | 2a8e2f571b24 |
| children | 7a9c45b53866 |
| rev | line source |
|---|---|
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 <? |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
2 include_once 'ScriptIncludeCache.inc'; |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
3 |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
4 /// @cond |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
5 $baseDir = dirname(__FILE__); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
6 $cache = ScriptIncludeCache::instance(__FILE__); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
7 $cache->includeOnce('Options.inc', dirname(__FILE__)); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
8 /// @endcond |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
9 |
|
86
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
10 class PageContent |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
11 { |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
12 public $headers = array(); |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
13 public $content; |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
14 |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
15 function __construct($content = "") |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
16 { |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
17 $this->content = $content; |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
18 } |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
19 |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
20 function addHeader($txt) |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
21 { |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
22 array_push($this->headers, $txt); |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
23 } |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
24 |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
25 function __toString() |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
26 { |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
27 return $this->content; |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
28 } |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
29 } |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
30 |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
31 /** |
|
80
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
32 * Master class for generating a page |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
33 */ |
|
81
2a8e2f571b24
Make Page abstract.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
80
diff
changeset
|
34 abstract class Page |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
35 { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
36 private $cache; |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
37 |
|
80
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
38 /** |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
39 * Constructs a page |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
40 * |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
41 * @param $cache optionally sets a cache |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
42 */ |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
43 function __construct($cache = null) |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
44 { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
45 $this->setCache($cache); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
46 } |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
47 |
|
80
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
48 /** |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
49 * Set the cache |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
50 * |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
51 * @param $cache The cache object |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
52 */ |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
53 protected function setCache($cache) |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
54 { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
55 $this->cache = $cache; |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
56 } |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
57 |
|
80
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
58 /** |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
59 * Get the cache |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
60 * |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
61 * @return The cache object |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
62 */ |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
63 protected function getCache() |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
64 { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
65 return $this->cache; |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
66 } |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
67 |
|
80
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
68 /** |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
69 * Decide wether or not this page may be compressed. |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
70 * |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
71 * Normally this is a check for http headers, but some pages |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
72 * eg. pictures may not want to be compressed, and may override this |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
73 * function. |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
74 * |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
75 * @return bool if this page may be compressed |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
76 */ |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
77 function mayCompress() |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
78 { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
79 return (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
80 } |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
81 |
|
80
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
82 /** |
|
86
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
83 * Decide wether or not this page may be validated. |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
84 * |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
85 * Normally this is a check for the option novalidate, but this may |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
86 * be overridden |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
87 * |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
88 * @return bool if this page may be validated |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
89 */ |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
90 function mayValidate() |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
91 { |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
92 return !$_GET['novalidate']; |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
93 } |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
94 |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
95 |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
96 /** |
|
80
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
97 * Turns on compression for this page |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
98 * |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
99 * @note This may not be reversed |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
100 */ |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
101 function startCompression() |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
102 { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
103 ob_start("ob_gzhandler"); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
104 } |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
105 |
|
80
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
106 /** |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
107 * Generates the actual content of the page |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
108 * |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
109 * @return the content buffer |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
110 */ |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
111 abstract function generateContent(); |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
112 |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
113 /** |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
114 * Finishes all necessary processing to determine the cacheset of this page. |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
115 * |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
116 * @return bool if this page may be cached |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
117 */ |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
118 abstract function cacheCheck(); |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
119 |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
120 /** |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
121 * Generates an appropriate response to the request. |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
122 * |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
123 * Eg. 302 NOT CHANGED, error message or the actual content |
|
88904282b888
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
124 */ |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
125 function genPage() |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
126 { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
127 if ($this->cacheCheck()) { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
128 $this->cache->CheckHttpModified(); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
129 } |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
130 $res = $this->generateContent(); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
131 if ($this->mayCompress()) { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
132 $this->startCompression(); |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
133 } |
|
86
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
134 $t = gettype($res); |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
135 if ($t === "string") { |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
136 $res = new Content($res); |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
137 } |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
138 elseif (get_class($res) !== "PageContent") { |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
139 throw new InvalidArgumentException("generateContent returned an unexpected type"); |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
140 } |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
141 return $res; |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
142 } |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
143 |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
144 function display() |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
145 { |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
146 $res = $this->genPage(); |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
147 foreach ($res->headers as $header) { |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
148 header($header); |
|
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
81
diff
changeset
|
149 } |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
150 print $res; |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
151 } |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
152 |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
153 |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
154 } |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
155 ?> |
