Kalender-Einträge als RSS-Feed für phpnuke ?

Begonnen von lostmail, 12 Mai 2009, 14:33:15

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 2 Gäste betrachten dieses Thema.

lostmail

Ich vesuche gerade die kalender-Einträge auszulesen und als RSS-Feed darstellen zu lassen, aber komme nicht weiter....

http://warpspeed.4thdimension.de/modules.php?name=Forums&file=viewtopic&t=10942#43682

Kann jemand helfen  ?
------------------------------------------------------------------

Und leider wurde die angepaßte backend.php in diesem Topic
http://www.pragmamx.org/Forum-topic-17962.html
von den Admins gelöscht bzw. das Thema gesperrt - von 2006 aber immer noch aktuell (heute mehr denn je !).

Im Übrigen werden bei mir in der backend.php nicht mal die normalen news artikel angezeigt...

Musicman75

Diese Änderungen sind für pragmaMX

In der includes/myheader.php folgendes bei den anderen Feeds einfügen:
<link rel="alternate" type="application/rss+xml" title="Partykalender - ' . htmlspecialchars($GLOBALS['sitename']) . '"  href="backend.php?op=calendar">
---------------------------------
in die backend.php folgendes suchen:
function rss_bbencode($msg)

Davor folgendes einfügen:
function calendar ($version)
{
    global $rss, $limit, $prefix, $itemdescriptiontrunk, $modcheck ;

    $d = (int)Date("d");
    $m = (int)Date("m");
    $y = (int)Date("Y");
    $qrydate = "" . $y . "-" . $m . "-" . $d . "";

    $result = sql_query("SELECT eid, title, hometext, startDate, endDate FROM " . $prefix . "_events  WHERE (startDate>= '$qrydate' or endDate>= '$qrydate') ORDER BY startDate asc, endDate asc limit " . $limit . "");
    if (!$result) {
        echo "<!-- An database error occured: " . mysql_error() . " -->";
    } else {
        if ((mxModuleAllowed("Kalender")) && ($modcheck['Kalender'])) {
            while ($data_down = sql_fetch_object($result)) {
                if (($version == "RSS1.0")or($version == "RSS2.0")) {
                    $data_down->title = rss_bbencode($data_down->title);
                    $data_down->hometext = rss_bbencode($data_down->hometext);
                }
                $item = new FeedItem();
                $item->descriptionTruncSize = $itemdescriptiontrunk;
                $item->title = strip_tags(rss_bbencode("" . $data_down->startDate . " - " . $data_down->title . ""));
                $item->link = PMX_HOME_URL . "/modules.php?name=Kalender&op=view&eid=" . $data_down->eid . "";
                $item->description = strip_tags(rss_bbencode($data_down->hometext));
                $item->source = PMX_HOME_URL . "/modules.php?name=Kalender";
                $rss->addItem($item);
            }
        } else {
            moduleerror("Kalender");
        }
    }
}

---------------------------------
Nach folgender Zeile suchen:
$actions = array("news", "story", "downs", "board", "link", "auswahl", "all");

Zusätzlichen Eintrag im array machen:
$actions = array("news", "story", "downs", "board", "link", "auswahl", "all", "calendar");
---------------------------------
Nach diesem Code suchen:
case "downs":
                downloads ($version);
                break;


Folgendes danach einfügen:
case "calendar":
                calendar($version);
                break;


Dieses muss 2 mal gemacht werden, einmal bei
switch ($op) {
und einmal in
function auswahl ()
Unaufgeforderte Support PMs & Emails werden ignoriert

Immer erst die Boardsuche verwenden und gegebenenfalls einen neuen Threat eröffnen, wenn das Problem noch nicht behandelt wurde!

lostmail

Meine Backend.php sieht schon mal ganz anders aus - die zu suchenden Punkte sind da gar nicht drin.

Zitat<?php

include("mainfile.php");
global $prefix, $db, $nukeurl;
header("Content-Type: text/xml");

$gmtdiff = date("O", time());
$gmtstr = substr($gmtdiff, 0, 3) . ":" . substr($gmtdiff, 3, 9);
$now = date("Y-m-d\TH:i:s", time());
$now = $now . $gmtstr;

echo "<?xml version=\"1.0\" encoding=\"windows-1251\"?><?xml-stylesheet title=\"XSL_formatting\" type=\"text/xsl\" href=\"rss.xsl\" ?>\n";
echo "<rss version=\"2.0\" \n";
echo "  xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n";
echo "  xmlns:sy=\"http://purl.org/rss/1.0/modules/syndication/\"\n";
echo "  xmlns:admin=\"http://webns.net/mvcb/\"\n";
echo "  xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n\n";
echo "<channel>\n";
echo "<title>".htmlspecialchars($sitename)."</title>\n";
echo "<link>".htmlspecialchars($nukeurl)."</link>\n";
echo "<description></description>\n";
echo "<dc:language>".$backend_language."</dc:language>\n";
echo "<dc:creator>".$adminmail."</dc:creator>\n";
echo "<dc:date>".$now."</dc:date>\n\n";
echo "<sy:updatePeriod>hourly</sy:updatePeriod>\n";
echo "<sy:updateFrequency>1</sy:updateFrequency>\n";
echo "<sy:updateBase>".$now."</sy:updateBase>\n\n";

$result = $db->sql_query("SELECT t.topic_id, t.topic_title, p.post_id, p.post_time, pt.post_text, pt.bbcode_uid, f.forum_name FROM " . TOPICS_TABLE . " AS t, " . POSTS_TABLE . " AS p, " . POSTS_TEXT_TABLE . " AS pt, " . FORUMS_TABLE . " AS f WHERE f.forum_id = t.forum_id AND f.auth_view = " . AUTH_ALL . " AND p.topic_id = t.topic_id AND p.post_id = $sql_post_id_field AND pt.post_id = p.post_id $sql_where ORDER BY $sql_orderby LIMIT $count");

while ($row = $db->sql_fetchrow($result)) {
    $rsid = intval($row['topic_id']);
    $topicname = $row['topic_title'];
    $informant = $row['informant'];
    $title = $row['title'];
    $time = $row['time'];
    $hometext = $row['post_text'];

    // format: 2004-08-02T12:15:23-06:00
    $date = date("Y-m-d\TH:i:s", strtotime($time));
    $date = $date . $gmtstr;

    echo "<item>\n";
    echo "<title>".$title."</title>\n";
    echo "<link>$nukeurl/modules.php?name=News&amp;file=article&amp;sid=$rsid</link>\n";
    echo "<guid isPermaLink=\"false\">".$rsid."@".$nukeurl."</guid>\n";
    echo "<dc:subject>".$topicname."</dc:subject>\n";
    echo "<dc:date>".$date."</dc:date>\n";
    echo "<dc:creator>Posted by ".$informant."</dc:creator>\n";
    echo "</item>\n\n";
}

echo "</channel>\n";
echo "</rss>\n";

?>

In der myheader.php steht nur:

// NaviNuke
include("modules/NaviNuke/navinuke.php");

...sonst nichts.

lostmail

Wie kann ich die Datums-Ausgabe umformatieren ?

In meinem Script gibt es folgende zeilen fürs Datum:

Zitat. "<dc:date>".date("Y-m-d")."T".date("H:i:s")."-05:00</dc:date>\n"

und weiter unten dann nochmal:
Zitat
                   $time = str_replace(" ", "T", $time);
                     $content[$m] .= "<dc:date>$startDate-05:00</dc:date>\n";

In der Ausgabe meines RSS-Feeds erhalte ich dann das Datum startDate:
ZitatSamstag, 3. Oktober 2009 02:00

wie kann ich die Datumsausgabe ohne die Uhrzeit am Ende erhalten ? Stimmt sowieso nicht....ich bräuchte nur das Datum ohne Uhrzeit.