1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
|
<?php
/**
* Google sitemap 2Clubradio 2006
*
* you may add a .htaccess with
* --------------------
* RewriteEngine On
* RewriteBase /
* RewriteRule sitemap.xml google_sitemap.php [L,QSA]
* --------------------
* then sign on with google account to
*
* http://www.google.de/webmasters/sitemaps/login
*
* and register your http://www.yoursite.de/sitemap.xml (or where ever you store it)
*
*
* Only board, which will are signed as "In Archive" (setting in ACP/Boards) will be used for the sitemap!!!
*
*
* PHP versions 4 and 5
*
*/
require("./global.php");
// addon pages
// pages, which are listed first get a higher priority
$pages = array();
#$pages[] = "$url2board/example1.php";
#$pages[] = "$url2board/example1.php";
#$pages[] = "$url2board/example1.php";
class google_sitemap
{
var $offset = 0;
var $limit = 100;
var $use_mod_rewrite = 1;
var $is_php5;
var $pages;
var $db;
var $n;
var $url2board;
function google_sitemap($pages=null)
{
global $db, $n, $url2board;
$this->db =& $db;
$this->n =& $n;
$this->url2board =& $url2board;
if ((isset($pages)) && (is_array($pages)))
{
$this->pages = $pages;
}
if (substr(phpversion(),0, 1)=="5") $this->is_php5 = true;
else $this->is_php5 = false;
}
/**
* Release output
*
*/
function release()
{
$this->add_header();
$this->add_pages();
$this->add_threads();
}
/**
* Add XML header
*
*/
function add_header()
{
ob_start("ob_gzhandler");
header('Content-Type: text/xml; charset="UTF-8"');
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";
function date_8601($zeit) {
$int_date=$zeit;
$date_mod = date('Y-m-d\TH:i:s', $int_date);
$pre_timezone = date('O', $int_date);
$time_zone = substr($pre_timezone, 0, 3).":".substr($pre_timezone, 3, 2);
$date_mod .= $time_zone;
return $date_mod;
}
$zeit=time();
echo "<url>
<loc>".$this->url2board."/"."</loc>
<lastmod>".date_8601($zeit)."</lastmod>
<changefreq>always</changefreq>
<priority>0.7</priority>
</url>";
}
/**
* Add user defined pages on top of the sitemap
*
*/
function add_pages()
{
if ((is_array($this->pages)) && (count($this->pages)>0))
{
$max_pages = count($this->pages);
if (($max_pages/5)>=1)
{
$prio_step = ceil(($max_pages/5));
}
else
{
$prio_step = 1;
}
reset($this->pages);
$cnt = 0;
$prio_cnt = 0;
while(list(, $page)=each($this->pages))
{
$cnt++;
if ($cnt>$prio_step)
{
$prio_cnt++;
$cnt=1;
}
if ($prio_cnt==0) $prio = "1.0";
else $prio = "0." . (10 - $prio_cnt);
echo "\t<url>\n";
echo "\t\t<loc>".utf8_encode($page)."</loc>\n";
echo "\t\t<changefreq>always</changefreq>\n";
echo "\t\t<priority>$prio</priority>\n";
echo "\t</url>\n";
}
}
}
/**
* Add WBB board threads to sitemap
*
*/
function add_threads()
{
$que = $this->db->query("SELECT b.`boardid`, b.`title`, b.`description`,
t.`threadid`, t.`topic`, t.`lastposttime`
FROM `bb".$this->n."_threads` AS t
LEFT JOIN `bb".$this->n."_boards` AS b
ON (b.`boardid`=t.`boardid`)
WHERE b.`showinarchive`=1
AND t.`closed`<3
AND t.`visible`=1
ORDER BY t.`lastposttime` DESC
LIMIT ".intval($this->offset).",".intval($this->limit));
while ($row=$this->db->fetch_array($que))
{
echo "\t<url>\n";
echo "\t\t<loc>".$this->get_url1($row)."</loc>\n";
echo "\t\t<lastmod>".$this->get_iso_8601_date($row['lastposttime'])."</lastmod>\n";
echo "
<changefreq>always</changefreq>
<priority>0.6</priority>
";
echo "\t</url>\n";
echo "\t<url>\n";
echo "\t\t<loc>".$this->get_url($row)."</loc>\n";
echo "\t\t<lastmod>".$this->get_iso_8601_date($row['lastposttime'])."</lastmod>\n";
echo "
<changefreq>always</changefreq>
<priority>0.6</priority>
";
echo "\t</url>\n";
}
echo "</urlset>\n";
}
/**
* Get URL to content
*
* @param array $row
* @return string
*/
function get_url($row,$topic=null){
global $tpl, $lang;
$forumneu=str_replace(" ","-",$row['topic']);
$forumneu=str_replace("!","",$forumneu);
$forumneu=str_replace("!","",$forumneu);
$forumneu=str_replace("?","",$forumneu);
$forumneu=str_replace("/","_",$forumneu);
$forumneu=str_replace(".","",$forumneu);
$forumneu=str_replace(",","",$forumneu);
$forumneu=str_replace(":","",$forumneu);
$forumneu=str_replace(";","",$forumneu);
$forumneu=str_replace(")","",$forumneu);
$forumneu=str_replace("(","",$forumneu);
$forumneu=str_replace("]","",$forumneu);
$forumneu=str_replace("[","",$forumneu);
$forumneu=str_replace("}","",$forumneu);
$forumneu=str_replace("{","",$forumneu);
$forumneu=str_replace(">","",$forumneu);
$forumneu=str_replace("<","",$forumneu);
$forumneu=str_replace("ä","ae",$forumneu);
$forumneu=str_replace("ö","oe",$forumneu);
$forumneu=str_replace("ü","ue",$forumneu);
$forumneu=str_replace("&","",$forumneu);
$forumneu=str_replace("Ä","Ae",$forumneu);
$forumneu=str_replace("Ü","Ue",$forumneu);
$forumneu=str_replace("Ö","Oe",$forumneu);
$forumneu=str_replace("ß","ss",$forumneu);
$forumneu=str_replace("ü","ue",$forumneu);
$forumneu=str_replace("ö","oe",$forumneu);
$forumneu=str_replace("ä","ae",$forumneu);
$forumneu=str_replace("Ü","Ue",$forumneu);
$forumneu=str_replace("Ö","Oe",$forumneu);
$forumneu=str_replace("Ä","Ae",$forumneu);
$forumneu=preg_replace('/[^a-z,0-9\.]/i', '-', $forumneu);
//$url = $this->url2board."/"."board_{$row['boardid']}_{ }.html";
{
$url = $this->url2board."/"."thread_{$row['threadid']}_{$forumneu}.html";
}
return $url;
}
function get_url1($row,$topic=null){
global $boards, $tpl, $lang;
$forumneu1=str_replace(" ","-",$row['title']);
$forumneu1=str_replace("!","",$forumneu1);
$forumneu1=str_replace("!","",$forumneu1);
$forumneu1=str_replace("?","",$forumneu1);
$forumneu1=str_replace("/","_",$forumneu1);
$forumneu1=str_replace(".","",$forumneu1);
$forumneu1=str_replace(",","",$forumneu1);
$forumneu1=str_replace(":","",$forumneu1);
$forumneu1=str_replace(";","",$forumneu1);
$forumneu1=str_replace(")","",$forumneu1);
$forumneu1=str_replace("(","",$forumneu1);
$forumneu1=str_replace("]","",$forumneu1);
$forumneu1=str_replace("[","",$forumneu1);
$forumneu1=str_replace("}","",$forumneu1);
$forumneu1=str_replace("{","",$forumneu1);
$forumneu1=str_replace(">","",$forumneu1);
$forumneu1=str_replace("<","",$forumneu1);
$forumneu1=str_replace("ä","ae",$forumneu1);
$forumneu1=str_replace("ö","oe",$forumneu1);
$forumneu1=str_replace("ü","ue",$forumneu1);
$forumneu1=str_replace("&","",$forumneu1);
$forumneu1=str_replace("Ä","Ae",$forumneu1);
$forumneu1=str_replace("Ü","Ue",$forumneu1);
$forumneu1=str_replace("Ö","Oe",$forumneu1);
$forumneu1=str_replace("ß","ss",$forumneu1);
$forumneu1=str_replace("ü","ue",$forumneu1);
$forumneu1=str_replace("ö","oe",$forumneu1);
$forumneu1=str_replace("ä","ae",$forumneu1);
$forumneu1=str_replace("Ü","Ue",$forumneu1);
$forumneu1=str_replace("Ö","Oe",$forumneu1);
$forumneu1=str_replace("Ä","Ae",$forumneu1);
$forumneu1=preg_replace('/[^a-z,0-9\.]/i', '-', $forumneu1);
//$url = $this->url2board."/"."board_{$row['boardid']}_{ }.html";
{
$url = $this->url2board."/"."board_{$row['boardid']}_{$forumneu1}.html";
}
return $url;
}
/**
* Get ISO 8601 Date
*
* @param int $int_date
* @return string
*/
function get_iso_8601_date($int_date)
{
if ($this->is_php5)
{
$rc = date('c', $int_date);
}
else
{
$rc = date('Y-m-d\TH:i:s', $int_date);
$pre_timezone = date('O', $int_date);
$time_zone = substr($pre_timezone, 0, 3).":".substr($pre_timezone, 3, 2);
$rc .= $time_zone;
}
return $rc;
}
}
$google_sitemap = new google_sitemap($pages);
$google_sitemap->release();
?> |