Google Sitemap XML Modul für 4.6.4

Uwe
Beiträge: 258
Registriert: Mo 30. Jun 2003, 16:05
Wohnort: Konstanz
Kontaktdaten:

Sorry

Beitrag von Uwe » Mo 28. Aug 2006, 12:19

Sorry,

da gibt es ja doch was :oops:

Code: Alles auswählen

$query = "SELECT art_lang.idart, UNIX_TIMESTAMP(lastmodified) as lastmod FROM ".$cfg["tab"]["art_lang"]." art_lang,".$cfg["tab"]["art"]." art where art_lang.online='1' and art_lang.idart <> '".$idart."' and art.idart=art_lang.idart and idclient=$client"; 
Vielen Dank, manchmal muss man es wohl erst schreiben, bevor es einem richtig klar wird.

Viele Grüsse, Uwe

smart

Beitrag von smart » Fr 1. Sep 2006, 18:08

Liebe Leute,
habe soeben folgende Fehlermeldung bekommen, obwohl alles ordnungsgemäß installiert ist... Meine Sitemap könnt ihr hier einsehen.
Fehler

Nicht unterstütztes Dateiformat
Anscheinend hat Ihre Sitemap ein Format, das nicht unterstützt wird. Stellen Sie sicher, dass Ihre Sitemap unseren Sitemap-Richtlinien entspricht, und reichen Sie sie erneut ein. [?]

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Fr 1. Sep 2006, 19:33

smart hat geschrieben:Liebe Leute,
habe soeben folgende Fehlermeldung bekommen, obwohl alles ordnungsgemäß installiert ist... Meine Sitemap könnt ihr hier einsehen.
Das Problem ist wahrscheinlich die Frame-Weiterleitung. Die Sitemap selbst wird doch unter

http://www.germanews.de/tiamoitalia/con ... catart=180

erzeugt. Google sieht allerdings die HTML-Seite mit den Frames.

smart

Beitrag von smart » Fr 1. Sep 2006, 23:55

Ärgerlich! Die Weiterleitung ist serverseitig eingestellt - es scheint, als würden die trotzdem einfach einen Frame davorschalten. Danke, 1und1... :-(

acid
Beiträge: 20
Registriert: Mo 28. Aug 2006, 11:31
Kontaktdaten:

Beitrag von acid » Mi 6. Sep 2006, 11:02

Hallo und erstmal ein großes Lob: Die Sitemap funktioniert FAST perfekt. Allerdings habe ich ein kleines Problem:

Ich habe die Sitemap so umgeschrieben, dass sie anstatt den Artikeln die Aliase benutzt. So weit so gut, geht auch alles wunderbar. Allerdings ist mir aufgefallen, dass für jede Änderung einer Seite ein neuer Eintrag in der Sitemap erzeugt wird (gut zu sehen unter: http://cityflyer.info/front_content.php?idart=8)
Hier mein (zugegebenermaßen stümperhaft) geänderter Code im Output-Modul:

Code: Alles auswählen

<?php

/**
* Google Sitemaps Ausgabe als XML - 05.06.2005
*
* OUTPUT
*
* Author Luxmedia Österreich
* Copyright www.luxmedia.at
*
* 2005-06-09
* - Nur Artikel die Online sind
* - lastmod, changefreq, Skriptname aus INPUT
* - lastmod Datumsformat iso8601
*
* Angepasst durch derSteffen
* 2005-12-21
* - Neu: priority
* - Neuer Header (<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" usw...)
*/

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;
    }


{

/* $xml_titel = "CMS_VALUE[1]";
$xml_link = "CMS_VALUE[2]"; */
$xml_titel = $cfgClient[$client]["path"]["htmlpath"]."CMS_VALUE[0]?idcat=".$idcat;
//$xml_link = $cfgClient[$client]["path"]["htmlpath"];
$xml_link = "http://www.cityflyer.info/" . $htmlpath;


// Header ausgeben
header("Content-type: text/xml");
print '<?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";


// select all articles in category widthout start article
//$query = "SELECT idart, UNIX_TIMESTAMP(lastmodified) as lastmod FROM ".$cfg["tab"]["art_lang"]." where online='1'";
$query = "
					SELECT
						A.idart,
						UNIX_TIMESTAMP(A.lastmodified) as lastmod,
						B.urlname
					FROM
						".$cfg["tab"]["art_lang"]." AS A,
						".$cfg["tab"]["cat_lang"]." AS B
					WHERE
						A.online='1'						
";

// execute query
$db->query($query);


// get id's of sub articles
while ($db->next_record()) {
    //$linkid = $db->f("idart");
		$linkid = $db->f("urlname");
    $lastmod = iso8601_date( $db->f("lastmod") );
    // link
    $link = $xml_link."CMS_VALUE[0]?path=$linkid";
    print "<url>\n";
    print " <loc>".htmlspecialchars($link)."</loc>\n";
    if("CMS_VALUE[1]") {
	    print " <lastmod>". $lastmod."</lastmod>\n"; }
    if("CMS_VALUE[2]"){
	    print " <changefreq>CMS_VALUE[2]</changefreq>\n"; }
    if("CMS_VALUE[3]") {
	    print " <priority>CMS_VALUE[3]</priority>\n"; }
    print "</url>\n\n";
    } // end while

print '</urlset>';

}
?> 
Woran könnte der Fehler jetzt liegen? Normalerweise sollte es doch so sein, dass lediglich der Wert <changefreq> geändert wird, wenn ein Beitrag sich ändert oder?

Für eure Antworten vielen Dank im voraus

PS:
Seid nicht so hart zu mir, ich lerne noch ;)

MyAccount
Beiträge: 383
Registriert: Do 17. Jul 2003, 10:21

Beitrag von MyAccount » Mi 6. Sep 2006, 11:14

Versuch mal die hier. Hab die ein klitze-klein-wenig überarbeitet: :-)

http://contenido.org/forum/viewtopic.ph ... 4&start=15

Schwarze Wolke
Beiträge: 26
Registriert: Di 15. Aug 2006, 14:11
Kontaktdaten:

Beitrag von Schwarze Wolke » Mi 24. Jan 2007, 21:24

Also ich benutze 4.6.5 und habe das Modul seit ein Paar Wochen schon eingestellt. Nur hat mir das leider in Bezug auf die Findbarkeit meiner Website leider wenig genutzt. >Die Sitemap ist bei google registriert. Die Seite wird auch nur über die URL-Adresse gefunden. Jedoch nicht über Key-words (eingestellt im header oder auch bei den meta-tag angaben eines Artikels.

Ganz blöde Frage: Müssen in der Sitemap die key-words irgendwie auftauchen? Das tun sie nämlich nicht.
Muss ich sonst irgendetwas beachten?
Bin mittlerweile schon etwas hilflos. Ich hoffe mir kann jemand helfen.
Danke.

Ratze
Beiträge: 3
Registriert: Sa 11. Aug 2007, 22:21
Kontaktdaten:

Neue Version

Beitrag von Ratze » Sa 11. Aug 2007, 22:45

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&uuml;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 &uuml;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("&Auml;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("&Auml;nderungsh&auml;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">&nbsp'.$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 '      &nbsp;'.$sSubmitLink.'&nbsp;'."\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);
?> 

ps
Beiträge: 41
Registriert: So 3. Okt 2004, 20:23
Kontaktdaten:

Google zeigt die Sitemap bei den Suchresultaten an

Beitrag von ps » Do 30. Aug 2007, 14:03

Hallo zusammen,

Ich verwenden die Contenido 4.6.8 MR Version und das Google Sitemap Modul (Originalfassung, ganz am Anfang des Threads plus den MR Zusatz). Es funktioniert wunderbar, Google hat die Sitemap auch akzeptiert nur wird diese nun auch bei den Suchresultaten angezeigt. Das Problem liegt wohl daran, dass ich bei Mod/Rewrite die .html Endung hinzufügen lasse, und dass dies bei der Sitemap auch gemacht wird. Anstatt der .xml Endung wird eine .html Endung hingeschrieben und Google sieht dann die Sitemap auch als Seite an.
Gibt es irgend eine Möglichkeit, die Endung bei der Sitemap von .html auf .xml umzustellen, die Mod/Rewrite Funktion aber beizubehalten?

Vielen Dank für eure Tipps und Tricks.

matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

Beitrag von matt.loker » So 2. Sep 2007, 00:33

das gleiche Problem habe ich auch.
ich für meinen Teil bäuchte es mit der Endung xml um es dann mit der Robot.txt vor der Google-listung zu schützen. Ich wär also auch sehr dankbar für Tipps

matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

Beitrag von matt.loker » Do 6. Sep 2007, 14:23

Hat keiner n Tipp wie man dieses Problem lösen kann?

Grüße
Matt

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Di 18. Sep 2007, 10:09

matt.loker hat geschrieben:Hat keiner n Tipp wie man dieses Problem lösen kann?

Grüße
Matt
Ich habe das Problem wie folgt gelöst:

Ich habe manuell eine Sitemapindex erstellt:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
  < urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
   < url>
    < loc>http://www.meine-domain.de/cms/front_content.php?idart=36</loc>
   </url>  
</urlset>
Das als sitemap.xml in der obersten Ebene meiner Domain gespeichert.

Anmerkung:

< lastmod>2005-01-01</lastmod>
< changefreq>monthly</changefreq>
< priority>0.8</priority>


habe ich aus dem urlset - Gerüst entfernt.

Und somit verweißt eine valide Sitamp.xml auf meine generierte Google-Sitemap. Es wurde auch alles gecrawlt :-)

MfG

matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

Beitrag von matt.loker » Di 18. Sep 2007, 18:13

also echt auf diesem Trick hätte ich auch selbst kommen können. Tja da stand ich wohl mächtig auf dem schlauch :)

danke !

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Di 13. Nov 2007, 09:53

Mhm. ich wollte gerade mal das Modul von Ratze testen aber leider leuchtet die rote Lampe im Modulinput bei mir. Kann das jemand bestätigen?

romaro
Beiträge: 38
Registriert: Mo 21. Nov 2005, 14:33
Wohnort: Erlangen
Kontaktdaten:

Fehlerbehebung

Beitrag von romaro » Do 20. Dez 2007, 08:38

Ja, (imho) ist da ein kleiner Fehler drinnen.

Code: Alles auswählen

echo fncBuildCategorySelect("c".$i."cbxAddCatSel", $aSettings["k".$i]["ElementKat"], 0,
 "ArtAdv_fncUpdateSel('c".$i."cbxAddCatSel'.'"."CMS_VAR[$iElementKat]"."');"
, "6", "multiple", false, 0, "");
Im Input-Modul nach "// Kategorie auswählen " suchen. Dann die Funktion ersetzen. Irgendwie sind da zu viele Anführungszeichen.

Hoffe es hilft.

Gesperrt