Mercurial > SimpleWebPresenter
annotate Sitemap.inc @ 98:f2d52fed708c
Split retrieval and production of urls.
Support for stylesheets in sitemap.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Fri, 19 Oct 2012 01:36:22 +0200 |
| parents | c7de7a4641d7 |
| children | d98e315308cd |
| rev | line source |
|---|---|
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 <? |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
2 include_once 'ScriptIncludeCache.inc'; |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
3 |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
4 /// @cond |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
5 $baseDir = dirname(__FILE__); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
6 $cache = ScriptIncludeCache::instance(__FILE__); |
|
93
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
91
diff
changeset
|
7 $cache->includeOnce('Http.inc', $baseDir); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
91
diff
changeset
|
8 $cache->includeOnce('Page.inc', $baseDir); |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
9 $cache->includeOnce('common-functions.inc', $baseDir); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
10 /// @endcond |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
11 |
|
98
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
12 function cmp_length_lex($a, $b) |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
13 { |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
14 if ($a == $b) { |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
15 return 0; |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
16 } |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
17 $la = strlen($a); |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
18 $lb = strlen($b); |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
19 if ($la == $lb) { |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
20 return ($la < $lb) ? -1 : 1; |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
21 } |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
22 return ($a < $b) ? -1 : 1; |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
23 } |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
24 |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
25 |
|
74
1d5166aba2c5
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
73
diff
changeset
|
26 /** |
|
1d5166aba2c5
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
73
diff
changeset
|
27 * Functionality for generating a sitemap |
|
1d5166aba2c5
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
73
diff
changeset
|
28 */ |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
74
diff
changeset
|
29 class Sitemap extends Page |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
30 { |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
31 private $master; |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
32 private $options; |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
33 |
|
74
1d5166aba2c5
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
73
diff
changeset
|
34 /** |
|
1d5166aba2c5
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
73
diff
changeset
|
35 * Constructs a sitemap object from a master document |
|
1d5166aba2c5
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
73
diff
changeset
|
36 * |
|
1d5166aba2c5
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
73
diff
changeset
|
37 * @param $path location of master document |
|
1d5166aba2c5
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
73
diff
changeset
|
38 */ |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
39 function __construct($path) { |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
40 $this->master = new DOMDocument(); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
41 $this->master->load($path); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
42 |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
43 $this->options = new Options($this->master); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
44 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
45 |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
74
diff
changeset
|
46 function cacheCheck() |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
74
diff
changeset
|
47 { |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
74
diff
changeset
|
48 return false; |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
74
diff
changeset
|
49 } |
|
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
74
diff
changeset
|
50 |
|
91
1d4c980f4255
Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
86
diff
changeset
|
51 function mayValidate() |
|
1d4c980f4255
Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
86
diff
changeset
|
52 { |
|
1d4c980f4255
Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
86
diff
changeset
|
53 return false; |
|
1d4c980f4255
Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
86
diff
changeset
|
54 } |
|
1d4c980f4255
Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
86
diff
changeset
|
55 |
|
78
7c68015b211a
Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
74
diff
changeset
|
56 function generateContent() { |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
57 /// The final output variable |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
58 $out = '<?xml version="1.0" encoding="UTF-8"?>'; |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
59 $out .= "\n"; |
|
98
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
60 $out .= '<?xml-stylesheet type="text/xsl" href="/css/gss.xsl"?>'; |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
61 $out .= "\n"; |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
62 $out .= '<urlset |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
63 xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
64 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
65 xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
66 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
67 '; |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
68 |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
69 $base = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; |
|
96
c7de7a4641d7
Generate humanreadable urls for sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
95
diff
changeset
|
70 $l = strrpos($base, '/'); |
|
c7de7a4641d7
Generate humanreadable urls for sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
95
diff
changeset
|
71 if ($l) |
|
c7de7a4641d7
Generate humanreadable urls for sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
95
diff
changeset
|
72 $base = substr($base, 0, $l); |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
73 |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
74 $acceptedLanguages = $this->options->getAcceptedLanguages(); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
75 |
|
98
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
76 $urls = array(); |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
77 |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
78 foreach($this->options->getAcceptedLanguages() as $lang) { |
| 95 | 79 if ($handle = opendir(basePath() . "/${lang}")) { |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
80 while (false !== ($entry = readdir($handle))) { |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
81 if (endsWith($entry, '.xml')) { |
| 95 | 82 $fentry = basepath() . "/${lang}/${entry}"; |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
83 $doc = new DOMDocument(); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
84 |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
85 if (file_exists($fentry)) { |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
86 $doc->load($fentry); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
87 |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
88 $opts = array(); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
89 if (count($acceptedLanguages) > 1) { |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
90 $opts['lang'] = $lang; |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
91 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
92 |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
93 $toplevel = $doc->getElementsByTagName("toplevel"); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
94 |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
95 if($toplevel->length) { |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
96 $name = substr($entry, 0, -4); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
97 |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
98 if ($name != $this->options->getInputDefault('name')) { |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
99 $opts['name'] = $name; |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
100 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
101 |
|
96
c7de7a4641d7
Generate humanreadable urls for sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
95
diff
changeset
|
102 $optstring = genUrl($opts, array(), array('lang', 'name')); |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
103 |
|
96
c7de7a4641d7
Generate humanreadable urls for sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
95
diff
changeset
|
104 $location = "${base}${optstring}/"; |
|
c7de7a4641d7
Generate humanreadable urls for sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
95
diff
changeset
|
105 |
|
98
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
106 array_push($urls, $location); |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
107 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
108 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
109 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
110 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
111 closedir($handle); |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
112 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
113 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
114 |
|
98
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
115 usort($urls, cmp_length_lex); |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
116 |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
117 foreach($urls as $location) { |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
118 $headers = Http::getHeaders($location, 5); |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
119 |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
120 $location = htmlentities($location); |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
121 |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
122 $lastmod = $headers["Last-Modified"]; |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
123 |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
124 $n = StatusCodes::codeFromHeader($headers['']); |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
125 |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
126 if ($n == StatusCodes::HTTP_OK) { |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
127 $lastmod = strtotime($lastmod); |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
128 $lastmod = date(DateTime::W3C, $lastmod); |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
129 |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
130 $out .= "<url>\n"; |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
131 $out .= "<loc>${location}</loc>\n"; |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
132 $out .= "<lastmod>${lastmod}</lastmod>\n"; |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
133 $out .= "</url>\n"; |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
134 } |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
135 } |
|
f2d52fed708c
Split retrieval and production of urls.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
96
diff
changeset
|
136 |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
137 $out .= '</urlset>'; |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
138 |
|
86
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
139 $res = new PageContent($out); |
|
91
1d4c980f4255
Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
86
diff
changeset
|
140 $res->setHeader('Content-type', 'application/xml'); |
|
86
b9654b9c4a66
Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
78
diff
changeset
|
141 return $res; |
|
73
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
142 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
143 } |
|
947d53f95ccd
Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
144 ?> |
