Google Sitemap XML Modul für 4.6.4

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

Google Sitemap XML Modul für 4.6.4

Beitrag von derSteffen » Di 20. Dez 2005, 22:13

Zu diesem Modul und zu meiner Person! Ich habe keine Ahnung von Programmieren und bin letztendlich durch Behaarlichkeit und vielen Probieren zu dieser Lösung gekommen.

Installation wie hier beschrieben http://www.contenido.org/forum/viewtopic.php?t=8503

Originalmodul von Luxmedia Österreich überarbeitet von micattack@gmx.net und nun von mir!

Änderungen:
Neuer Header (<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" usw...)
Neu: Man kann jetzt auch die priority angeben
Bug (Speichern der Werte der Selektfelder cms php skript [durch HerrB] Änderungsdatum und Änderungshäufigkeit) behoben

Folgendes Problem sollte noch behoben werden, mit diesen kann man jedoch lernen:
Information: In den Selektfeldern kann die gewünschte Option gewählt werden. Nachdem speichern springen die Werte der Selektfelder (Änderungsdatum, Änderungshäufigkeit und Priorität) auf Ihre Ausgangswerte (Nicht setzen) zurück, die Werte wurden jedoch gespeichert. Das bedeutet, werden Änderungen in einem Selektfeld vorgenommen, müssen in den restlichen Selektfeldern ebenfalls die gewünschten Werte wieder zugewiessen werden. Regel: Die Selektfelder Änderungsdatum, Änderungshäufigkeit und Priorität zeigen nicht die aktuell gespeicherten Werte. Bei jedem Speichern werden die ausgewählten Werte genommen und die aktuell verwendeten Werte überspeichert.
Input

Code: Alles auswählen

/** 
* Google Sitemaps Ausgabe als XML - 05.06.2005 
* 
* INPUT 
* 
* Author Luxmedia Österreich 
* Copyright www.luxmedia.at 
* 
* Angepasst durch micattack@gmx.net 
*  2005-06-09 
*  - Abfrage des Skriptnames 
*  - Einbindung von lastmod je nach Wunsch 
*  - changefreq 
*
* Angepasst durch derSteffen 
*  2005-12-21 
*  - Bugfix (Speichern der Werte der Selektfelder cms php skript [durch HerrB] Änderungsdatum und Änderungshäufigkeit)
*  - Neues Feld: priority 
*/ 

echo "Information: In den Selektfeldern kann die gew&uuml;nschte Option gew&auml;hlt werden. 
Nachdem speichern springen die Werte der Selektfelder (&Auml;nderungsdatum, &Auml;nderungsh&auml;ufigkeit und Priorit&auml;t)
auf Ihre Ausgangswerte (Nicht setzen) zur&uuml;ck, die Werte wurden jedoch gespeichert. 
Das bedeutet, werden &Auml;nderungen in einem Selektfeld vorgenommen, m&uuml;ssen in den restlichen Selektfeldern ebenfalls 
die gew&uuml;nschten Werte wieder zugewiessen werden. Regel: Die Selektfelder &Auml;nderungsdatum, &Auml;nderungsh&auml;ufigkeit und Priorit&auml;t
zeigen nicht die aktuell gespeicherten Werte. Bei jedem Speichern werden die ausgew&auml;hlten Werte genommen und die aktuell verwendeten Werte
&uuml;berspeichert. Mehr Info &uuml;ber Google Sitemaps <a href=\"https://www.google.com/webmasters/sitemaps/docs/de/protocol.html\">hier</a>\n"; 

// selected category 
$selected = "CMS_VALUE[0]"; 
echo  "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n 
        <tr> 
          <td width=\"200\">cms php skript:</td><td>"; 
			echo "<select name=\"CMS_VAR[0]\">"; 
			if ($selected == "" || $selected == "front_content.php") { 
			echo "<option value=\"front_content.php\" selected>front_content.php</option>"; 
			echo "<option value=\"index.php\">index.php</option>"; 
			} 
			else { 
			echo "<option value=\"front_content.php\">front_content.php</option>"; 
			echo "<option value=\"index.php\" selected>index.php</option>"; 
			}
echo "</td></tr>            
        </table>";
				
$selected = "CMS_VALUE[1]"; 
echo  "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n 
        <tr> 
          <td width=\"200\">Letztes &Auml;nderungsdatum verwenden:</td><td>"; 
		  	echo "<select name=\"CMS_VAR[1]\">"; 
	        if ($selected == "" || $selected == "Nicht setzen") {
			echo "<option value=\"0\">Nicht setzen</option>"; 
			echo "<option value=\". $lastmod.\" selected>Ja</option>";
			} 
			else { 
			echo "<option value=\"0\" selected>Nicht setzen</option>"; 
   			echo "<option value=\". $lastmod.\">Ja</option>"; 
			}
echo "</td></tr>            
        </table>";
		
$selected = "CMS_VALUE[2]";
echo  "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n 
        <tr> 
          <td width=\"200\">&Auml;nderungsh&auml;ufigkeit aller Seiten:</td><td>";
		  	echo "<select name=\"CMS_VAR[2]\">"; 
			if ($selected == "" || $selected == "Nicht setzten") { 
			echo "<option value=\"always\" selected>Immer</option>"; 
			echo "<option value=\"hourly\" selected>St&uuml;ndlich</option>"; 
			echo "<option value=\"daily\" selected>T&auml;glich</option>"; 
			echo "<option value=\"weekly\" selected>W&ouml;chentlich</option>"; 
			echo "<option value=\"monthly\" selected>Monatlich</option>"; 
			echo "<option value=\"yearly\" selected>J&auml;hrlich</option>"; 
			echo "<option value=\"never\" selected>Niemals</option>"; 
			echo "<option value=\"0\" selected>Nicht setzten</option>"; 
			} 
			else { 
			echo "<option value=\"always\" selected>Immer</option>"; 
			echo "<option value=\"hourly\" selected>St&uuml;ndlich</option>"; 
			echo "<option value=\"daily\" selected>T&auml;glich</option>"; 
			echo "<option value=\"weekly\" selected>W&ouml;chentlich</option>"; 
			echo "<option value=\"monthly\" selected>Monatlich</option>"; 
			echo "<option value=\"yearly\" selected>J&auml;hrlich</option>"; 
			echo "<option value=\"never\" selected>Niemals</option>"; 
			echo "<option value=\"0\" selected>Nicht setzten</option>";
			} 
echo "</td></tr>            
        </table>";
		
$selected = "CMS_VALUE[3]";
echo  "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n 
        <tr> 
          <td width=\"200\">Priorität aller Seiten:</td><td>";
		  	echo "<select name=\"CMS_VAR[3]\">"; 
			if ($selected == "" || $selected == "Nicht setzten") { 
			echo "<option value=\"0.0\" selected>0.0</option>"; 
			echo "<option value=\"0.1\" selected>0.1</option>"; 
			echo "<option value=\"0.2\" selected>0.2</option>"; 
			echo "<option value=\"0.3\" selected>0.3</option>"; 
			echo "<option value=\"0.4\" selected>0.4</option>"; 
			echo "<option value=\"0.5\" selected>0.5</option>"; 
			echo "<option value=\"0.6\" selected>0.6</option>"; 
			echo "<option value=\"0.7\" selected>0.7</option>"; 
			echo "<option value=\"0.8\" selected>0.8</option>"; 
			echo "<option value=\"0.9\" selected>0.9</option>"; 
			echo "<option value=\"1.0\" selected>1.0</option>"; 
			echo "<option value=\"0\" selected>Nicht setzten</option>"; 
			} 
			else { 
			echo "<option value=\"0.0\" selected>0.0</option>"; 
			echo "<option value=\"0.1\" selected>0.1</option>"; 
			echo "<option value=\"0.2\" selected>0.2</option>"; 
			echo "<option value=\"0.3\" selected>0.3</option>"; 
			echo "<option value=\"0.4\" selected>0.4</option>"; 
			echo "<option value=\"0.5\" selected>0.5</option>"; 
			echo "<option value=\"0.6\" selected>0.6</option>"; 
			echo "<option value=\"0.7\" selected>0.7</option>"; 
			echo "<option value=\"0.8\" selected>0.8</option>"; 
			echo "<option value=\"0.9\" selected>0.9</option>"; 
			echo "<option value=\"1.0\" selected>1.0</option>"; 
			echo "<option value=\"0\" selected>Nicht setzten</option>"; 
			} 
echo "</td></tr>            
        </table>";
Output

Code: Alles auswählen

<?php 

/** 
* Google Sitemaps Ausgabe als XML - 05.06.2005 
* 
* OUTPUT 
* 
* Author Luxmedia Österreich 
* Copyright www.luxmedia.at 
* 
* Angepasst durch micattack@gmx.net 
*  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"]; 
    
    
   // 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'"; 

    
   // execute query 
   $db->query($query); 
    
    
   // get id's of sub articles 
   while ($db->next_record()) { 
        $linkid = $db->f("idart"); 
        $lastmod =   iso8601_date( $db->f("lastmod") ); 
         // link 
         $link = $xml_link. "CMS_VALUE[0]?idart=$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>'; 

} 

?>
Für jeden Verbesserungen bin ich Dankbar, weil man kann das auf jeden Fall besser lösen, aber der Zweck heiligt die Mittel.

MfG

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 21. Dez 2005, 22:29

Ähm. Die Auswahl wird nicht gespeichert, weil da noch der eine oder andere Fehler schlummert (lustigerweise immer ein anderer).

Alt:

Code: Alles auswählen

         if ($selected == "" || $selected == "front_content.php") {
         echo "<option value=\"front_content.php\" selected>front_content.php</option>";
         echo "<option value=\"index.php\">index.php</option>";
         }
         else {
         echo "<option value=\"front_content.php\">front_content.php</option>";
         echo "<option value=\"index.php\" selected>index.php</option>";
         }
Das sollte eigentlich funktionieren, aber zur Sicherheit könnte man die echos mit einfachen Anführungszeichen verwenden - dann kann man " für HTML nutzen:

Neu:

Code: Alles auswählen

         if ($selected == "" || $selected == "front_content.php") {
         echo '<option value="front_content.php" selected>front_content.php</option>';
         echo '<option value="index.php">index.php</option>';
         }
         else {
         echo '<option value="front_content.php">front_content.php</option>';
         echo '<option value="index.php" selected>index.php</option>';
         }
Alt:

Code: Alles auswählen

           if ($selected == "" || $selected == "Nicht setzen") {
         echo "<option value=\"0\">Nicht setzen</option>";
         echo "<option value=\". $lastmod.\" selected>Ja</option>";
         }
         else {
         echo "<option value=\"0\" selected>Nicht setzen</option>";
            echo "<option value=\". $lastmod.\">Ja</option>";
         }
Es wird auf "Nicht setzen" geprüft, aber der in der DB gespeichert Wert würde - bei "Nicht setzen" - 0 sein. Außerdem ist das Ergebnis verdreht. Die Variable $lastmod ist IMHO nicht definiert - aber wenn es eine globale Contenido-Variable ist (keine Ahnung...) - steht da jemals was als Value (im HTML-Code der Konfiguration)?

Aber selbst wenn, wird das Änderungsdatum im Output bestimmt, d.h. nicht aus dem Input übernommen. Es würde also folgendes reichen:

Neu:

Code: Alles auswählen

           if ($selected == "" || $selected == "0") {
         echo '<option value="0" selected>Nicht setzen</option>';
         echo '<option value="1">Ja</option>';
         }
         else {
         echo '<option value="0">Nicht setzen</option>';
            echo '<option value="1" selected>Ja</option>';
         }
Alt:

Code: Alles auswählen

         if ($selected == "" || $selected == "Nicht setzten") {
         echo "<option value=\"always\" selected>Immer</option>";
         echo "<option value=\"hourly\" selected>St&uuml;ndlich</option>";
         echo "<option value=\"daily\" selected>T&auml;glich</option>";
         echo "<option value=\"weekly\" selected>W&ouml;chentlich</option>";
         echo "<option value=\"monthly\" selected>Monatlich</option>";
         echo "<option value=\"yearly\" selected>J&auml;hrlich</option>";
         echo "<option value=\"never\" selected>Niemals</option>";
         echo "<option value=\"0\" selected>Nicht setzten</option>";
         }
         else {
         echo "<option value=\"always\" selected>Immer</option>";
         echo "<option value=\"hourly\" selected>St&uuml;ndlich</option>";
         echo "<option value=\"daily\" selected>T&auml;glich</option>";
         echo "<option value=\"weekly\" selected>W&ouml;chentlich</option>";
         echo "<option value=\"monthly\" selected>Monatlich</option>";
         echo "<option value=\"yearly\" selected>J&auml;hrlich</option>";
         echo "<option value=\"never\" selected>Niemals</option>";
         echo "<option value=\"0\" selected>Nicht setzten</option>";
         }
Hier existiert zunächst der gleiche Fehler (es wird auf "Nicht setzten" - inkl. Schreibfehler :wink: - geprüft, jedoch steht ggf. 0 in der DB). Darüber hinaus muss jeder Wert einzeln überprüft werden (das schreibe ich jetzt nicht alles auf... :roll: ). Beispiel:

Neu (Ansatz, zum selber basteln):

Code: Alles auswählen

         if ($selected == "always") {
              echo '<option value="always" selected>Immer</option>';
         } else {
              echo '<option value="always">Immer</option>';
         }
         if ($selected == "hourly") {
              echo '<option value="hourly" selected>St&uuml;ndlich</option>';
         } else {
              echo '<option value="hourly">St&uuml;ndlich</option>';
         }

...
         if ($selected == "" || $selected == "0") {
              echo '<option value="0" selected>Nicht setzen</option>';
         } else {
              echo '<option value="0">Nicht setzen</option>';
         }
D.h. für jede Bedingung gibt es einen "if then <selected> else <not selected>"-Block. Wenn das mit allen Optionen einmal durch ist, ist man fertig (d.h. die z.Z. existierenden großen Blöcke "if" und "else" werden dadurch komplett ersetzt, ich hoffe, das war jetzt verständlich).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

chobbert
Beiträge: 371
Registriert: Mo 14. Jul 2003, 10:14
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von chobbert » Do 29. Dez 2005, 19:14

Hallo.

gibt es von diesem Modul schon eine getestete Version, in der die Verbesserungsvorschläge von HerrnB eingearbeitet wurden?


Schöne Grüße

Robert

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

Beitrag von derSteffen » Di 3. Jan 2006, 12:42

So nun die überarbeitete Version mit den Verbesserungen von HrBee! Danke an dieser Stelle nochmals an HrBee

Der Input
/**
* Google Sitemaps Ausgabe als XML - 05.06.2005
*
* INPUT
*
* Author Luxmedia Österreich
* Copyright www.luxmedia.at
*
* 2005-06-09
* - Abfrage des Skriptnames
* - Einbindung von lastmod je nach Wunsch
* - changefreq
*
* Angepasst durch derSteffen und HrBee
* 2006-01-03
* - Bugfix (Speichern der Werte der Selektfelder cms php skript [durch HrBee] Änderungsdatum und Änderungshäufigkeit)
* - Neues Feld: priority
*/

echo "Mehr Info &uuml;ber Google Sitemaps <a href=\"https://www.google.com/webmasters/sitem ... hier</a>\n";

// selected category
$selected = "CMS_VALUE[0]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n
<tr>
<td width=\"200\">cms php skript:</td><td>";
echo "<select name=\"CMS_VAR[0]\">";
if ($selected == "" || $selected == "front_content.php") {
echo '<option value="front_content.php" selected>front_content.php</option>';
echo '<option value="index.php">index.php</option>';
}
else {
echo '<option value="front_content.php">front_content.php</option>';
echo '<option value="index.php" selected>index.php</option>';
}
echo "</td></tr>
</table>";

$selected = "CMS_VALUE[1]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n
<tr>
<td width=\"200\">Letztes &Auml;nderungsdatum verwenden:</td><td>";
echo "<select name=\"CMS_VAR[1]\">";
if ($selected == "" || $selected == "0") {
echo '<option value="0" selected>Nicht setzen</option>';
echo '<option value="1">Ja</option>';
}
else {
echo '<option value="0">Nicht setzen</option>';
echo '<option value="1" selected>Ja</option>';
}
echo "</td></tr>
</table>";

$selected = "CMS_VALUE[2]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n
<tr>
<td width=\"200\">&Auml;nderungsh&auml;ufigkeit aller Seiten:</td><td>";
echo "<select name=\"CMS_VAR[2]\">";
if ($selected == "always") {
echo '<option value="always" selected>Immer</option>';
} else {
echo '<option value="always">Immer</option>';
}
if ($selected == "hourly") {
echo '<option value="hourly" selected>St&uuml;ndlich</option>';
} else {
echo '<option value="hourly">St&uuml;ndlich</option>';
}
if ($selected == "daily") {
echo '<option value="daily" selected>T&auml;glich</option>';
} else {
echo '<option value="daily">T&auml;glich</option>';
}
if ($selected == "weekly") {
echo '<option value="weekly" selected>W&ouml;chentlich</option>';
} else {
echo '<option value="weekly">W&ouml;chentlich</option>';
}
if ($selected == "monthly") {
echo '<option value="monthly" selected>Monatlich</option>';
} else {
echo '<option value="monthly">Monatlich</option>';
}
if ($selected == "yearly") {
echo '<option value="yearly" selected>J&auml;hrlich</option>';
} else {
echo '<option value="yearly">J&auml;hrlich</option>';
}
if ($selected == "never") {
echo '<option value="never" selected>Niemals</option>';
} else {
echo '<option value="never">Niemals</option>';
}
if ($selected == "" || $selected == "0") {
echo '<option value="0" selected>Nicht setzen</option>';
} else {
echo '<option value="0">Nicht setzen</option>';
}
echo "</td></tr>
</table>";

$selected = "CMS_VALUE[3]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n
<tr>
<td width=\"200\">Priorität aller Seiten:</td><td>";
echo "<select name=\"CMS_VAR[3]\">";
if ($selected == "0.0") {
echo '<option value="0.0" selected>0.0</option>';
} else {
echo '<option value="0.0">0.0</option>';
}
if ($selected == "0.1") {
echo '<option value="0.1" selected>0.1</option>';
} else {
echo '<option value="0.1">0.1</option>';
}
if ($selected == "0.2") {
echo '<option value="0.2" selected>0.2</option>';
} else {
echo '<option value="0.2">0.2</option>';
}
if ($selected == "0.3") {
echo '<option value="0.3" selected>0.3</option>';
} else {
echo '<option value="0.3">0.3</option>';
}
if ($selected == "0.4") {
echo '<option value="0.4" selected>0.4</option>';
} else {
echo '<option value="0.4">0.4</option>';
}
if ($selected == "0.5") {
echo '<option value="0.5" selected>0.5</option>';
} else {
echo '<option value="0.5">0.5</option>';
}
if ($selected == "0.6") {
echo '<option value="0.6" selected>0.6</option>';
} else {
echo '<option value="0.6">0.6</option>';
}
if ($selected == "0.7") {
echo '<option value="0.7" selected>0.7</option>';
} else {
echo '<option value="0.7">0.7</option>';
}
if ($selected == "0.8") {
echo '<option value="0.8" selected>0.8</option>';
} else {
echo '<option value="0.8">0.8</option>';
}
if ($selected == "0.9") {
echo '<option value="0.9" selected>0.9</option>';
} else {
echo '<option value="0.9">0.9</option>';
}
if ($selected == "1.0") {
echo '<option value="1.0" selected>1.0</option>';
} else {
echo '<option value="1.0">1.0</option>';
}
if ($selected == "" || $selected == "0") {
echo '<option value="0" selected>Nicht setzen</option>';
} else {
echo '<option value="0">Nicht setzen</option>';
}
echo "</td></tr>
</table>";
Der Output
<?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"];


// 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'";


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


// get id's of sub articles
while ($db->next_record()) {
$linkid = $db->f("idart");
$lastmod = iso8601_date( $db->f("lastmod") );
// link
$link = $xml_link. "CMS_VALUE[0]?idart=$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>';

}

?>
Installation...
wie hier beschrieben http://www.contenido.org/forum/viewtopic.php?t=8503

MfG

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 3. Jan 2006, 19:20

HrBee
Fühl Dich gehauen.

Könntest Du den Code noch ein wenig einrücken, das wäre herzallerliebst.

E.g. statt:

Code: Alles auswählen

if ($selected == "" || $selected == "0") { 
echo '<option value="0" selected>Nicht setzen</option>'; 
echo '<option value="1">Ja</option>'; 
} 
else { 
echo '<option value="0">Nicht setzen</option>'; 
echo '<option value="1" selected>Ja</option>'; 
}
Besser:

Code: Alles auswählen

if ($selected == "" || $selected == "0") { 
   echo '<option value="0" selected>Nicht setzen</option>'; 
   echo '<option value="1">Ja</option>'; 
} else { 
   echo '<option value="0">Nicht setzen</option>'; 
   echo '<option value="1" selected>Ja</option>'; 
}
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Louis
Beiträge: 206
Registriert: Mo 27. Okt 2003, 12:28
Kontaktdaten:

Beitrag von Louis » So 8. Jan 2006, 14:22

HerrB hat geschrieben:Könntest Du den Code noch ein wenig einrücken, das wäre herzallerliebst.
Fix und fertig als .xml zum Import: http://droescher.net/misc/Google_Sitemap.zip
Wir können den Wind nicht ändern, aber die Segel anders setzen
(Aristoteles)

MediaMuchacho
Beiträge: 71
Registriert: Do 3. Nov 2005, 15:01
Wohnort: Ulm
Kontaktdaten:

Probleme bei der Verwendung

Beitrag von MediaMuchacho » Do 12. Jan 2006, 03:21

Hi, also ich hab mich gerade durch so ziemlich alle verfügbaren Google Sitemap infos hier durchgelesen + diverse XML Tutorials und hab mir die Scripte mal näher angeschaut.

Leider habe ich das Problem, dass Google meine Sitemap nicht findet.

Diese ist unter http://www.ruckzuck-online.de/Media-in-vita-Sitemap/ zu finden und wie man sieht verwende ich mod-rewrite.

Aber egal ob ich den Link mit front_content.php und der ArtikelID angebe oder diesen Link....Google findet die Sitemap nicht...

Ich vermute ich stell mich nur blöd an und mach grad irgendwelchen Unfug aber nachdem ich das jetzt das 10. neu installiert habe und alles versucht habe möglichst genau zu prüfen, fällt mir keine Lösung mehr ein. Woran kann es liegen, dass google die Sitemap nicht findet, die doch scheinbar bei anderen hier so gut funktioniert?

______

Ich nutze Contenido 4.6.2...könnte das das Problem sein?

Louis
Beiträge: 206
Registriert: Mo 27. Okt 2003, 12:28
Kontaktdaten:

Beitrag von Louis » Do 12. Jan 2006, 16:43

Ich bin mir gar nicht so sicher ob Google deine Sitemap nicht findet - ich vermute mal dass Google keinen der angegebenen Links indizieren kann und deswegen auch nichts ins Verzeichnis aufnimmt....

Testweise hab ich mal probiert ein paar der Links aus deiner sitemap im Browser zu öffnen - alles landet auf der Fehlerseite.
Wir können den Wind nicht ändern, aber die Segel anders setzen
(Aristoteles)

peanut
Beiträge: 213
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

Beitrag von peanut » So 19. Feb 2006, 15:03

Mal ne ganz andere Frage wegen dem Sitemap Modul 4.6.4 und adv. Modrewrite 4.6.4

Was genau muss ich denn nun machen damit die Links in dem XML Modul wie im Frontend Browser aussehen mit mod Rewrite?

Oder habe ich da was grundlegendes Übersehen ?

Danke für eine Feedback
Gruss an alle fleissigen Bienchen
Peanut
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

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

Beitrag von Freddy » Di 21. Feb 2006, 15:46

Habe auch die gleiche Frage wie peanut.
benutze auch adv. Modrewrite 4.6.4. Die Urls in der XML Modul sehen bei mir auch anders aus als im Browser.

peanut
Beiträge: 213
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

Beitrag von peanut » Di 28. Feb 2006, 16:02

hallo zusammen

hat denn niemand einen vorschlag wie man die XML Google sitemap mit modrewrite abändern muss ? Es gibt zwar immer wieder Ansätze sowie ich das hier verfolgt habe aber nix konkretes ....

gruss
peanut
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

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

Beitrag von Uwe » Mo 6. Mär 2006, 19:07

Hallo,

danke erst mal für die Google-Sitemap. Die Idee, das fertige Modul als XML anzubieten finde ich super!

Ich habe sie importiert, ein Template damit erstellt, in der Kategorie einen neuen Baum angelegt, welcher nicht von der Navigation erfasst wird, das Template zugewiesen und konfiguriert, einen neuen Artikel angelegt. Alles iist online

Leider erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

Warning: Cannot modify header information - headers already sent by (output started at /kunden/xxx/sachverstaendiger-xxx.de/cms/contenido/external/backendedit/front_content.php(778) : eval()'d code:11) in /kunden/xxx/sachverstaendiger-xxx.de/cms/contenido/external/backendedit/front_content.php(778) : eval()'d code on line 544
http://www.sachverstaendiger-lange.de/front_content.php?idart=3 monthly http://www.sachverstaendiger-lange.de/front_content.php?idart=4 monthly http://www.sachverstaendiger-lange.de/front_content.php?idart=6 monthly http://www.sachverstaendiger-lange.de/front_content.php?idart=7 monthly http://www.sachverstaendiger-lange.de/front_content.php?idart=8 monthly http://www.sachverstaendiger-lange.de/front_content.php?idart=10 monthly http://www.sachverstaendiger-lange.de/front_content.php?idart=12 monthly 
usw.

Ist das nun gut oder nicht? Wie sieht eine erfolgreiche Aktion aus? Ich habe ein Layout mit Hauptnavigation eingebunden. Muss oder darf ich das überhaupt?

Die Pfade in der Fehlermeldung stimmen (habe ich aus dem BE aufgerufen), kann es sein, dass ich erweiterte Zugriffsrechte bennnötige?

Würde mich über einen Hinweis freuen.

Ach so:
Contenido 4.6.4 (Update)

Viele Grüsse vom total verschneiten Bodensee,
Uwe

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

Beitrag von derSteffen » Mo 6. Mär 2006, 19:43

hast du das gemacht?
neues Layout (blanko) mit nur CMS_CONTAINER[1] ohne weitere HTML oder sonstigen Tags erstellen

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

Beitrag von Uwe » Di 7. Mär 2006, 14:01

Nee, hatte ich nicht ...

Aber jetzt und funzt! Danke!

Viele Grüsse, Uwe

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

Beitrag von derSteffen » Di 14. Mär 2006, 09:42

Hallo! Hat denn schon jemand eine Lösung für das ModRewrite + Google Sitmap.XML Problem! Also wie Freddy und Peanut beschrieben haben. Denn die generierten Links in der Googel-Sitemap können mit eingeschaltetem ModRewrite nicht aufgerufen werden. Ruft man diese auf wird man automatisch zur Startseite gelenkt. Ist natürlich doof wenn Googel denkt, dass es nur eine Seite gibt! Mhm?!

Danke

Gesperrt