Eine alternative Lösung zur stabilen und für RSS geeigneten Sortierung habe ich mir heute überlegt. Sortiert wird absteigend nach ID und die Uhrzeit wird nun nicht mehr fest auf 15:00:00 gestellt, sondern auf 15:00:59. Sollten mehrere Panoramen am selben Tag entstanden sein, wird die Uhrzeit um 1 Sekunde erniedrigt.
Ein paar kleine Voraussetzung für den erfolgreichen Einsatz gibt es jedoch:
- es dürfen max. 59 Panoramen an einem Tag erstellt worden sein
- IDs sollten mit dem Erstellungsdatum des Panoramas kongruieren, d.h. die IDs für einen Erstellungstag sollten nicht durch einen anderen Tag unterbrochen werden. Sollte das vorkommen, kann man dem mit ein wenig PHP-Code auch problemlos Herr werden. Für mich ist das nicht nötig gewesen, ich poste nie Panoramen vom Tag x, nachdem ich schon Bilder vom Tag y gepostet habe (x < y).Hier nun der Code.
<!-- Modul 63 -->
<?php
// (c) 2008 CHCH.cc - Christian Chladek
// funktioniert zur Zeit nur mit den deutschen SQL Datenbankeinträgen
$feedname ="awokenMIND - Panoramagalerie"; // Hier den Namen für den Feed eintragen
$feeddescription ="interaktive 360° Panoramen"; // Hier die Beschreibung des Feeds
$feedurl ="
http://panoramen.awokenmind.de/";;; //Hier URL des PPG Ordners
$linksql = mysql_connect("$Server", "$Benutzername", "$Passwort") or die("Could not connect.");
mysql_select_db($Datenbankname, $linksql);
$query = "select * from `daten` order by `id` desc";
$result = mysql_query($query, $linksql) or die("Could not complete database query");
$num = mysql_num_rows($result);
$i = -1;
if ($num != 0) {
$file= fopen("feed.xml", "w");
$_xml ="<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\r\n";
$_xml .="<rss version=\"2.0\">\r\n";
$_xml .="<channel>\r\n";
$_xml .="<title>$feedname</title>\r\n";
$_xml .="<description><![CDATA[$feeddescription]]></description>\r\n";
$_xml .="<link>" . $feedurl . "</link>\r\n\r\n";
$datumz = "";
$k = 1;
while ($row = mysql_fetch_array($result)) {
$i++;
if ($row["Name"] && $row["Name"] != "2-Name-") {
if($datumz == $row["Datum"]) $k++;
else {
$datumz = $row["Datum"];
$k = 1;
}
$datumx = explode(".", $row[Datum]);
$datumy = date("D, d M Y H:i:s O", @mktime(15, 0, (60-$k), $datumx[1], $datumx[0], $datumx[2]));
$_xml .="\t<item>\r\n";
$_xml .="\t\t<title>" . $row["Name"] . "</title>\r\n";
$_xml .="\t\t<pubDate>$datumy</pubDate>\r\n";
$_xml .="\t\t<description><![CDATA[<a href=\"" . $feedurl . "index.php?datei=" . $row["Link"] . "®ion=" . $row["Region"] . "&version=Quicktime&player=auto\"><img src=\"" . $feedurl . "panos/thumbs/" . $row["Link"] . ".jpg\" alt=\"\" title=\"" . $row["Name"] . "\" /></a><br /> " . $row["de_Kurztext"] . "<br /><br />Datum: " . $row["Datum"] . "<br />Region: " . $row["Region"] . "<br />GPS: " . $row["googlemappos"] . "<br /><br />]]></description>\r\n";
$_xml .="\t\t<link><![CDATA[" . $feedurl . "index.php?datei=" . $row["Link"] . "®ion=" . $row["Region"] . "&version=Quicktime&player=auto]]></link>\r\n";
$_xml .="\t\t<guid><![CDATA[" . $feedurl . "index.php?datei=" . $row["Link"] . "®ion=" . $row["Region"] . "&version=Quicktime&player=auto]]></guid>\r\n";
$_xml .="\t</item>\r\n\r\n";
}
else $_xml .="";
}
$_xml .="</channel>";
$_xml .="</rss>";
fwrite($file, $_xml);
fclose($file);
echo " <!--XML has been written. <a href=\"feed.xml\">View the XML.</a>-->";
}
else echo "No Records found";
echo "\r\n";
?>