rss für pixelpost galerie in backend.php eintragen

Begonnen von Toasti, 30 November 2006, 12:43:04

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Toasti

Hallo,
ich hatte hier bereits einen Eintrag von Musicman75 entdeckt, der erfolgreich ein Modul in seine Backend.php bekommen hat. Link zu seinem Tipp

Ähnlich versuche ich nun auch seit Tagen ein Rss fähiges Pixelpost (das ist ene Galerie) in die Backend zu bauen, komme aber leider nicht so recht weiter. Mein Ansatz sieht folgendermaßen aus bisher:

Code (Zeile95) Auswählen
$actions = array("news", "story", "downs", "board", "link", "auswahl", "smf", "all", "pixelpost");

Code (Die Funktion selbst) Auswählen
function pixelpost ($version)
{
    global $rss, $limit, $prefix, $itemdescriptiontrunk, $modcheck ;
    $result = sql_query("SELECT id,datetime,headline,body,image FROM " . $prefix . "pixelpost WHERE (datetime<='$cdate') ORDER BY datetime desc limit 10 " . $limit);
    if (!$result) {
        echo "An error occured";
    } else {
        if ((mxModuleAllowed("Pixelpost")) && ($modcheck['Pixelpost'])) {
            while ($data_down = sql_fetch_object($result)) {
                if (($version == "RSS1.0")or($version == "RSS2.0")) {
                    $data_down->name = rss_bbencode($data_down->headline);
                    $data_down->title = rss_bbencode($data_down->image);
                }
                $item = new FeedItem();
                $item->descriptionTruncSize = $itemdescriptiontrunk;
                $item->image = strip_tags(rss_bbencode("".$data_down->headline." - ".$data_down->image.""));
                $item->link = MX_HOME_URL . "/modules/Pixelpost/index.php";
                $item->description = strip_tags(rss_bbencode($data_down->comments));
                $item->source = MX_HOME_URL . "/modules/Pixelpost/index.php";
                $rss->addItem($item);
            }
        } else {
            moduleerror("Pixelpost");
        }
    }
    unset ($result, $data_down);
}


Danach noch die Case und Case All Funktion.
Und natürlich eben im Header der Aufruf.

Angezeigt wird es mir, nur leider erscheint dann eine gelbe Seite, die mir nur folgendes ausgibt:
XML-Verarbeitungsfehler: Syntax-Fehler
Adresse: backend.php?op=pixelpost


Der Aufruf zum Pixelpost eigenen Rss lautet /modules/Pixelpost/index.php?x=rss
In dieser Datei gibt es folgenden Rss Abschnitt zu bewundern:
Code (Auszug aus der Index.php des Pixelpost) Auswählen
// ##########################################################################################//
// RSS 2.0 FEED
// ##########################################################################################//

if(isset($_GET['x'])&&$_GET['x'] == "rss")

{
    $output = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
    <rss version=\"2.0\">
    <channel>
    <title>".$pixelpost_site_title."</title>
    <link>".$cfgrow['siteurl']."</link>
    <description>$pixelpost_site_title photoblog</description>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>pixelpost</generator>
    ";
$tzoner = $cfgrow['timezone'];
$tprefix = '+';
$tzoner = sprintf ("%01.2f", $tzoner);
if (substr($tzoner,0,1)=='-')
{
$tzoner = (substr($tzoner,1));
$tprefix = '-';
}

if ($tzoner < 10) $tzoner = "0".$tzoner;

$hh = substr($tzoner,0,2);
$mm = substr($tzoner,-2);
$tzoner = $tprefix.$hh.$mm;
$query = mysql_query("SELECT id,datetime,headline,body,image FROM ".$pixelpost_db_prefix."pixelpost WHERE (datetime<='$cdate') ORDER BY datetime desc limit 10");

while(list($id,$datetime,$headline,$body,$image) = mysql_fetch_row($query))
{
$headline = pullout($headline);
$headline = htmlspecialchars($headline,ENT_QUOTES);
$image = $cfgrow['siteurl']."thumbnails/thumb_$image";
$datetime = strtotime($datetime);
$datetime =date("D, d M Y H:i",$datetime);
$datetime .= ' ' .$tzoner;
$body = pullout($body);
$body = stripslashes($body);
$body = strip_tags( $body );
$body = htmlspecialchars($body,ENT_QUOTES);
$body = ereg_replace("\n","\n&lt;br /&gt;",$body);
$output .= "
        <item>
        <title>$headline</title>
        <link>".$cfgrow['siteurl']."?showimage=$id</link>
        <description>
&lt;img src=&quot;$image&quot;&gt;
&lt;br /&gt;$body
</description>
        <pubDate>$datetime</pubDate>
<guid>".$cfgrow['siteurl']."index.php?showimage=$id</guid>
        </item>
        ";
}

$output .= "
        </channel>
        </rss>";
header("Content-type:application/xml");
echo $output;
exit;
}
// ##########################################################################################//
// ATOM FEED
// ##########################################################################################//

if(isset($_GET['x'])&&$_GET['x'] == "atom")
{
header("content-type: application/atom+xml");
$tzoner = $cfgrow['timezone'];
$tprefix = '+';
$tzoner = sprintf ("%01.2f", $tzoner);

if (substr($tzoner,0,1)=='-')
{
     $tzoner = (substr($tzoner,1));
     $tprefix = '-';
}

if ($tzoner < 10) $tzoner = "0".$tzoner;

$hh = substr($tzoner,0,2);
$mm = substr($tzoner,-2);
$tzoner = $tprefix.$hh.":".$mm;
$url = $cfgrow['siteurl'];
$atom = "<?xml version='1.0' encoding='UTF-8'?>
            <feed xml:lang='en' xmlns='http://www.w3.org/2005/Atom'>
     <title>$pixelpost_site_title photoblog</title>
    <link rel='alternate' type='text/html' href='".$cfgrow['siteurl']."' title='".$pixelpost_site_title."' />
    <link rel='self' type='text/html' href='".$cfgrow['siteurl']."index.php?x=atom' title='".$pixelpost_site_title."' />  
    <author>
    <name>".$pixelpost_site_title."</name>
    <uri>$url</uri>
    </author>
    <generator uri='http://www.pixelpost.org/' version='1.5BETA'>PixelPost</generator>
     <id>$url</id>
    <updated>".date("Y-m-d\TH:i:s$tzoner")."</updated>
    ";
$tag_url = $_SERVER['HTTP_HOST'];
$query = mysql_query("SELECT id,datetime,headline,body,image FROM ".$pixelpost_db_prefix."pixelpost WHERE (datetime <='$cdate') ORDER BY datetime desc limit 0,20");

while(list($id,$datetime,$headline,$body,$image) = mysql_fetch_row($query))
{
$headline = pullout($headline);
$headline = htmlspecialchars($headline,ENT_QUOTES);
$body = pullout($body);
$body = htmlspecialchars($body,ENT_QUOTES);
$body = strip_tags($body);
$image = $cfgrow['siteurl']."thumbnails/thumb_$image";
$tag_date =substr($datetime,0,10);
$modified_date =substr($datetime,0,10);
$modified_date = $modified_date."T".(substr($datetime,11,8));
$datetime = strtotime($datetime);
$atom .= "
<entry xmlns='http://purl.org/atom/ns#'>
<title mode='escaped' type='text/html'>$headline</title>
<link rel='alternate' type='text/html' href='".$cfgrow['siteurl']."?showimage=$id' title='$headline' />
    <id>tag:$tag_url,$tag_date:$id</id>
        <content type='text/xhtml' mode='escaped'>
<![CDATA[
        <img src='$image' /><br />$headline<br />$body]]>
        </content>
     <issued>$tag_date</issued>
     <updated>$modified_date$tzoner</updated>
       </entry>
        ";
}

$atom .= "</feed>";
echo $atom;
exit;
}

// ##########################################################################################//
// RSS- + ATOM - tags
// ##########################################################################################//
// keeping this "old" tag because it is used in user's template maybe
$atom_url = "http://".$HTTP_HOST.$REQUEST_URI."&amp;x=atom";
$tpl = str_replace("<ATOM_AUTODETECT>",$atom_url,$tpl);
$atom_auto = "<link rel=\"service.feed\" type=\"application/x.atom+xml\" title=\"$pixelpost_site_title - ATOM Feed\" href=\"".$cfgrow["siteurl"]."index.php?x=atom\" />";
$tpl = ereg_replace("<ATOM_AUTODETECT_LINK>",$atom_auto,$tpl);
$tpl = ereg_replace("<SITE_ATOM_LINK>","<a href='./index.php?x=atom'>ATOM feed</a>",$tpl);

$rss_auto = "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"$pixelpost_site_title - RSS Feed\" href=\"".$cfgrow["siteurl"]."index.php?x=rss\" />";
$tpl = ereg_replace("<RSS_AUTODETECT_LINK>",$rss_auto,$tpl);
$tpl = ereg_replace("<SITE_RSS_LINK>","<a href='./index.php?x=rss'>RSS 2.0</a>",$tpl);



Okay, ich übergebe wohl irgendwas Falsch, aber was kann es sein?
Oder lässt sich sogar so ein Abschnitt mit Bezug auf die Herkunft einfacher in der backend.php includen?
Hat jemand eine Idee?

Der Aufruf des Pixelpost Rss für sich selbst gesehen funktioniert ja schon, nur möchte ich natürlich alles unter einem Dach und Fach haben.

Danke und Gruß
Toasti

Toasti

Leider hat die Frage keine Relevanz mehr, da ich das Modul nicht weiterverfolgen werde :-(
Wenn einer der Admins so Nett wäre, dann kann der Beitrag einfach gelöscht werden bitte.

Danke & Gruß
Toasti