Page 1 of 1

Backend.php zum Newsmodul

Posted: Thu Dec 08, 2005 7:00 pm
by Piratos
Mit der Möglichkeit der RSS - Ausgabe vom News Module war ich nicht zufrieden.

Und so habe ich mit ein Script geschrieben, das völlig separat zum Newsmodul eien  RDF - Feed ausgeben kann.

Es ist, wenn man den Feed bei entsprechenden Newsfeed - Domains anmeldet ein simpler link in der Art

http://meine_domain/modules/news/backend.php

Es werden da folgende Daten ausgegeben:

Code: Select all

<RDF>
<channel>
<title>Backend zum Newsmodul CMSMadeSimple von piratos</title>
<link>http://localhost/011/index.php
<description>Dieses Dokument enthält die Schlagzielen von Piratos</description>
<language>de_de</language>
<copyright>Jan Czarnowski piratos@coftware.de</copyright>
<lastBuildDate>08.12.05 07:12:48</lastBuildDate>
</channel>
<item>
<pubDate>Wed, 7 Dec 2005 18:02:15 GMT Standard Time</pubDate>

<title>Test</title>
<description>Das ist ein Test</description>
<link>http://localhost/011/index.php?module=News&id=cntnt01&cntnt01action=detail&cntnt01articleid=2
</item>
<item>
<pubDate>Sun, 13 Nov 2005 11:09:40 GMT Standard Time</pubDate>
<title>News Module Installed</title>
<description></description>
<link>http://localhost/011/index.php?module=News&id=cntnt01&cntnt01action=detail&cntnt01articleid=1

</item>
</RDF>
Das Format ist identisch mit dem Feed der bekannten Tagesschau  - auf Klick kann der Besucher den rest der News lesen.

Re: Backend.php zum Newsmodul

Posted: Thu Dec 08, 2005 10:27 pm
by Gast
Und wo kann ich dieses Script finden - wäre genau, was ich brauche...

Re: Backend.php zum Newsmodul

Posted: Fri Dec 09, 2005 9:20 am
by Piratos
Das Script gibt es hier
Es ist im Ordner News abzulegen und beim Verteilen des Links ist entsprechendes einzusetzen.

Code: Select all

http://meine_domain/News/backend.php

Code: Select all

<?php
include(dirname(dirname(dirname(__FILE__)))."/config.php");
include_once($config['root_path']."/lib/adodb/adodb.inc.php");

// Changes this to what you want
// Bitte Änderungen nach Wunsch durchführen
$titel="Backend zum Newsmodul CMSMadeSimple von piratos";
$language="de_de";
$copyright="Jan Czarnowski piratos@coftware.de";
$description='Dieses Dokument zeigt die Schlagzielen von Piratos';
$limit=30;
// End of you changes
// Ende deiner Anpassungen

$link=$config['root_url'].'/index.php';
$mod='?module=News&id=cntnt01&cntnt01action=detail&cntnt01articleid=';
$out="";
if (function_exists('mb_http_output')) {
	mb_http_output('pass');
}

$sql = "SELECT mn.*, mnc.news_category_name FROM ".$config['db_prefix']."module_news mn LEFT OUTER JOIN ".$config['db_prefix']."module_news_categories mnc ON mnc.news_category_id = mn.news_category_id WHERE status = 'published' ORDER by news_date DESC LIMIT 0,".$limit;
$db = &ADONewConnection($config['dbms'], 'cms:pear');
$db->Connect($config["db_hostname"],$config["db_username"],$config["db_password"],$config["db_name"]);
if (!$db) die("Connection failed");
$db->SetFetchMode(ADODB_FETCH_ASSOC);
$row = $db->_Execute($sql);

if(!$row->EOF)
{
    header ('Content-Type:text/xml; charset=utf-8');
    $out .='<rdf:RDF>'."\n";
    $out .='<channel>'."\n";
    $out .='<title>'.$titel.'</title>'."\n";
    $out .='<link>'.$link.'</link>'."\n";
    $out .='<description>'.$description.'</description>'."\n";
    $out .='<language>'.$language.'</language>'."\n";
    $out .='<copyright>'.$copyright.'</copyright>'."\n";
    $out .='<lastBuildDate>'.date('d.m.y h:m:s').'</lastBuildDate>'."\n";
    $out .='</channel>'."\n";
    $i=0;
    while (!$row->EOF)
    {
        $i++;
        if ($i<$limit)
        {
        $out .='<item>'."\n";
        $out .='<pubDate>'.gmdate('D, j M Y H:i:s T', $db->UnixTimeStamp($row->fields['news_date'])).'</pubDate>'."\n";
        $out .='<title>'.$row->fields['news_title'].'</title>'."\n";
        $out .='<description>'.$row->fields['summary'].'</description>'."\n";
        $out .='<link>'.$link.$mod.$row->fields['news_id'].'</link>'."\n";
        $out .='</item>'."\n";
        }
        $row->MoveNext();
    }
       $out .='</rdf:RDF>'."\n";
}

$db->Close();

if (function_exists('mb_convert_encoding')) {
            echo mb_convert_encoding($out, 'UTF-8', 'auto');
}
else
{echo $out;}


?>

Re: Backend.php zum Newsmodul

Posted: Fri Dec 09, 2005 9:53 am
by Piratos
Wer die eingebaute RSS Funktion von News nutzen will der schau sich dieses an:

http://forum.cmsmadesimple.org/index.ph ... l#msg13124

Das mitgelieferte Template ist falsch, eine von mir korrigierte Version ist in dem Posting zu finden und das funktioniert nach Rückmeldung.