RSS Feed Generator

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: RSS Feed Generator

Beitrag von Spider IT » Di 17. Mai 2011, 11:39

Dear Ilias,

in the configuration of the article you must specify a category from which the articles will be listet in the feed.
For example, if you have a category with news articles for the normal frontend, you specify this category in the feed article, not the category the feed article is in.

Kind regards
René

ilias
Beiträge: 90
Registriert: Di 13. Nov 2007, 11:49
Wohnort: Greece
Kontaktdaten:

Re: RSS Feed Generator

Beitrag von ilias » Di 17. Mai 2011, 11:53

Dear Rene,
thanks for your quick reply
i install the module as per your guide.
1)Empty layout
2) template....

I made a category that i called rss_feeder and i created an article that calls the template with the module.

i made regular articles in another category that i called main and the article have templates with text modules.
But the rss does not call the article
http://www.connectsmartworld.gr/front_c ... &idcat=305



I stop there

Best Regards
ilias
Dateianhänge
demo.JPG
demo.JPG (66.66 KiB) 10607 mal betrachtet

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: RSS Feed Generator

Beitrag von Spider IT » Di 17. Mai 2011, 12:39

You set the setting for subcategories (the second setting), do you have subcategories under |->|->main ?
If not, please uncheck this.

Are the articles to output online?
Are they in a protected category? (if so, check the third setting)

All other settings seem okay to me.
If nothing helps, can I have access to the module please? (only send data per PN)

Kind regards
René

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: RSS Feed Generator

Beitrag von rethus » Do 9. Jun 2011, 14:18

Ich habe mal eine grundsätzliche Frage:

Meist hat man es ja auf einer Webseite, dass man die normale URL aufruft, und dann in der Adressleiste das Icon erscheint, welches anzeigt, dass auch RSS bereit sthet für diese Seite.

Wie ist dass mit diesem Modul. Das erzeugt bei mir ja nach installation entsprechend der Anleitung eine eigene seite (http://www.erfolgsbeginn.de/existenzgruender-news.html)

Ich hätte es gerne so, dass man nur www.erfolgsbeginn.de aufruft, und dann in der Adressleiste sieht, dass rss angeboten wird. Wie bekomm ich dass hin?
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: RSS Feed Generator

Beitrag von Spider IT » Do 9. Jun 2011, 15:13

Hallo rethus,

das hat nichts mit diesem Modul zu tun, das ist eine Angabe im Head-Bereich der "normalen" HTML-Seite:

Code: Alles auswählen

<link rel="alternate" type="application/rss+xml" href="http://www.erfolgsbeginn.de/existenzgruender-news.html" />
Gruß
René

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: RSS Feed Generator

Beitrag von rethus » Fr 10. Jun 2011, 13:50

Danke für die Info,
also war ich doch nicht auf dem falschen Weg. Ich habe nämlich dies hier in meinem Quelltext:

Code: Alles auswählen

<link rel="alternate" type="application/rss+xml"
   title="RSS für Existenzgründer" href="http://www.erfolgsbeginn.de/existenzgruender-news.html" />
Aber ein RSS-Zeichen wird in keinem Browser angezeigt.
Jemand ne Ahnung woran dass liegt?
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: RSS Feed Generator

Beitrag von Oldperl » Fr 10. Jun 2011, 15:08

Hallo rethus,

evtl. am Zeilenumbruch, wenn der link-Tag wie von dir gepostet im Quelltext steht.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: RSS Feed Generator

Beitrag von rethus » Fr 10. Jun 2011, 15:18

Danke für deinen Rat, aber leider war dass auch nicht die Lösung.

Ich hatte schon überlegt, ob es ggf. ein Link mit .rss und .xml am Ende sein muss. Obwohl ich mir das ehrlich gesagt nicht vorstellen kann.

Da ich ModreWrite benutze wird da aber immer .html angehängt.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

BagHira
Beiträge: 486
Registriert: Do 23. Feb 2006, 19:42
Wohnort: Tirschenreuth / Oberpfalz / Bayern
Kontaktdaten:

Re: RSS Feed Generator

Beitrag von BagHira » Fr 10. Jun 2011, 18:51

Bei mir das gleiche.
In FF4 & IE9 kein RSS-Zeichen beim Opera11.11 dagegen schon.
Auch war das RSS-Zeichen beim FF3.6 noch vorhaben. Zum IE8 kann ich da nichts sagen, da ich den (fast) nicht verwendet habe.
An dem Link hab ich aber nichts verändert:

Code: Alles auswählen

<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.handgewickelte-glasperlen.de/rss/rss-feed.html" />
An ".html" kann es ja nicht liegen, da es funktioniert hatte. :?:
Gruß Holger

Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.

Handgewickelte Glasperlen Facebook Google+

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: RSS Feed Generator

Beitrag von Spider IT » Sa 11. Jun 2011, 01:55

Wenn es funktioniert hat (wie bei mir auch) und sich nur die Browser geändert haben, dann muss man auch dort die Ursache für das veränderte Verhalten suchen.

Gruß
René

BagHira
Beiträge: 486
Registriert: Do 23. Feb 2006, 19:42
Wohnort: Tirschenreuth / Oberpfalz / Bayern
Kontaktdaten:

Re: RSS Feed Generator

Beitrag von BagHira » Sa 11. Jun 2011, 17:14

Servus René,
Spider IT hat geschrieben:Wenn es funktioniert hat (wie bei mir auch) und sich nur die Browser geändert haben, dann muss man auch dort die Ursache für das veränderte Verhalten suchen.
Hab etwas gesucht, beim ff4 & ie9 lässt sich der RSS-Button wiederherstellen:
FF4:
http://www.itrig.de/index.php?/archives ... ieren.html
http://www.itrig.de/index.php?/archives ... ieren.html

IE9:
http://windows.microsoft.com/de-DE/wind ... Explorer-9

Glücklich machen mich die Lösungen aber nicht....
Gruß Holger

Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.

Handgewickelte Glasperlen Facebook Google+

dosenbrot
Beiträge: 102
Registriert: Fr 27. Aug 2004, 15:37
Kontaktdaten:

XML-Verarbeitungsfehler: XML- oder Text-Deklaration...

Beitrag von dosenbrot » Do 11. Aug 2011, 14:01

Hallo!

Es ist zum verrückt werden. Seit einigen Tagen spinnt das Modul bei mir leider und ich habe absolut keine Ahnung warum. Am Modul, Layout und Template sowie deren Einstellungen habe ich nichts verändert.

Folgende Fehlermeldung gibt der Browser aus:

Code: Alles auswählen

XML-Verarbeitungsfehler: XML- oder Text-Deklaration nicht am Beginn der Entität
Adresse: http://www.meinedomain.de/rss/
Zeile Nr. 1, Spalte 5:    <?xml version="1.0" encoding="iso-8859-1" ?>
----^
Mein Modul-Output:

Code: Alles auswählen

<?php
#Includes
cInclude('classes', 'class.article.php');
#cInclude('frontend', 'includes/class.articlerecursive.php');

#Get settings
$rss_cat = "CMS_VALUE[0]";
$rss_include_sub_dirs = ((strlen("CMS_VALUE[17]")) ? true : false);
$rss_sortby = "CMS_VALUE[1]";
$rss_sortorder = "CMS_VALUE[2]";
$rss_include_start_article = ((strlen("CMS_VALUE[3]")) ? true : false);
$rss_title = "CMS_VALUE[4]";
$rss_link = "CMS_VALUE[5]";
$rss_description = "CMS_VALUE[6]";
$rss_language = "CMS_VALUE[7]";
$rss_copyright = "CMS_VALUE[8]";
$rss_image_title = "CMS_VALUE[9]";
$rss_image_url = "CMS_VALUE[10]";
$rss_image_link = "CMS_VALUE[11]";
$rss_managingEditor = "CMS_VALUE[12]";
$rss_webMaster = "CMS_VALUE[13]";
$rss_maxCount = "CMS_VALUE[14]";
$rss_ttl = "CMS_VALUE[15]";
$rss_description_length = "CMS_VALUE[16]";

#Check settings
if ($rss_maxCount == '') {
    $rss_maxCount = 999;
}

if ($rss_description_length=='') {
    $rss_description_length = 200;
}

#Get feed image
if ($rss_image_link != '') {
    if (substr(strtolower($rss_image_link), 0, 7) != 'http://') {
        $rss_image_link = 'http://'.$rss_image_link;
    }
}

if ($rss_image_url != '') {
    $sql = "SELECT * FROM ".$cfg['tab']['upl']." WHERE idupl = ".$rss_image_url;
    $db->query($sql);
    if ($db->next_record()) {
        $rss_image_url = $cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upl']['frontendpath'].$db->f("dirname").$db->f("filename");
        $rss_image_fs = $cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upl']['frontendpath'].$db->f("dirname").$db->f("filename");
    }
}

#Output feed header
header("Content-type: text/xml");
#Get the selected encoding
$sql = 'SELECT l.encoding
        FROM ' . $cfg['sql']['sqlprefix'] . '_clients_lang cl, ' . $cfg['sql']['sqlprefix'] . '_lang l
        WHERE ((cl.idclient=' . $client . ') AND (cl.idlang=' . $lang . '));';
//echo $sql;
$db->query($sql);
$db->next_record();
$encoding = $db->f('encoding');
echo '<?xml version="1.0" encoding="' . $encoding . '" ?>
';
?>
<rss version="2.0">
    <channel>
        <title><?=prepareStringForOutput($rss_title, $encoding)?></title>
        <copyright>© <?=date('Y')?> <?=prepareStringForOutput($rss_copyright, $encoding)?></copyright>
        <link><?=prepareStringForOutput($rss_link, $encoding)?></link>
        <description><?=prepareStringForOutput($rss_description, $encoding)?></description>
        <language><?=prepareStringForOutput($rss_language, $encoding)?></language>
        <lastBuildDate><?=date('D, d M Y H:i:s T')?></lastBuildDate>
        <pubDate><?=date('D, d M Y H:i:s T')?></pubDate>
        <generator>Contenido CMS</generator>
        <managingEditor><?=$rss_managingEditor?></managingEditor>
        <webMaster><?=$rss_webMaster?></webMaster>
        <ttl><?=$rss_ttl?></ttl>
<?php
if (strlen($rss_image_fs)) {
?>
        <image>
            <title><?=prepareStringForOutput($rss_image_title, $encoding)?></title>
<?php
list ($width, $height, $type, $attr) = getimagesize($rss_image_fs);
?>
            <width><?=$width?></width>
            <height><?=$height?></height>
            <url><?=prepareStringForOutput($rss_image_url, $encoding)?></url>
            <link><?=prepareStringForOutput($rss_image_link, $encoding)?></link>
        </image>
<?php
}

#Output articles
if ($rss_cat != '') {
    $list = new getArticleCollection($rss_cat, $rss_include_sub_dirs, $rss_include_start_article, $rss_sortby, $rss_sortorder);
    $count = $list->count;

    if ($count > 0) {
        $aArticleList = array ();
        $aArticleList = $list->articles;
        $aTmpArticleList = array ();
        $index = 1;
        foreach ($aArticleList as $value) {
            if ($index <= $rss_maxCount) {
                $tmp_article = new Article($value, $client, $lang);
                $headline = '';
                $i = 1;
                while (($i<20) && (is_empty($headline))) {
                    $headline = strip_tags($tmp_article->getContent('CMS_HTMLHEAD', $i));
                    $i++;
                }
                    
                $i = 1;
                while (($i<20) && (is_empty($headline))) {
                    $headline = strip_tags($tmp_article->getContent('CMS_TEXT', $i));
                    $i++;
                }
                
                $description = '';
                $i = 1;
                while (($i<20) && (is_empty($description))) {
                    $description = strip_tags($tmp_article->getContent('CMS_HTML', $i));
                    $i++;
                }

                $description = capiStrTrimAfterWord($description, $rss_description_length);

                $pub_date = $tmp_article->getField("created");
                $pub_date = strtotime($pub_date);
                $pub_date = date('r', $pub_date);
                
                if ($headline != '') {
                    $aParams = array('idcat' => $rss_cat, 'idart' => $value, 'client' => $client, 'lang' => $lang);
                    $link = Contenido_Url::getInstance()->build($aParams, true);
?>
        <item>
            <title><?=prepareStringForOutput($headline, $encoding)?></title>
            <link><?=$link?></link>
            <description><![CDATA[<?=prepareStringForOutput($description, $encoding) . ']]> <a href="' . $link . '">' . mi18n("mehr") . '...</a>'?></description>
            <pubDate><?=$pub_date?></pubDate>
<?php
                    $t1 = $cfg["tab"]["art_lang"];
                    $t2 = $cfg["tab"]["phplib_auth_user_md5"];
                    $sql = "SELECT ".$t2.".realname FROM ".$t1." INNER JOIN ".$t2." ON ".$t1.".author = ".$t2.".username WHERE (".$t1.".idart=$value) AND (".$t1.".idlang=$lang)";
                    $db->query($sql);
                    
                    if ($db->next_record()) {
                        $author = prepareStringForOutput($db->f("realname"), $encoding);
                    } else {
                        $author = '';
                    }
?>
            <author><?=$author?></author>
        </item>
<?php
                }
            }
            $index ++;
        }
    }
}
?>
    </channel>
</rss>
<?php

function is_empty($in_str) {
    return (strlen(trim(str_replace('&nbsp;', '', str_replace(chr(13) . chr(10), '', strip_tags($in_str))))) == 0);
}
function prepareStringForOutput($sIn, $sCode = 'ISO-8859-1') {
    $sIn = str_replace('&nbsp;', ' ', $sIn);
    $sIn = str_replace('&nbsp;', ' ', $sIn);
    $sIn = str_replace('&bull;', '-', $sIn);
    $sIn = html_entity_decode($sIn, ENT_COMPAT, $sCode);
    return $sIn;
}
class getArticleCollection {
    var $count;
    var $cnt = 0;
    var $db;
    var $articles;
    
    function getArticleCollection($idcat_start, $inc_subdirs, $inc_startart, $order, $direction) {
        global $cfg, $lang, $client;
        
        $this->tab = $cfg['tab'];
        $this->db = new DB_Contenido;
        
        $sql = 'SELECT
                    A.idcat,
                    A.level,
                    C.name,
                    C.public
                FROM
                    ' . $cfg["tab"]["cat_tree"] . ' AS A,
                    ' . $cfg["tab"]["cat"] . ' AS B,
                    ' . $cfg["tab"]["cat_lang"] . ' AS C
                WHERE
                    A.idcat = B.idcat AND
                    B.idcat = C.idcat AND
                    C.idlang = "' . $lang . '" AND
                    B.idclient = "' . $client . '" AND
                    C.visible = 1
                ORDER BY
                    A.idtree';
        $this->db->query($sql);
        $level = -2;
        if ($idcat_start == "0") {
            $level = -1;
        }
        while ($this->db->next_record()) {
            if ($this->db->f('idcat') == $idcat_start) {
                $level = $this->db->f('level');
            }
            if ($this->db->f('public')) {
                if (($this->db->f('idcat') == $idcat_start) || (($this->db->f('level') > $level) && ($level > -2) && ($inc_subdirs))) {
                    $options = array('idcat' => $this->db->f('idcat'), 'start' => $inc_startart, 'order' => $order, 'direction' => $direction);
                    $list = new ArticleCollection($options);
                    if ($list->count) {
                        $aArticleList = array ();
                        $aArticleList = $list->articles;
                        foreach ($aArticleList as $value) {
                            $tmp_article = new Article($value, $client, $lang);
                            $articles[]['idart'] = $tmp_article->getField('idart');
                            $articles[(count($articles) - 1)][$order] = $tmp_article->getField($order);
                        }
                    }
                } elseif ($level > -2) {
                    break;
                }
            }
        }
        if (is_array($articles)) {
            foreach ($articles as $key => $row) {
                $sort[$key] = $row[$order];
            }
            if ($direction == 'asc') {
                array_multisort($sort, SORT_ASC, $articles);
            } else {
                array_multisort($sort, SORT_DESC, $articles);
            }
            for ($i = 0; $i < count($articles); $i ++) {
                $this->articles[] = $articles[$i]['idart'];
            }
        }
        $this->count = count($this->articles);
    }
}
?>
Die paar Treffer im gesamten Forum mit ähnlicher Fehlermeldung haben mir bisher nicht weitergeholfen. Ich finde auch keine vier Leerzeichen oder ähnliches im Modul oder Layout. Wie gesagt, bis vor kurzem lief alles problemlos.

Wer ist so nett und kann helfen?

Danke und Grüße

dosenbrot
Beiträge: 102
Registriert: Fr 27. Aug 2004, 15:37
Kontaktdaten:

Re: RSS Feed Generator

Beitrag von dosenbrot » Do 11. Aug 2011, 19:44

Mist, hat sich erledigt! :-)
Mein Fehler, es lag an einer Chain, in der vier Leerzeichen dem <? vorangestellt waren... Wie blöd.

Mirco NAJU
Beiträge: 77
Registriert: Sa 30. Mai 2009, 09:11
Kontaktdaten:

Re: RSS Feed Generator

Beitrag von Mirco NAJU » Fr 26. Aug 2011, 10:54

Spider IT hat geschrieben:Moin Mirco,

ich habe mit dem Content Allocation von Contenido noch nichts gemacht (weiß nichtmal wie es funktioniert).
Von daher kann ich in der Richtung auch nichts sagen.
Wenn du mir eine ausgiebige Erklärung liefern kannst (per PN oder Mail) kann ich sicherlich was machen.

Gruß
René
Hallo René,

inzwischen hängt es fast nur noch am RSS-Feed wann wir umsteigen. Daher habe ich mich heute mal dran gesetzt und versucht der Datenbank bei der Auswahl der Kategorien die CA-Categorien statt der Inhaltskategorien zu entlocken.
Nur irgendwie spuckt mir die Datenbank nichts aus :(

in der 2.10er Version habe ich die Kategorienauswahl bei der Eingabe in den Zeilen 65ff lokalisiert.
Hier habe ich versucht die cat-Tabellen durch die Content Allocation-Tabellen pica_alloc pica_alloc_con und pica_lang zu ersetzen. Doch irgendwie klappt bei mir die Anpassung bzw. die entsprechende Kürzung an deine Ausleseroutine nicht :(

idcat hatte ich als idpica_alloc
visible als online
idtree als sortorder

lokalisiert

Content Allocation ist nicht gerade meine Welt - außer dass ich sie allmählich zur Ansteuerung diverser Formate auch im RSS-Bereich dringend bräuchte - SQL allerdings auch nicht.
Daher hoffe ich, dass du durch die Tabellen und deren Verknüpfungen / bzw. Ersetzungen eher durchsteigst als ich.

Grüße

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: RSS Feed Generator

Beitrag von Spider IT » Mo 29. Aug 2011, 12:54

Hallo Mirco,

schick mir doch das Modul (Export) mal per eMail zu, dann schaue ich mir das mal an.
Oder gib mir (per PN) Zugang zu dem System, dann kann ich "vor Ort" nachsehen.

Gruß
René

Gesperrt