Google Sitemap XML für 4.8x mit und ohne MR

micro2001
Beiträge: 76
Registriert: Sa 18. Nov 2006, 10:44
Kontaktdaten:

Beitrag von micro2001 » So 10. Aug 2008, 08:41

Vielen Dankf für das sehr gute Modul.
Bin durch Zufall darauf gestoßen.

Klasse!

Danke und Gruß,
Ralph

apicalart
Beiträge: 161
Registriert: Fr 18. Mär 2005, 13:09
Wohnort: Linnich ( NRW )
Kontaktdaten:

Beitrag von apicalart » Fr 29. Aug 2008, 23:27

Hallo torten boxer ( wie gemein ),

ich benutze dein sitemap modul.
Eigentlich ja ganz prima, nur scheint Google da etwas nicht zu mögen.

Ich benutze die version 4.8.7 plus mr 0.4.3 von xmurrix

Tja Google meldete mir 1 Minute nach dem Hochspielen 10 Fehler.


Code: Alles auswählen

URL nicht zulässig 
Diese URL ist für eine XML-Sitemap an dieser Position nicht zulässig. 
URL: http://www.marktplatzkarneval.de/startseite.html
Problem ermittelt am: 29.08.2008 
oder

Code: Alles auswählen

URL nicht zulässig 
Diese URL ist für eine XML-Sitemap an dieser Position nicht zulässig. 
URL: http://www.marktplatzkarneval.de/impressum/impressum.html
Problem ermittelt am: 29.08.2008 
Was mir aufgefallen ist, ich verwende die Links eigentlich so:

http://www.marktplatzkarneval.de/impressum/

und bei mir gibt es impressum.html überhaupt nicht. Durch Klick zeigt er mir zwar die Seite an, aber eingestellt bekomme ich die ncht.

Was tun ?!
Dat gijjt et doch nit wirklich, odder !

Grüsse aus dem Rheinland
http://www.eukoba.de

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » Sa 30. Aug 2008, 08:32

Hallo,
Was mir aufgefallen ist, ich verwende die Links eigentlich so:

http://www.marktplatzkarneval.de/impressum/

und bei mir gibt es impressum.html überhaupt nicht.
Die impressum.html gibt es eigentlich schon. es ist der Artikelname (idart) plus das .html. Ich denke das man das ganze Modul einmal wieder komplett überarbeiten müsste da sich ja an dem MR-Plugin auch einiges geändert hat.

Ich selbst habe das vorhandene GoogleXML-Sitemap Modul ja nur um ein paar Punkte erweitert. Diese Punkte werden zum Teil mit dem neuen MR-Plugin scheinbar nicht mehr gebraucht. Vorher musste ich da zum Beispiel den Mandantennamen und die Sprache aktivieren damit sie in der XML Ausgabe auch vorhanden waren. Mit dem neuen MR-Plugin musste ich das wieder deaktivieren da auf einmal diese beiden Sachen doppelt ausgegeben wurden. Scheinbar hat sich da auch etwas durch das MR-Plugin in der Datenbank verändert so dass der Mandantenname und die Sprache direkt auch dort, wenn aktiviert, hinterlegt wird.

Wie gesagt, ich denke das es einmal wieder komplett überarbeitet und auch an das neue MR-Plugin angepasst werden müsste, aber ich komme da leider in der nächsten Zeit aus Zeitmangel nicht dazu.

Gruß yodatortenboxer

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

Beitrag von derSteffen » Di 23. Sep 2008, 07:49

Hallo,

ich würde gerne noch bei der Abfrage nach den zu generierenden URLs (also alle Artikl in Online-Kategorie, die nicht geschützt sind und Online sind) um eine Abfrage erweitern. Allerdings kann ich das nicht.

Die Abfrage ist nämlich noch die, ob der Startartikel eine Weiterleitung hat!

Denn jedesmal bei Artikeln mit Contenido-Weiterleitungen sagt mir Google
Nicht aufgerufene URLs
Bei Tests von URLs auf Ihrer XML-Sitemap wurde festgestellt, dass einige URLs für Googlebot nicht zugänglich waren, da sie zu viele Weiterleitungen enthielten.
Wäre das machbar?

Vielen Dank schon mal!

MfG Steffen

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » Di 23. Sep 2008, 08:28

Wäre das machbar?
Technisch gesehen ja, Zeilich bei mir momentan leider nicht :cry:

gruß yodatortenboxer

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

Beitrag von derSteffen » Mi 24. Sep 2008, 08:11

Hallo yodatortenboxer,

aber erstmal vielen Dank für die Antwort! Ich kann ja auch schon mal schauen ob ich was herausfinde - ich denke aber eher nicht :-)

ich werde dann meine Fragen, Anregungen und Fehler (äh Ergebnisse) hier weiter posten.

Vielleicht bekomme ich ja noch ein paar Tipps von anderen. Du kannst ja dann, wenn es Deine Zeit erlaubt, auch ab und zu ein Blick raufwerfen.

MfG Steffen

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

Beitrag von derSteffen » Mi 24. Sep 2008, 09:57

Hallo,

ich habe es geschafft, aber vielleicht könntest du oder ein anderer Profi noch ein geschultes Auge drauf werfen (ich habe mit Kommentare gearbeitet)

Im Input hat man jetzt die Möglichkeit einen Haken zu setzen ob nur Artikel ohne Weiterleitungen ausgegeben werden sollen. Ist der Haken nicht gesetzt funktioniert das Modull wie gewohnt und generiert alle Artikel.

Hier der Input

Code: Alles auswählen

?><?php
/* --------------------------------------------------------------------------- */
/*                                                                             */
/*   XML Sitemaps - Ausgabe als XML - Version vom 21.02.2008                   */
/*   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 koennen Elemente in den DropDown-Felder geaendert                        */
/* oder ergaenzt 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&uuml;ndlich");
$aktualisierung_auswahl[3]["wert"]    = "daily";
$aktualisierung_auswahl[3]["beschr"]  = mi18n("T&auml;glich");
$aktualisierung_auswahl[4]["wert"]    = "weekly";
$aktualisierung_auswahl[4]["beschr"]  = mi18n("W&ouml;chentlich");
$aktualisierung_auswahl[5]["wert"]    = "monthly";
$aktualisierung_auswahl[5]["beschr"]  = mi18n("Monatlich");
$aktualisierung_auswahl[6]["wert"]    = "yearly";
$aktualisierung_auswahl[6]["beschr"]  = mi18n("J&auml;hrlich");
$aktualisierung_auswahl[7]["wert"]    = "never";
$aktualisierung_auswahl[7]["beschr"]  = mi18n("Niemals");

// Welche Prioritaet 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]";
$mruse            = "CMS_VALUE[6]";
$utf8use          = "CMS_VALUE[7]";
$CVersion         = "CMS_VALUE[8]";
$mrClientUse      = "CMS_VALUE[9]";
$mrClientUseName  = "CMS_VALUE[10]";
$mrLangUse        = "CMS_VALUE[11]";
$mrLangUseName    = "CMS_VALUE[12]";
// Weiterleitungsartikel
$weiterleitungen  = "CMS_VALUE[13]";

// 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 geaendert werden sollen
      $aSettings["k".$i]["ElementWert_aktu"] = "CMS_VALUE[$iElementWert_aktu]"; // Wert Aktualisierung
      $aSettings["k".$i]["ElementWert_prio"] = "CMS_VALUE[$iElementWert_prio]"; // Wert Prioritaet

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

if ($mruse == "") {
  $mruseCheck = "";
}else{
  $mruseCheck = " checked=\"checked\"";
}

// Weiterleitungsartikel
if ($weiterleitungen == "") {
  $weiterleitungenCheck = "";
}else{
  $weiterleitungenCheck = " checked=\"checked\"";
}

if ($utf8use == "") {
  $utf8useCheck = "";
}else{
  $utf8useCheck = " checked=\"checked\"";
}

if($CVersion=="46x"){$CV46="checked";$CV48="";}else{$CV46="";$CV48="checked";}

if ($mrClientUse == "") {
  $mrClientUseCheck = "";
}else{
  $mrClientUseCheck = " checked=\"checked\"";
}

if ($mrClientUseName == "") {
  $mrClientUseNameCheck = "";
}else{
  $mrClientUseNameCheck = " checked=\"checked\"";
}

if ($mrLangUse == "") {
  $mrLangUseCheck = "";
}else{
  $mrLangUseCheck = " checked=\"checked\"";
}

if ($mrLangUseName == "") {
  $mrLangUseNameCheck = "";
}else{
  $mrLangUseNameCheck = " checked=\"checked\"";
}

/* 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 Aenderung 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 Prioritaet soll den Seiten zugeordnet werden?
echo '  <tr>'."\n";
echo '    <td>'.mi18n("Priorit&auml;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="20">'."\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 auswaehlen:
   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&auml;hlen...").'</option>'."\n";     
     echo '        <option value="changefreq"';
                   if ($aSettings["k".$i]["ElementType"] == "changefreq") { echo ' selected'; }
                   echo '>'.mi18n("&Auml;nderungsh&auml;ufigkeit").'</option>'."\n";
     echo '        <option value="priority"';
                   if ($aSettings["k".$i]["ElementType"] == "priority") { echo ' selected'; }
                   echo '>'.mi18n("Priorit&auml;t").'</option>'."\n";     
   echo '      </select>'."\n";
   echo '      &nbsp;'.$sSubmitLink.'&nbsp;'."\n";


   if ($aSettings["k".$i]["ElementType"] != "0") {
     echo '      <br><br>'."\n";   
   
     // Kategorie auswaehlen
     echo '      '.mi18n("Kategorien ausw&auml;hlen:").'<br>'."\n";
     // edit by funomat TG
     echo fncBuildCategorySelect("c".$i."cbxAddCatSel", $aSettings["k".$i]["ElementKat"], 0, "fncUpdateSel('c".$i."cbxAddCatSel','"."CMS_VAR[$iElementKat]"."');", "6", "multiple", false, 0, "");
     # echo fncBuildCategorySelect("c".$i."cbxAddCatSel", $aSettings["k".$i]["ElementKat"], 0, "ArtAdv_fncUpdateSel('c".$i."cbxAddCatSel'.'"."CMS_VAR[$iElementKat]"."');", "6", "multiple", false, 0, "");
     // end edit
     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";
     }
   
     // Prioritaet
     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) {

// Sollen nur Artikel ohne Weiterleitung verwendet werden?
echo '  <tr>'."\n";
echo '    <td>'.mi18n("Nur Artikel ohne Weiterleitungen verwenden:").'</td>'."\n";
echo '    <td>'."\n";
echo '      <input type="checkbox" name="CMS_VAR[13]" value="1"'.$weiterleitungenCheck.'>'."\n";
echo '    </td>'."\n";
echo '  </tr>'."\n";

// Soll ModRewrite verwendet werden?
echo '  <tr>'."\n";
echo '    <td>'.mi18n("ModRewrite verwenden:").'</td>'."\n";
echo '    <td>'."\n";
echo '      <input type="checkbox" name="CMS_VAR[6]" value="true"'.$mruseCheck.'>'."\n";
echo '    </td>'."\n";
echo '  </tr>'."\n";

// Soll Mandant bei ModRewrite verwendet werden?
echo '  <tr>'."\n";
echo '    <td>'.mi18n("Mandant bei ModRewrite verwenden:").'</td>'."\n";
echo '    <td>'."\n";
echo '      <input type="checkbox" name="CMS_VAR[9]" value="true"'.$mrClientUseCheck.'>'."\n";
echo '    </td>'."\n";
echo '  </tr>'."\n";

// Soll Name des Mandanten bei ModRewrite verwendet werden?
echo '  <tr>'."\n";
echo '    <td>'.mi18n("Mandantenname bei ModRewrite verwenden:").'</td>'."\n";
echo '    <td>'."\n";
echo '      <input type="checkbox" name="CMS_VAR[10]" value="true"'.$mrClientUseNameCheck.'>'."\n";
echo '      '.mi18n("(Mandant bei Modrewrite verwenden muss aktiviert sein!)")."\n";
echo '    </td>'."\n";
echo '  </tr>'."\n";

// Soll Sprache bei ModRewrite verwendet werden?
echo '  <tr>'."\n";
echo '    <td>'.mi18n("Sprache bei ModRewrite verwenden:").'</td>'."\n";
echo '    <td>'."\n";
echo '      <input type="checkbox" name="CMS_VAR[11]" value="true"'.$mrLangUseCheck.'>'."\n";
echo '    </td>'."\n";
echo '  </tr>'."\n";

// Soll Name der Sprache bei ModRewrite verwendet werden?
echo '  <tr>'."\n";
echo '    <td>'.mi18n("Sprachename bei ModRewrite verwenden:").'</td>'."\n";
echo '    <td>'."\n";
echo '      <input type="checkbox" name="CMS_VAR[12]" value="true"'.$mrLangUseNameCheck.'>'."\n";
echo '      '.mi18n("(Sprache bei Modrewrite verwenden muss aktiviert sein!)")."\n";
echo '    </td>'."\n";
echo '  </tr>'."\n";

// Soll UTF-8-Codierung verwendet werden?
echo '  <tr>'."\n";
echo '    <td>'.mi18n("UTF-8-Codierung verwenden:").'</td>'."\n";
echo '    <td>'."\n";
echo '      <input type="checkbox" name="CMS_VAR[7]" value="false"'.$utf8useCheck.'>'."\n";
echo '      '.mi18n("(Sollte der Mandant schon mit UTF-8 Codiert sein ben&ouml;tigt man keine UTF-8-Codierung!)")."\n";
echo '    </td>'."\n";
echo '  </tr>'."\n";

// Contenido Version 4.6.x oder 4.8x
echo '  <tr>'."\n";
echo '    <td>'.mi18n("Contenido MR-Version:").'</td>'."\n";
echo '    <td>'."\n";
echo '      <input type="radio" name="CMS_VAR[8]" value="46x" '.$CV46.' />&nbsp;'.mi18n("ab V4.6.15(stese)").'&nbsp;'."\n";
echo '      <input type="radio" name="CMS_VAR[8]" value="48x" '.$CV48.' />&nbsp;'.mi18n("ab V4.8.x(plugin)").'&nbsp;'."\n";
echo '    </td>'."\n";
echo '  </tr>'."\n";

echo '</table>'."\n";
?><?php
Hier der Output

Code: Alles auswählen

<?php
/* --------------------------------------------------------------------------- */
/*                                                                             */
/*   XML Sitemaps - Ausgabe als XML - Version vom 21.02.2008                   */
/*   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]";
$modRewrite       = "CMS_VALUE[6]";
$utf8encode       = "CMS_VALUE[7]";
$CVersion         = "CMS_VALUE[8]";
$mrClientUse      = "CMS_VALUE[9]";
$mrClientUseName  = "CMS_VALUE[10]";
$mrLangUse        = "CMS_VALUE[11]";
$mrLangUseName    = "CMS_VALUE[12]";
$weiterleitungen  = "CMS_VALUE[13]";

// 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&auml;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&auml;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";
}

// Weiterleitungsartikel
if ($weiterleitungen == "") {
  $weiterleitungen == "";
} else {   
   $weiterleitungen = 'AND D . redirect = 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.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'. "\n\n";


$query="SELECT * FROM `".$cfg["tab"]["clients"]."` WHERE idclient =".$client;
$db->query($query);
$db->next_record();
$MrClientName = str_replace(" ","+",$db->f(name));

$sql="SELECT * FROM `".$cfg["tab"]["lang"]."`, `".$cfg["tab"]["clients_lang"]."` WHERE `".$cfg["tab"]["lang"]."`.idlang = `".$cfg["tab"]["clients_lang"]."`.idlang AND idclient = ".$client." AND `".$cfg["tab"]["lang"]."`.idlang =".$lang;
$db->query($sql);
$db->next_record();
$MrLanguageName = $db->f(name);


$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 D . online = '1'
            ".$weiterleitungen."
            ".$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 ohne ModRewrite
  if (!$modRewrite){
    $link = $xml_link.$cmsPhpSkript."?idart=".$linkid;
  }else{
     if($CVersion=="46x"){
          // link mit ModRewrite 4.6.x
          // cInclude("classes", "class.modrewrite.php");
      }else{
          // link mit ModRewrite 4.8.x
          cInclude("plugins", "mod_rewrite/classes/class.modrewrite.php");
      }
    $link = ModRewrite::build_new_url("?idart=$linkid");
    if(!$mrClientUse){
        $mrClientLink="";
    }else{
        if(!$mrClientUseName){
            $mrClientLink="/".$client; 
        }else{
            $mrClientLink="/".$MrClientName;
        }
    }
    if(!$mrLangUse){
        $mrClientLangLink="";
    }else{
        if(!$mrLangUseName){
            $mrClientLangLink="/".$lang;   
        }else{
            $mrClientLangLink="/".$MrLanguageName;
        }
    }   
    $link = 'http://'.$_SERVER['HTTP_HOST'].$mrClientLink.$mrClientLangLink.$link;
  }
 
  // Bemerkung zum Seitentitel
  $xmlOutput .= '<!-- '.$db->f("pagetitle").' -->'."\n";

  $xmlOutput .= '<url>'."\n";
  $xmlOutput .= ' <loc>'.htmlspecialchars($link).'</loc>'."\n";

  // Letzte Aenderung
  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") {
 
 
  // Prioritaet
  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
if($utf8encode)
  echo utf8_encode($xmlOutput);
else
  echo $xmlOutput;
?>
MfG Steffen

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

Beitrag von matt.loker » Di 28. Okt 2008, 20:31

Hallo zusammen,
kann man in die Ausgabe der Sitemap dieses Model integrieren? Habs versucht aber bin immer wieder gescheitert!

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: Print HTML title tag content
*
* @version 1.0.0
* @author Rudi Bieller
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2008-04-07
* }}
*
* $Id$
*/

cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation_Breadcrumb.class.php');
try {
    $oBread = new Contenido_FrontendNavigation_Breadcrumb($db, $cfg, $client, $lang, $cfgClient);
    $oBreadCats = $oBread->get($idcat, 1);
    $sBread = 'Startseite | ';
    $aBread = array();
    foreach ($oBreadCats as $oConCat) {
        $aBread[] = $oConCat->getCategoryLanguage()->getName();
    }
    $sBread .= implode(' | ', $aBread);
    $oArticle = new Article($idart, $client, $lang);
    $sHeadline = strip_tags($oArticle->getContent('CMS_HTMLHEAD', 1));

    echo $sBread;
} catch (InvalidArgumentException $eI) {
    echo 'Startseite';
} catch (Exception $e) {
    echo 'Startseite';
}
?>
Dieses Modul füllt ja in einer Seite den Titel-tag aus. Diese Funktion in dieser Sitemap wär einfach genial. Bei einer Seite mit vielen Artikeln würde es dem Benutzer das einzelne bennen der Artikel ersparen.

Grüße
matt

Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Beitrag von Freddy » Do 22. Jan 2009, 15:53

Hallo, nach dem Update auf 4.8.10 + MR5.2 bekomme ich folgende Fehlermeldung wenn ich im Editorbereich öffne.

Code: Alles auswählen

XML-Verarbeitungsfehler: "Junk" nach Dokument-Element
Adresse: http://www.....de/contenido/external/backendedit/front_content.php?changeview=edit&client=1&lang=1&action=con_editart&idartlang=14&idart=14&idcat=1&tmpchangelang=&contenido=6194b6f3e3c9ffb1c1719c28ea94e9ed
Zeile Nr. 2, Spalte 1:<b>Fatal error</b>:  Call to undefined method ModRewrite::build_new_url() in <b>/...../contenido/includes/include.con_editcontent.php(630) : eval()'d code</b> on line <b>154</b><br />
^
Unter Contenido-Fehlerlog kommt folgendes:

Code: Alles auswählen

PHP Fatal error:  Call to undefined method ModRewrite::build_new_url() in /...../contenido/includes/include.con_editcontent.php(630) : eval()'d code on line 154

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Beitrag von xmurrix » Mo 26. Jan 2009, 18:48

Hallo Freddy,

in früheren Versionen des AMR-Plugins gab es die Funktion ModRewrite::build_new_url(), die die URL generiert hat. Seit dem es in Contenido nun möglich ist, die URLs über eine einheitliche Schnittstelle generieren zu lassen, ist diese raus geflogen.

Du kannst im im Modulouput die Zeile

Code: Alles auswählen

$link = ModRewrite::build_new_url("?idart=$linkid"); 
gegen

Code: Alles auswählen

Contenido_Url::getInstance()->build(array('idart' => $linkid));
// oder mit der Sprache
Contenido_Url::getInstance()->build(array('idart' => $linkid, 'lang' => $lang));
ersetzen, dann sollte es gehen.

Gruß
xmurrix

Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Beitrag von Freddy » Mo 26. Jan 2009, 21:11

xmurrix hat geschrieben: ersetzen, dann sollte es gehen.

Gruß
xmurrix
Hallo xmurrix,
vielen Dank zuerst das Du Dich meiner angenommen hast. Leider funktioniert es noch nicht ganz. Jetzt kommt zwar keine Fehlermeldung mehr aber in der Sitemap stimmt die Url nicht. Wird mehrfach wieder holt:

Code: Alles auswählen

<!--
 Die private Homepage von ... 
-->
−
<url>
<loc>http://www.do..da.de</loc>
</url>
<!-- Do..da -->
−
<url>
<loc>http://www.do..da.dehttp://www.do..da.de</loc>
</url>
−
<!--
 Die private Homepage von ...  
-->
−
<url>
−
<loc>
http://www.do..da.dehttp://www.do..da.dehttp://www.do..da.de
</loc>
</url>
−
<!--
 Die private Homepage von ...  
-->
−
<url>
−
<loc>
http://www.do..da.dehttp://www.do..da.dehttp://www.do..da.dehttp://www.do..da.de
</loc>
</url>
Über einen weiteren Tipp wäre ich sehr dankbar.

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Neue Version der XML Sitemaps für Contenido >= 4.8.9

Beitrag von xmurrix » Mo 26. Jan 2009, 23:51

Hallo zusammen,

da sich in Contenido ab 4.8.9 die Vorgehensweise zur Erstellung der URLs geändert hat, war es an der Zeit, das Modul an die neuen Gegebenheiten anzupassen.

Folgende Änderungen gibt es:
- Angepasst an Contenido >= 4.8.9
- Herausgeflogen ist die Konfiguration des Moduls für frühere MR-Lösungen.
- Auch gibt es keine Auswahlmöglichkeit des Frontendscriptes (front_content.php oder index.php). Der ab 4.8.9 verwendeter Url-Builder kommt nur mit front_content.php klar.

Hinweise:
- Bei einer standard Contenido-Installation werden URLs wie front_content.php?idart=123&lang=1 generiert
- Ist ein anderer Url-Builder konfiguriert, können die URLs einen anderen Aufbau haben.
Beispiele:
AMR-Plugin: /kategorie/artikel.html
UrlBuilder CustomPath: /path/path/path/rocknroll,goodies,1,2,3.4fb
- Der Modulcode kann an ein paar Stellen nicht ganz optimal sein, ich habe mich bei den Änderungen nur darauf konzentriert, das Modul zum Laufen zu bekommen.

Download:
- Contenido_module_XML_Sitemaps_20090126.zip

Grüße
xmurrix

Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Re: Neue Version der XML Sitemaps für Contenido >= 4.8.9

Beitrag von Freddy » Di 27. Jan 2009, 01:53

Mh, bei mir funktioniert es komischerweise noch immer nicht obwohl ich deinen Code benutzt habe. Jetzt sieht die Sitemap so aus: −

Code: Alles auswählen

<url>
<loc>front_content.php?idart=1&lang=1</loc>
</url>
<!-- Do..da -->
−
<url>
<loc>front_content.php?idart=15&lang=1</loc>
</url>
−
<!--
 Do..da - Die private Homepage ...
-->
−
<url>
<loc>front_content.php?idart=2&lang=1</loc>
</url>

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Neue Version der XML Sitemaps für Contenido >= 4.8.9

Beitrag von xmurrix » Di 27. Jan 2009, 10:06

Morgen,
Freddy hat geschrieben:Mh, bei mir funktioniert es komischerweise noch immer nicht obwohl ich deinen Code benutzt habe. Jetzt sieht die Sitemap so aus:

Code: Alles auswählen

...
<url>
<loc>front_content.php?idart=1&lang=1</loc>
</url>
...
ok, gebe zu, das ich das nicht unter allen Kombinationen getestet habe. Welche Version von Contenido verwendest du?

Gruß
xmurrix

Polardrache
Beiträge: 55
Registriert: Fr 22. Apr 2005, 15:41
Wohnort: Berlin
Kontaktdaten:

Beitrag von Polardrache » Di 27. Jan 2009, 10:30

Hi xmurrix,

ich hab das gleiche Problem. Wie Du weißt läuft bei uns 4.8.10 mit dem 0.5.2-ModRewrite-Plugin. Im Output-Code des Moduls steht aber auch, dass der Link ohne ModRewrite ausgegeben wird. Vielleicht fehlt da noch die Umwandlung? Ich hab da ja nicht wirklich einen Plan ... :oops:

Code: Alles auswählen


...

$oUrl = Contenido_Url::getInstance();

// 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 ohne ModRewrite
  $link = $oUrl->build(array('idart' => $linkid, 'lang' => $lang), true);
  
  // Bemerkung zum Seitentitel
  // $xmlOutput .= '<!-- '.$db->f("pagetitle").' -->'."\n";
  $xmlOutput .= '<url>'."\n";
  $xmlOutput .= ' <loc>'.htmlspecialchars($link).'</loc>'."\n";

...

Unterstützt das Contenido-Wiki-Projekt: www.contenido-wiki.org!

ikusei - Wir lassen Ihre Projekte wachsen!

Gesperrt