Hallo zusammen,
ich lese nun schon einige Zeit in diesem Forum. Nun ist es auch mal an der Zeit ein Modul bzw. eine Überarbeitung zu posten. Ich habe mich mal dem XML-Sitemap-Modul angenommen. Mich hat gestört, das man Artikeln keine verschiedene Prioritäten zuweisen kann... womit sich diese Funktion ja fast erledigt hätte.
Ich habe also den Script von Luxmedia Österreich mit den Änderungen von derSteffen genommen, alles aufgeräumt und dann noch alle weiteren Verbesserungen eingebaut, die ich im Forum finden konnte. Ausserdem habe ich die Möglichkeit eingebaut einzelne Kategorien mit eigenen Prioritäten und Änderungshäufigkeiten zu versehen.
WICHTIG: für die Verwendung bitte unbedingt die Anleitung in der Beschreibung durchlesen, da ihr ein include von HerrB benötigt.
Das Modul ist nicht für ModRewrite entwickelt worden.
Ich hoffe ich habe nicht allzuviele Fehler drin und ich muss leider gestehen, das ich die Sitemap noch nicht mit Google getestet habe.
Gruß
Ratze
BESCHREIBUNG:
Code: Alles auswählen
MODUL-NAME:
XMLSitemaps
BESCHREIBUNG
Diese Modul erzeugt ein Sitemap-Protocol im
XML-Format. Diese Format unterstützen z.B.:
Google, Yahoo!, und Microsoft. Es vereinfacht
den Suchmaschinen das Durchsuchen der URLs
einer Site.
INSTALLATION:
1. Anmelden beim Google Sitemaps Service unter: https://www.google.com/webmasters/sitemaps/login
2. XMLSitemap-Modul anlegen/installieren
3. Die Datei "functions.input.helper.php" von HerrB muss im includes-Ordner des Mandanten liegen.
Sie ist z.B. Bestandteil von diesem Modul:
http://contenido.org/forum/viewtopic.php?t=10957
4. Neues Layout mit folgendem Inhalt anlegen: CMS_CONTAINER[1]
Im Layout dürfen keine weiteren HTML-Tags oder Leerzeichen enthalten sein.
5. Neues Template erstellen mit dem neuen Layout und dem XMLSitemap-Modul
6. Neue Kategorie erstellen und eine neue Seite mit dem neuen Template zuweisen
7. Jetzt den Link dieser neuen Seite im Browser aufrufen und testen
8. Den Link Google mitteilen
PROBLEME UND ANMERKUNGEN:
- Bei dem Modul wird ein Fehler im Eingabe Bereich angezeigt.
Dieser liegt im Script im Bereich "Kategorien auswählen".
Beim Aufruf der JavaScript-Funktion ArtAdv_fncUpdateSel kommt
er beim dynamischen CMS_VAR[".$iElementKat."] nicht klar...
das Modul läuft aber ohne Probleme... zumindestens bei mir...
- Die Ausnahmen beziehen sich nur auf die Artikel in der Kategorie,
nicht auf die Artikel in Unterkategorien.
WEITERE INFOS:
https://www.google.com/webmasters/sitemaps/docs/de/protocol.html
--------------------------------------------------------
Author Luxmedia Österreich
Copyright www.luxmedia.at
2005-06-09
- INPUT: Abfrage des Skriptnames
- INPUT: Einbindung von lastmod je nach Wunsch
- INPUT: changefreq
- OUTPUT: Nur Artikel die Online sind
- OUTPUT: lastmod, changefreq, Skriptname aus INPUT
- OUTPUT: lastmod Datumsformat iso8601
Angepasst durch derSteffen
2005-12-21
- OUTPUT: Neu: priority
- OUTPUT: Neuer Header (<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" usw...)
Angepasst durch derSteffen und HerrB
2006-01-03
- INPUT: Bugfix (Speichern der Werte der Selektfelder cms php skript
[durch HrBee] Änderungsdatum und Änderungshäufigkeit)
- INPUT: Neues Feld: priority
Überarbeitet durch Ratze
2007-08-11
- INPUT: Überarbeitung und Säuberung des Codes
- INPUT: Neu: Mehrsprachfähig im Backend
- INPUT/OUPUT: Neu: Ausnahmen. Die Möglichkeit einzelnen Kategorien
andere Prioritäten und Änderungshäufigkeiten zuzuweisen
(Scriptelemente bei den "Ausnahmen" aus dem Modul "Article List
Advanced" von HerrB entnommen. Danke :-)
- INPUT/OUTPU: Auszuschliessende Artikel von windowlicker vom 2006-08-06 eingebaut
- OUTPUT: SQL-Abfrage von MyAccount aus dem Modul "myGoogleSitemap"
vom 2006-08-02 eingebaut
- OUTPUT: Wenn eine Seite ein Seitentitel hat, wird dieser als Kommentar
in die XML-Datei geschrieben, damit wird die Kontrolle der Seiten einfacher.
--------------------------------------------------------
EINGABE:
Code: Alles auswählen
?><?php
/* --------------------------------------------------------------------------- */
/* */
/* XML Sitemaps - Ausgabe als XML - Version vom 11.08.2007 */
/* INPUT */
/* */
/* --------------------------------------------------------------------------- */
cInclude("frontend", "includes/functions.input.helper.php");
$sSubmitLink = '<a href="javascript:if (document.tplcfgform.send) {document.tplcfgform.send.value = 0}; document.tplcfgform.submit();"><img src="images/submit.gif" /></a>';
/* CONFIG -------------------------------------------------------------------- */
/* Hier können Elemente in den DropDown-Felder geändert */
/* oder ergänzt werden ohne unten in den Script zu gehen */
/* --------------------------------------------------------------------------- */
// Welche CMS-PHP-Datei wird angesprochen
$cmsPhpSkript_auswahl = array();
$cmsPhpSkript_auswahl[] = "front_content.php";
$cmsPhpSkript_auswahl[] = "index.php";
// In welchem Rythmus wird die Seite aktualisiert?
$aktualisierung_auswahl = array();
$aktualisierung_auswahl[0]["wert"] = "0";
$aktualisierung_auswahl[0]["beschr"] = mi18n("Nicht setzten");
$aktualisierung_auswahl[1]["wert"] = "always";
$aktualisierung_auswahl[1]["beschr"] = mi18n("Immer");
$aktualisierung_auswahl[2]["wert"] = "hourly";
$aktualisierung_auswahl[2]["beschr"] = mi18n("Stündlich");
$aktualisierung_auswahl[3]["wert"] = "daily";
$aktualisierung_auswahl[3]["beschr"] = mi18n("Täglich");
$aktualisierung_auswahl[4]["wert"] = "weekly";
$aktualisierung_auswahl[4]["beschr"] = mi18n("Wöchentlich");
$aktualisierung_auswahl[5]["wert"] = "monthly";
$aktualisierung_auswahl[5]["beschr"] = mi18n("Monatlich");
$aktualisierung_auswahl[6]["wert"] = "yearly";
$aktualisierung_auswahl[6]["beschr"] = mi18n("Jährlich");
$aktualisierung_auswahl[7]["wert"] = "never";
$aktualisierung_auswahl[7]["beschr"] = mi18n("Niemals");
// Welche Priorität soll den Seiten zugeordnet werden?
$prioritaet_auswahl = array();
$prioritaet_auswahl[0]["wert"] = "0";
$prioritaet_auswahl[0]["beschr"] = mi18n("Nicht setzten");
$prioritaet_auswahl[1]["wert"] = "0.0";
$prioritaet_auswahl[1]["beschr"] = "0.0";
$prioritaet_auswahl[2]["wert"] = "0.1";
$prioritaet_auswahl[2]["beschr"] = "0.1";
$prioritaet_auswahl[3]["wert"] = "0.2";
$prioritaet_auswahl[3]["beschr"] = "0.2";
$prioritaet_auswahl[4]["wert"] = "0.3";
$prioritaet_auswahl[4]["beschr"] = "0.3";
$prioritaet_auswahl[5]["wert"] = "0.4";
$prioritaet_auswahl[5]["beschr"] = "0.4";
$prioritaet_auswahl[6]["wert"] = "0.5";
$prioritaet_auswahl[6]["beschr"] = "0.5";
$prioritaet_auswahl[7]["wert"] = "0.6";
$prioritaet_auswahl[7]["beschr"] = "0.6";
$prioritaet_auswahl[8]["wert"] = "0.7";
$prioritaet_auswahl[8]["beschr"] = "0.7";
$prioritaet_auswahl[9]["wert"] = "0.8";
$prioritaet_auswahl[9]["beschr"] = "0.8";
$prioritaet_auswahl[10]["wert"] = "0.9";
$prioritaet_auswahl[10]["beschr"] = "0.9";
$prioritaet_auswahl[11]["wert"] = "1.0";
$prioritaet_auswahl[11]["beschr"] = "1.0";
/* DEFINITION DER CMS-VARIABLEN ---------------------------------------------- */
$cmsPhpSkript = "CMS_VALUE[0]";
$letzteAenderung = "CMS_VALUE[1]";
$aktualisierung = "CMS_VALUE[2]";
$prioritaet = "CMS_VALUE[3]";
$anzAusnahmen = "CMS_VALUE[4]";
$dontshow = "CMS_VALUE[5]";
// Ausnahmen
$iDataStart = 30;
if ($anzAusnahmen > 0) {
for ($i = 0; $i < $anzAusnahmen; $i++) {
$iElementType = $iDataStart + ($i * 5);
$iElementKat = $iElementType + 1;
$iElementWert_aktu = $iElementType + 2;
$iElementWert_prio = $iElementType + 3;
$aSettings["k".$i] = array();
$aSettings["k".$i]["ElementType"] = "CMS_VALUE[$iElementType]"; // changefreq, priority
$aSettings["k".$i]["ElementKat"] = "CMS_VALUE[$iElementKat]"; // Kategorien, die geändert werden sollen
$aSettings["k".$i]["ElementWert_aktu"] = "CMS_VALUE[$iElementWert_aktu]"; // Wert Aktualisierung
$aSettings["k".$i]["ElementWert_prio"] = "CMS_VALUE[$iElementWert_prio]"; // Wert Priorität
if ($aSettings["k".$i]["ElementType"] == "") {
$aSettings["k".$i]["ElementType"] == "0";
}
}
}
/* DEFAULT-WERTE ------------------------------------------------------------- */
if ($cmsPhpSkript == "") {
$cmsPhpSkript = $cmsPhpSkript_auswahl[0];
}
if ($letzteAenderung == "") {
$letzteAenderung = "0";
}
if ($aktualisierung == "") {
$aktualisierung = $aktualisierung_auswahl[0]["wert"];
}
if ($prioritaet == "") {
$prioritaet = $prioritaet_auswahl[0]["wert"];
}
if ($dontshow == "") {
$dontshow = "";
}
/* BEGINN -------------------------------------------------------------------- */
// Weitere Infos
echo "\n\n\n".'<SCRIPT LANGUAGE="JavaScript">'."\n";
echo ' <!--'."\n";
echo ' function sitemapErklaerung() {'."\n";
echo ' erklaerungSitemap = window.open("","Erklaerung","width=700,height=450");'."\n";
echo ' sitemapErklaerung01();'."\n";
echo ' }'."\n";
echo ' function sitemapErklaerung01() {'."\n";
echo ' var sitemapErklaerungInhalt = \''.mi18n("<p><strong>INSTALLATION:<\/strong><\/p><ol><li>Anmelden beim Google Sitemaps Service unter: <a href=\"https:\/\/www.google.com\/webmasters\/sitemaps\/login\" target=\"_blank\">https:\/\/www.google.com\/webmasters\/sitemaps\/login<\/a><\/li><li>XMLSitemap-Modul anlegen\/installieren<\/li><li>Die Datei \"functions.input.helper.php\" von HerrB muss im includes-Ordner des Mandanten liegen.<br>Sie ist z.B. Bestandteil von diesem Modul:<br><a href=\"http:\/\/contenido.org\/forum\/viewtopic.php?t=10957\" target=\"_blank\">http:\/\/contenido.org\/forum\/viewtopic.php?t=10957<\/a><\/li><li>Neues Layout mit folgendem Inhalt anlegen: CMS_CONTAINER[1]<br \/>Im Layout dürfen keine weiteren HTML-Tags oder Leerzeichen enthalten sein.<\/li><li>Neues Template erstellen mit dem neuen Layout und dem XMLSitemap-Modul<\/li><li>Neue Kategorie erstellen und eine neue Seite mit dem neuen Template zuweisen<br \/><\/li><li>Jetzt den Link dieser neuen Seite im Browser aufrufen und testen<\/li><li>Den Link Google mitteilen<\/li><\/ol><p><strong>WEITERE INFOS: <\/strong><\/p><ul><li><a href=\"https:\/\/www.google.com\/webmasters\/sitemaps\/docs\/de\/protocol.html\" target=\"_blank\">https:\/\/www.google.com\/webmasters\/sitemaps\/docs\/de\/protocol.html<\/a><\/li><\/ul>").'\';'."\n";
echo ' erklaerungSitemap.document.write(sitemapErklaerungInhalt);'."\n";
echo ' }'."\n";
echo ' // -->'."\n";
echo '</SCRIPT>'."\n\n";
echo '<table cellspacing="0" cellpadding="10" border="0">'."\n";
echo ' <tr>'."\n";
echo ' <td colspan="2"><a href="#" onClick="sitemapErklaerung()">'.mi18n("Mehr Infos über dieses Modul").'</a></td>'."\n";
echo ' </tr>'."\n";
// Welche CMS-PHP-Datei wird angesprochen?
echo ' <tr>'."\n";
echo ' <td>'.mi18n("CMS-PHP-Skript:").'</td>'."\n";
echo ' <td>'."\n";
echo ' <select name="CMS_VAR[0]">'."\n";
foreach ($cmsPhpSkript_auswahl AS $mein) {
echo ' <option value="'.$mein.'"';
if ($cmsPhpSkript == $mein) { echo ' selected'; }
echo '>'.$mein.'</option>'."\n";
}
echo ' </select>'."\n";
echo ' </td>'."\n";
echo ' </tr>'."\n";
// Soll die letzte Änderung mit aufgenommen werden?
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Änderungsdatum verwenden:").'</td>'."\n";
echo ' <td>'."\n";
echo ' <select name="CMS_VAR[1]">'."\n";
echo ' <option value="0"';
if ($letzteAenderung == "0") { echo ' selected'; }
echo '>'.mi18n("Nicht setzen").'</option>'."\n";
echo ' <option value="1"';
if ($letzteAenderung == "1") { echo ' selected'; }
echo '>'.mi18n("Ja").'</option>'."\n";
echo ' </select>'."\n";
echo ' </td>'."\n";
echo ' </tr>'."\n";
// In welchem Rythmus wird die Seite aktualisiert?
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Änderungshäufigkeit aller Seiten:").'</td>'."\n";
echo ' <td>'."\n";
echo ' <select name="CMS_VAR[2]">'."\n";
foreach ($aktualisierung_auswahl AS $mein) {
echo ' <option value="'.$mein["wert"].'"';
if ($aktualisierung == $mein["wert"]) { echo ' selected'; }
echo '>'.$mein["beschr"].'</option>'."\n";
}
echo ' </select>'."\n";
echo ' </td>'."\n";
echo ' </tr>'."\n";
// Welche Priorität soll den Seiten zugeordnet werden?
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Priorität aller Seiten:").'</td>'."\n";
echo ' <td>'."\n";
echo ' <select name="CMS_VAR[3]">'."\n";
foreach ($prioritaet_auswahl AS $mein) {
echo ' <option value="'.$mein["wert"].'"';
if ($prioritaet == $mein["wert"]) { echo ' selected'; }
echo '>'.$mein["beschr"].'</option>'."\n";
}
echo ' </select>'."\n";
echo ' </td>'."\n";
echo ' </tr>'."\n";
// Welch Artikel sollen ausgelassen werden?
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Auszuschliessende Artikel:").'</td>'."\n";
echo ' <td>'."\n";
echo ' <input type="text" name="CMS_VAR[5]" value="'.$dontshow.'" size="10">'."\n";
echo ' '.mi18n("Artikel-Id mit Komma getrennt (z.B. 5,23,89)")."\n";
echo ' </td>'."\n";
echo ' </tr>'."\n";
/* AUSNAHMEN ----------------------------------------------------------------- */
// Wieviele Ausnahmen
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Wieviele Ausnahmen:").'</td>'."\n";
echo ' <td>'."\n";
echo ' <input type="text" name="CMS_VAR[4]" value="'.$anzAusnahmen.'" size="3"> '.$sSubmitLink."\n";
echo ' </td>'."\n";
echo ' </tr>'."\n";
if ($anzAusnahmen > 0) {
echo fncAddMultiSelJS();
// Strich
echo ' <tr><td colspan="2"><hr></td></tr>'."\n";
for ($i = 0; $i < $anzAusnahmen; $i++) {
echo "\n"." <!-- Durchlauf ".$i." -->"."\n";
$iElementType = $iDataStart + ($i * 5);
$iElementKat = $iElementType + 1;
$iElementWert_aktu = $iElementType + 2;
$iElementWert_prio = $iElementType + 3;
echo ' <tr>'."\n";
echo ' <td valign="top">'.($i+1).'. '.mi18n("Ausnahme:").'</td>'."\n";
echo ' <td>'."\n";
// Typ der Ausnahme auswählen:
echo ' '.mi18n("Typ:").'<br>'."\n";
echo ' <select name="CMS_VAR['.$iElementType.']">'."\n";
echo ' <option value="0"';
if ($aSettings["k".$i]["ElementType"] == "0") { echo ' selected'; }
echo '>'.mi18n("Bitte auswählen...").'</option>'."\n";
echo ' <option value="changefreq"';
if ($aSettings["k".$i]["ElementType"] == "changefreq") { echo ' selected'; }
echo '>'.mi18n("Änderungshäufigkeit").'</option>'."\n";
echo ' <option value="priority"';
if ($aSettings["k".$i]["ElementType"] == "priority") { echo ' selected'; }
echo '>'.mi18n("Priorität").'</option>'."\n";
echo ' </select>'."\n";
echo ' '.$sSubmitLink.' '."\n";
if ($aSettings["k".$i]["ElementType"] != "0") {
echo ' <br><br>'."\n";
// Kategorie auswählen
echo ' '.mi18n("Kategorien auswählen:").'<br>'."\n";
echo fncBuildCategorySelect("c".$i."cbxAddCatSel", $aSettings["k".$i]["ElementKat"], 0, "ArtAdv_fncUpdateSel('c".$i."cbxAddCatSel', '"."CMS_VAR[".$iElementKat."]"."');", "6", "multiple", false, 0, "");
echo '<input type="hidden" name="CMS_VAR['.$iElementKat.']" value="'.$aSettings["k".$i]["ElementKat"].'">'."\n";
echo ' <br>'."\n";
// Aktualisierung
if ($aSettings["k".$i]["ElementType"] == "changefreq") {
echo ' <select name="CMS_VAR['.$iElementWert_aktu.']">'."\n";
foreach ($aktualisierung_auswahl AS $mein) {
echo ' <option value="'.$mein["wert"].'"';
if ($aSettings["k".$i]["ElementWert_aktu"] == $mein["wert"]) { echo ' selected'; }
echo '>'.$mein["beschr"].'</option>'."\n";
}
echo ' </select>'."\n";
}
// Priorität
if ($aSettings["k".$i]["ElementType"] == "priority") {
echo ' <select name="CMS_VAR['.$iElementWert_prio.']">'."\n";
foreach ($prioritaet_auswahl AS $mein) {
echo ' <option value="'.$mein["wert"].'"';
if ($aSettings["k".$i]["ElementWert_prio"] == $mein["wert"]) { echo ' selected'; }
echo '>'.$mein["beschr"].'</option>'."\n";
}
echo ' </select>'."\n";
}
} // if ($aSettings["k".$i]["ElementType"] != "0") {
echo ' </td>'."\n";
echo ' </tr>'."\n";
// Strich
echo ' <tr><td colspan="2"><hr></td></tr>'."\n";
} // End: for ($i = 0; $i < $aSettings["Elements"]; $i++) {
} // End: if ($aSettings["Elements"] > 0) {
echo '</table>'."\n";
?><?php
AUSGABE:
Code: Alles auswählen
<?php
/* --------------------------------------------------------------------------- */
/* */
/* XML Sitemaps - Ausgabe als XML - Version vom 11.08.2007 */
/* OUTPUT */
/* */
/* --------------------------------------------------------------------------- */
/* DEFINITION DER CMS-VARIABLEN ---------------------------------------------- */
$cmsPhpSkript = "CMS_VALUE[0]";
$letzteAenderung = "CMS_VALUE[1]";
$aktualisierung = "CMS_VALUE[2]";
$prioritaet = "CMS_VALUE[3]";
$anzAusnahmen = "CMS_VALUE[4]";
$dontshow = "CMS_VALUE[5]";
// Ausnahmen
$iDataStart = 30;
if ($anzAusnahmen > 0) {
for ($i = 0; $i < $anzAusnahmen; $i++) {
$iElementType = $iDataStart + ($i * 5);
$iElementKat = $iElementType + 1;
$iElementWert_aktu = $iElementType + 2;
$iElementWert_prio = $iElementType + 3;
$aSettings["k".$i] = array();
$aSettings["k".$i]["ElementType"] = "CMS_VALUE[$iElementType]"; // changefreq, priority
$aSettings["k".$i]["ElementKat"] = explode(",", "CMS_VALUE[$iElementKat]"); // Kategorien, die geändert werden sollen
$aSettings["k".$i]["ElementWert_aktu"] = "CMS_VALUE[$iElementWert_aktu]"; // Wert Aktualisierung
$aSettings["k".$i]["ElementWert_prio"] = "CMS_VALUE[$iElementWert_prio]"; // Wert Priorität
if ($aSettings["k".$i]["ElementType"] == "") {
$aSettings["k".$i]["ElementType"] == "0";
}
}
}
/* DEFAULT-WERTE ------------------------------------------------------------- */
if ($cmsPhpSkript == "") {
$cmsPhpSkript = "front_content.php";
}
if ($letzteAenderung == "") {
$letzteAenderung = "0";
}
if ($aktualisierung == "") {
$aktualisierung = "0";
}
if ($prioritaet == "") {
$prioritaet = "0";
}
if ($dontshow == "") {
$dontshow == "";
} else {
$dontshow = 'AND E . idart NOT IN ('.$dontshow.')';
}
/* FUNKTIONEN ---------------------------------------------------------------- */
function iso8601_date($time) {
$tzd = date('O',$time);
$tzd = substr(chunk_split($tzd, 3, ':'),0,6);
$date = date('Y-m-d\TH:i:s', $time) . $tzd;
return $date;
}
/* BEGINN AUSGABE ------------------------------------------------------------ */
$xml_titel = $cfgClient[$client]["path"]["htmlpath"].$cmsPhpSkript."?idcat=".$idcat;
$xml_link = $cfgClient[$client]["path"]["htmlpath"];
// Header ausgeben
header("Content-type: text/xml");
$xmlOutput = '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">'. "\n\n";
$query = "SELECT
E . idcat ,
E . idart ,
D . pagetitle ,
C . name ,
UNIX_TIMESTAMP( D . lastmodified ) AS lastmodified
FROM
".$cfg["tab"]["cat_tree"]." AS A ,
".$cfg["tab"]["cat_lang"]." AS C ,
".$cfg["tab"]["cat"]." AS B ,
".$cfg["tab"]["cat_art"]." AS E
INNER JOIN ".$cfg["tab"]["art_lang"]." AS D ON ( E . idart = D . idart )
WHERE
A . idcat = B . idcat
AND B . idcat = C . idcat
AND C . idcat = E . idcat
AND B . idclient = '".$client."'
AND C . idlang = '".$lang."'
AND D . idlang = '".$lang."'
AND C . visible = '1'
AND E . idcatart IS NOT NULL
AND C . public = '1'
AND D . online = '1'
".$dontshow."
ORDER BY
A . idtree, E . idart";
// execute query
$db->query($query);
// get id's of sub articles
while ($db->next_record()) {
$linkid = $db->f("idart");
$linkcat = $db->f("idcat");
$lastmodified = iso8601_date( $db->f("lastmodified") );
$link = $xml_link.$cmsPhpSkript."?idart=".$linkid;
// Bemerkung zum Seitentitel
$xmlOutput .= '<!-- '.$db->f("pagetitle").' -->'."\n";
$xmlOutput .= '<url>'."\n";
$xmlOutput .= ' <loc>'.htmlspecialchars($link).'</loc>'."\n";
// Letzte Änderung
if($letzteAenderung != "0") {
$xmlOutput .= ' <lastmod>'.$lastmodified.'</lastmod>'."\n";
}
// Aktualisierung
if($aktualisierung != "0") {
$aktualisierung_eintrag = $aktualisierung;
for ($i = 0; $i < $anzAusnahmen; $i++) {
if (in_array($linkcat, $aSettings["k".$i]["ElementKat"]) == TRUE) {
if ($aSettings["k".$i]["ElementType"] == "changefreq") {
$aktualisierung_eintrag = $aSettings["k".$i]["ElementWert_aktu"];
break;
}
}
}
$xmlOutput .= ' <changefreq>'.$aktualisierung_eintrag.'</changefreq>'."\n";
} // if($aktualisierung != "0") {
// Priorität
if($prioritaet != "0") {
$prioritaet_eintrag = $prioritaet;
for ($i = 0; $i < $anzAusnahmen; $i++) {
if (in_array($linkcat, $aSettings["k".$i]["ElementKat"]) == TRUE) {
if ($aSettings["k".$i]["ElementType"] == "priority") {
$prioritaet_eintrag = $aSettings["k".$i]["ElementWert_prio"];
break;
}
}
}
$xmlOutput .= ' <priority>'.$prioritaet_eintrag.'</priority>'."\n";
} // if($prioritaet != "0") {
$xmlOutput .= '</url>'."\n\n";
} // end while
$xmlOutput .= '</urlset>';
// Hier wird der ganze String in UTF8 kodiert und ausgegeben
echo utf8_encode($xmlOutput);
?>