Seite 1 von 1

News über RSS automatisiert ins System einlesen

Verfasst: So 9. Nov 2008, 16:16
von Tom Quenten
Hallo Ihr Lieben,

ich habe eine eventuell ungewöhnliche Frage diesesmal.
Ich beschäftige mich seit einiger Zeit mit einem ganz interessanten Thema. Ich möchte über RSS Schnittstellen News von ausserhalb in das Contenido System einspielen, also OHNE das Backend. Dieser Schritt ist für die Automatisierung auch erforderlich.

Die News werden mir als Array übermittelt. In dem Array sind fest definierte Variablen. Nun hatte ich mir mal das Datenbankmodell von Contenido angeschaut und ein bissel probiert. Zum Teil gelingt mir mein Vorhaben auch. Ich beschreibe mal detailliert wie ich das bisher angegangen bin.

Hier mal zum besseren Verständnis meine bisherigen MySQL Querys.

Code: Alles auswählen

SELECT			MAX(idcatart) max_idcatart,
				MAX(idart) max_idart
FROM			cms_cat_art

$idcatart = bcadd($db1->f("max_idcatart"),1);
$idart = bcadd($db1->f("max_idart"),1);

//zuweisung artikel id zu categorie id
//idart -> key to -> cms_art.idart sowie -> cms_art_lang.idart
INSERT INTO	cms_cat_art
SET				idcatart			=	'".$idcatart."',
				idcat				=	'189',
				idart				=	'".$idart."',
				is_start			=	'0',
				status				=	'0',
				author				=	'',
				created			=	'".date("Y-m-d H:i:s", time())."',
				lastmodified		=	'0000-00-00 00:00:00',
				createcode			=	''

//zuweisung artikel id zu client id
INSERT INTO	cms_art
SET				idart				=	'".$idart."',
				idclient			=	'5'

//ermitteln der höchsten id
SELECT			MAX(idartlang) max_idartlang
FROM			cms_art_lang

$idart_lang = bcadd($db2->f("max_idartlang"),1);

//artikel erstellen
INSERT INTO	cms_art_lang
SET				idartlang			=	'".$idart_lang."',
				idart				=	'".$idart."',
				idlang				=	'6',
				idtplcfg			=	'1275',
				title				=	'".$newscontent[$key][header]."',
				pagetitle			=	'".$newscontent[$key][header]."',
				summary			=	'',
				artspec			=	'',
				created			=	'".date("Y-m-d h:i:s", time())."',
				lastmodified		=	'0000-00-00 00:00:00',
				author				=	'sys',
				modifiedby			=	'',
				published			=	'".date("Y-m-d h:i:s", time())."',
				publishedby		=	'sys',
				online				=	'1',
				redirect			=	'0',
				redirect_url		=	'',
				artsort			=	'".date("Ymdhis", time()).$key."',
				timemgmt			=	'',
				datestart			=	'0000-00-00 00:00:00',
				dateend			=	'0000-00-00 00:00:00',
				status				=	'0',
				free_use_01		=	'',
				free_use_02		=	'',
				free_use_03		=	'',
				time_move_cat		=	'',
				time_target_cat	=	'',
				time_online_move	=	'',
				external_redirect	=	'',
				locked				=	''
Der Quellcode ist noch in der Probierphase, bitte nicht wundern das dort teilweise feste Werte drin stehen!

Das Resultat ist, das der Artikel zwar im Backend erkennbar ist, der eigentlich Content jedoch nicht. Eventuell habe ich auch schon eine Idee woran es liegen könnte. Wenn ich mit Hand einen neuen Artikel anlege muss ich in der Konfiguration (Template auswählen) explizit den OK Button drücken, erst dann werden die Einstellungen auch in der DB gespeichert. Vorher würde er nur die Standardkonfiguration aus der Categorie laden. So und nun hörts bei mir leider auf wie ich hier jetzt weiter verfahren kann.

Ich hoffe ich konnte mich verständlich ausdrücken. Wäre für Tipps äußerst Dankbar!


tomquenten

Verfasst: Do 13. Nov 2008, 10:34
von emergence
ähm content wird an sich direkt in der tabelle con_content hinterlegt (verknüpft mit einem con_type und der idartlang)...

tipp:
eine neue id für einen eintrag -> $db->nextid(tablename)

Verfasst: Mo 17. Nov 2008, 23:20
von Tom Quenten
hallo emergence,

danke für die tipps, da werde ich mich mal die nächsten tage ransetzen. ich hoffe doch mal das es noch mehr interessenten gibt für so ein modul....ich finde das jedenfalls sehr prickelnd. :-)

beste grüsse
tomquenten

Verfasst: Fr 28. Nov 2008, 18:38
von Tom Quenten
hallo emergence,

sag mal gibt es bereits methoden in dem objekt $db womit ich das in die entsprechenden tabellen gleich einfügen kann, ich also praktisch nur nach den value übergebe?

beste grüsse
tomquenten

Verfasst: Sa 29. Nov 2008, 12:13
von Oldperl
Hallo Tom,

nein, gibt es nicht. Es gibt die 2 Klassen Article und ArticleCollection, aber dort ist keine store-Funktion implementiert.
Soviel ich weiß gibt es zum speichern noch eine Funktion, ich weiß nur grad nicht wo die ist und welche Parameter sie hat. Versuch dir mal die API-Doc zu beschaffen und dort nachzuschauen.

Gruß aus Franken

Ortwin