Contao Open Source CMS > Contao-Forum

Zum englischen Forum

Index > Erweiterungen > Module: Multi-RSS-Feeds

Anrakis
User
Avatar
Ich habe ein kleines Modul geschrieben, dass es erlaubt, einen RSS-Feed aus mehreren News-Archiven zu generieren. Die passende Wiki-Seite gibt es hier: http://www.typolight.org/wiki/extensions:multifeeds

Größter Sorgenpunkt momentan: Ich musste die Datei /system/modules/news/dca/tl_news_archive.php abändern, um eine weitere Callback-Methode einzuhängen. Das schmeckt mir eigentlich nicht. Kennt jemand eine Möglichkeit, dass ich meine Callback-Methode einhänge, ohne dass ich die genannte Datei ändern muss? Ich hatte schon folgendes in meiner dca-Datei versucht:

iconCode:
$GLOBALS['TL_DCA']['tl_news_archive']['config']['onsubmit_callback'][] = array('Multifeed', 'generateFeeds');

Leider ohne Erfolg (wird wahrscheinlich dann nachher durch die Definition in tl_news_archive.php einfach überschrieben. Hat hier jemand eine geschicktere Lösung?
2008-03-25 15:58
felixpfeiffer
Partner
Avatar
Beiträge: 830
Hannover, Deutschland
Hallo Anrakis,

evtl. habe ich Dich falsch verstanden, aber du kannst erweiternde dca-Definitionen in der Datei "system/config/dcaconfig.php" einbinden bzw. vom User einbinden lassen.
Damit ist eine updatesichere Erweiterung möglich.

Falls das die Datei ist, die Du schon geändert hast, müsste Leo wohl am ehsten wissen, was da zu machen ist.

Auf jeden Fall Danke für diese durchaus sinnige Erweiterung.

Felix
2008-03-25 16:33
Anrakis
User
Avatar
Hallo. Danke für den Tip. Das wusste ich in der Tat noch nicht. Ich schau mir gleich mal dcaconfig.php an um zu sehen, ob das so funktioniert, wie ich will.

EDIT: Das war es in der Tat. Vielen Dank!!!! Hm, hier fehlt ein "Kuss"-Smiley ;)
Zuletzt bearbeitet von Anrakis, 2008-03-25 16:44
2008-03-25 16:40
felixpfeiffer
Partner
Avatar
Beiträge: 830
Hannover, Deutschland
Hallo,

also, ich bekomme beim ersten Aufrufen des Moduls im backend folgende Fehlermeldung:

iconCode:
Fatal error: Uncaught exception Exception with message Query error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 (SELECT id, jumpTo FROM tl_news_archive WHERE id IN()) thrown in /web/1/000/023/610/53006/htdocs/vocaldente/system/libraries/Database.php on line 502 
#0 /web/1/000/023/610/53006/htdocs/vocaldente/system/modules/multifeeds/Multifeed.php(72): Database_Statement->execute()
#1 /web/1/000/023/610/53006/htdocs/vocaldente/system/modules/multifeeds/Multifeed.php(51): Multifeed->generateFile(Array)
#2 /web/1/000/023/610/53006/htdocs/vocaldente/system/drivers/DC_Table.php(162): Multifeed->generateFeeds(Object(DC_Table))
#3 /web/1/000/023/610/53006/htdocs/vocaldente/system/modules/backend/Backend.php(147): DC_Table->__construct('tl_multifeeds')
#4 /web/1/000/023/610/53006/htdocs/vocaldente/typolight/main.php(99): Backend->getBackendModule('multifeeds')
#5 /web/1/000/023/610/53006/htdocs/vocaldente/typolight/main.php(295): Main->run()
#6 {main}

So genau habe ich mir den Code noch nicht angeschaut, aber irgendetwas stimmt in der SQL-Definition scheinbar nicht.

Ich schaue selbst mal, aber evtl. hast Du da den besseren Überblick.

Felix
2008-03-25 16:46
Anrakis
User
Avatar
War ein Bug mit leeren News-Archiven. Ich habe im Wiki eine neue Version eingestellt. Könntest Du die bitte mal ausprobieren? Danke!
2008-03-25 16:59
felixpfeiffer
Partner
Avatar
Beiträge: 830
Hannover, Deutschland
Hallo,

also, leider immer noch der Fehler.

Das Problemchen, das Array wird in Zeile 67 in jedem Fall erzeugt, also die Abfrage ob die Variable existiert reicht in diesem Fall nicht. Besser ist z.B.:

iconCode:
Zeile 69:

if ($newsArchives[0] == "") {
			return;
		}

Dann klappt es bei mir.

Und, wirklich coole Geschichte.

Felix

PS: Lässt sich das ganze wohl auch auf den Kalender ausweiten??
Zuletzt bearbeitet von felixpfeiffer, 2008-03-25 17:23
2008-03-25 17:21
Anrakis
User
Avatar
Ich habe noch ein neues Bugfix-Release ins Wiki gestellt. Bisher wurde die maximale Anzahl an anzuzeigenden News-Beiträgen leider ignoriert. Das wurde behoben.

Sobald ich wieder etwas Zeit habe, werde ich das auch mal auf den Kalender ausweiten.
2008-03-28 10:55
Tolles modul : = ) werd ich auf jedenfall benutzen nur....

ich habe nach dem erstellen der multifeeds diese fehlermeldung.... obwohl ich die neuste version haben = /

iconCode:
Fatal error: Uncaught exception Exception with message Query error: Unknown column 'start' in 'where clause' (SELECT * FROM tl_news WHERE pid IN(10,7,11,8,6,9) AND published=1 AND (start=1216114902 OR start<1216114902) ORDER BY date DESC LIMIT 0,50) thrown in /www/htdocs/w009ba02/MEINE-WEBSITE/system/libraries/Database.php on line 502

#0 /www/htdocs/w009ba02/MEINE-WEBSITE/system/modules/multifeeds/Multifeed.php(101): Database_Statement->execute(1, 1216114902, 1216114902)
#1 /www/htdocs/w009ba02/MEINE-WEBSITE/system/modules/multifeeds/Multifeed.php(51): Multifeed->generateFile(Array)
#2 /www/htdocs/w009ba02/MEINE-WEBSITE/system/drivers/DC_Table.php(1496): Multifeed->generateFeeds(Object(DC_Table))
#3 /www/htdocs/w009ba02/MEINE-WEBSITE/system/modules/backend/Backend.php(206): DC_Table->edit()
#4 /www/htdocs/w009ba02/MEINE-WEBSITE/typolight/main.php(99): Backend->getBackendModule('multifeeds')
#5 /www/htdocs/w009ba02/MEINE-WEBSITE/typolight/main.php(295): Main->run()
#6 {main}
2008-07-15 11:47
do_while
Partner
Avatar
Beiträge: 655
Berlin, Deutschland
Hallo Norrec,

hast Du mit dem Install Tool nach der Einbindung des Moduls die TL-Datenbank aktualisiert?
Es sieht so aus, als ob nicht alle Felder zur Verfügung stehen.

Gruß, Hagen
Gruß, Hagen
2008-07-15 20:05
install.php wurde aufgerufen und aktualisiert. da steht aber auch nach der aktualisierung das eine tabelle nicht geändert werden konnte...
2008-07-16 10:09
do_while
Partner
Avatar
Beiträge: 655
Berlin, Deutschland
Hallo Norrec,

wenn die Datenbankanbindung sonst funktioniert, liegt es mit ziemlicher Sicherheit an der SQL-Definition für das Modul, Du solltest da vielleicht mal den Autor des Moduls kontaktieren (siehe Wiki).

Gruß, Hagen
Gruß, Hagen
2008-07-16 21:54
Anrakis
User
Avatar
Sorry, dass ich so spät antworte... bin seit Wochen im Dauerstreß :)

Aaaalso, der Fehler lag mal wieder hinter der Tastatur, nämlich bei mir. Ich hatte vergessen eine kleine Anpassung, die ich für unsere Homepage gemacht hatte, aus dem Code herauszunehmen. Ich kann momentan nicht testen, deshalb stelle ich kein neues Bugfix-Release ins Wiki, aber anbei schon mal die Änderung, die den Fehler beheben sollte:

In der Datei Multifeed.php Zeile 94 bitte ersetzen durch:


iconCode:
") AND published=? ORDER BY date DESC");

(bzw. das

iconCode:
 AND (start=? OR start<?)

einfach entfernen).

Das sollte helfen
2008-08-21 16:02
codestorm
User
Avatar
Hallo

Auch mit der Änderung in Zeile 94 erhalte ich weiterhin folgenden Fehler:

iconCode:
Fatal error: Uncaught exception Exception with message Query error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':26:{i:0;s:2:"13";i:1;s:2:"10";i:2;s:2:"14";i:3;s:2:"17";i:4;s:2:"19";i:5;s:2:"1' at line 1 (SELECT id, jumpTo FROM tl_news_archive WHERE id IN(a:26:{i:0;s:2:"13";i:1;s:2:"10";i:2;s:2:"14";i:3;s:2:"17";i:4;s:2:"19";i:5;s:2:"12";i:6;s:2:"23";i:7;s:2:"27";i:8;s:2:"31";i:9;s:1:"2";i:10;s:2:"11";i:11;s:2:"16";i:12;s:2:"18";i:13;s:2:"20";i:14;s:2:"24";i:15;s:2:"28";i:16;s:2:"32";i:17;s:1:"8";i:18;s:2:)) thrown in F:\xampp\htdocs\verein2\system\libraries\Database.php on line 502

#0 F:\xampp\htdocs\verein2\system\modules\multifeeds\Multifeed.php(76): Database_Statement->execute()
#1 F:\xampp\htdocs\verein2\system\modules\multifeeds\Multifeed.php(51): Multifeed->generateFile(Array)
#2 F:\xampp\htdocs\verein2\system\drivers\DC_Table.php(175): Multifeed->generateFeeds(Object(DC_Table))
#3 F:\xampp\htdocs\verein2\system\modules\backend\Backend.php(149): DC_Table->__construct('tl_multifeeds')
#4 F:\xampp\htdocs\verein2\typolight\main.php(99): Backend->getBackendModule('multifeeds')
#5 F:\xampp\htdocs\verein2\typolight\main.php(295): Main->run()
#6 {main}

Hab den Modul-Ordner in /system/modules/ kopiert, die install.php aufgerufen und die DB aktualisiert und die 2 Zeilen in die /system/config/dcaconfig.php eingetragen. Ich konnte auch ein neues Multifeed anlegen, nach "speichern und schließen" kam dann obiger Fehler.

Hat jemand noch ne Idee?

### UPDATE ####

Hab den Fehler gefunden, ich hatte 28 Newsarchive ausgewählt, das DB Feld news_archives war aber nur vom typ varchar (255), der Platz reichte aber nicht aus, somit wurde der String abgeschnitten, ich benötige jetzt ingesamt 384 Zeichen. Ich habe das Feld jetzt von varchar in longtext geändert, nun funktionierts. Vielleicht noch was für die Bugfix-Liste ;)


MfG
Mirko
Zuletzt bearbeitet von codestorm, 2008-10-31 22:45
2008-10-31 22:32
nininho
User
Avatar
Hallo,

ich bräuchte genau dieses Modul. Gibt es das nicht mehr? Der Link zum Repository führt jedenfalls zur Forenübersicht...

Nino
2009-01-29 15:09
manitougs
User
Avatar
Hi

Hast Du die Erweiterung schon irgendwo gefunden? Bin auch auf der Suche danach...

lg mani
Zuletzt bearbeitet von manitougs, 2009-02-09 13:59
2009-02-09 13:58