pragmaMx Support Forum

Archive => veraltete bzw. unsupportete Systeme und Module => Alt Archive => KalenderMx => Thema gestartet von: lostmail am 12 Mai 2009, 14:33:15

Titel: Kalender-Einträge als RSS-Feed für phpnuke ?
Beitrag von: lostmail am 12 Mai 2009, 14:33:15
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...
Titel: Re: Kalender-Einträge als RSS-Feed für phpnuke ?
Beitrag von: Musicman75 am 12 Mai 2009, 19:45:45
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 ()
Titel: Re: Kalender-Einträge als RSS-Feed für phpnuke ?
Beitrag von: lostmail am 13 Mai 2009, 07:25:40
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.
Titel: Re: Kalender-Einträge als RSS-Feed für phpnuke ?
Beitrag von: lostmail am 13 Mai 2009, 11:45:48
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.