Mercurial > SimpleWebPresenter
annotate sitemap.php @ 51:2cfea6e84694
Documentation update.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Thu, 11 Oct 2012 00:06:26 +0200 |
| parents | 79f708a48a7c |
| children | 2e6ba7259281 |
| rev | line source |
|---|---|
|
30
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 <? |
|
51
2cfea6e84694
Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
2 /** |
|
2cfea6e84694
Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
3 * @file |
|
2cfea6e84694
Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
4 * Generates a sitemap |
|
2cfea6e84694
Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
5 */ |
|
30
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
6 header('Content-type: application/xml'); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
7 print '<?xml version="1.0" encoding="UTF-8"?>'; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
8 print "\n"; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
9 ?> |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
10 <urlset |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
11 xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
12 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
13 xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
14 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
15 <? |
|
44
79f708a48a7c
Added a constants include.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
16 include_once 'CacheTimeCheck.inc'; |
|
30
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
17 |
|
44
79f708a48a7c
Added a constants include.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
18 $cache = CacheTimeCheck::instance(__FILE__); |
|
79f708a48a7c
Added a constants include.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
19 $cache->includeOnce('Options.inc', dirname(__FILE__)); |
|
30
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
20 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
21 $master = new DOMDocument(); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
22 $master->load("master.xml"); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
23 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
24 $options = new Options($master); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
25 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
26 $base = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
27 $base = substr($base, 0, strrpos($base, '/')); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
28 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
29 $acceptedLanguages = $options->getAcceptedLanguages(); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
30 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
31 foreach($options->getAcceptedLanguages() as $lang) { |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
32 if ($handle = opendir("${lang}")) { |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
33 while (false !== ($entry = readdir($handle))) { |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
34 if (endsWith($entry, '.xml')) { |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
35 $fentry = "${lang}/${entry}"; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
36 $doc = new DOMDocument(); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
37 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
38 if (file_exists($fentry)) { |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
39 $doc->load($fentry); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
40 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
41 $opts = array(); |
|
31
f37be50a70cf
Fix for more than 1 language.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
30
diff
changeset
|
42 if (count($acceptedLanguages) > 1) { |
|
30
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
43 $opts['lang'] = $lang; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
44 } |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
45 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
46 $toplevel = $doc->getElementsByTagName("toplevel"); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
47 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
48 if($toplevel->length) { |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
49 $name = substr($entry, 0, -4); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
50 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
51 if ($name != $options->getInputDefault('name')) { |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
52 $opts['name'] = $name; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
53 } |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
54 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
55 $optstring = opttostring($opts); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
56 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
57 $location = "${base}/${optstring}"; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
58 $headers = getHeaders($location); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
59 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
60 $location = htmlentities($location); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
61 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
62 $lastmod = $headers["Last-Modified"]; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
63 $lastmod = strtotime($lastmod); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
64 $lastmod = date(DateTime::W3C, $lastmod); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
65 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
66 print "<url>\n"; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
67 print "<loc>${location}</loc>\n"; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
68 print "<lastmod>${lastmod}</lastmod>\n"; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
69 print "</url>\n"; |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
70 } |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
71 } |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
72 } |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
73 } |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
74 closedir($handle); |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
75 } |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
76 } |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
77 |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
78 ?> |
|
647b72603b7d
Script to autogenerate a sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
79 </urlset> |
