Contenido Artikel von "außen" erstellen

Gesperrt
CharlyBrown
Beiträge: 74
Registriert: Sa 13. Feb 2010, 16:07
Kontaktdaten:

Contenido Artikel von "außen" erstellen

Beitrag von CharlyBrown » Mi 21. Aug 2013, 16:29

Hallo NG,

ich möchte Produktdaten aus einer externen MySQL-Datenbank in Contenido bereitstellen. Die Produkte werden über ein anderes System gewartet, welches auf dem gleichen Server läuft.

Nun möchte ich gerne das externe System so erweitern, dass es die Artikel von Contenido generiert. Die Contenido-Kategorien, bzw. Sprachkennzeichen könnten in der externen Software hinterlegt werden.

Welche Contenidotabellen müssen beschrieben werden, damit ein vollständiger Contenido-Artikel entsteht?

Danke schonmal für Eure Hinweise!

Faar
Beiträge: 1497
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Contenido Artikel von "außen" erstellen

Beitrag von Faar » Mi 21. Aug 2013, 17:15

Eigentlich wird es andersherum gemacht:
Die Produktdaten werden mit einem Modul aus der externen Produktdatenbank ausgelesen.
Das Modul knüpft dabei eine Verbindung mit der externen Datenbank und liest einfach alle Produkte aus.
Diese Daten kann man aufbereiten, je nachdem was die externe Tabelle her gibt, sei es Kategorien oder Merkmale oder chronologisch, usw.
Anzeigen kann man das Ganze dann wie bei News oder Sitemap oder mit Tabs.
Jedoch wird das intern mit dem Modul erzeugt und nicht über die Artikelfunktionen von Contenido.
Man kann natürlich das Modul so bauen, dass man z.B. Produktkategorien als Artikel in Contenido vorher anlegt und das Modul dann nur jeweils diese Produktkategorie anzeigt.
Die Daten des Produktes wären bereits ausgelesen und klickt man dann auf ein Produkt, geht quasi eine Seite auf (mit jQuery), die das Produkt genauer anzeigt.

Jedenfalls funktioniert es so und ist sicher einfacher und weniger fehleranfällig, als wenn man von extern in die Contenido Tabellen etwas einträgt.
Den anderen Weg hatte ich noch nie versucht :-)
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

CharlyBrown
Beiträge: 74
Registriert: Sa 13. Feb 2010, 16:07
Kontaktdaten:

Re: Contenido Artikel von "außen" erstellen

Beitrag von CharlyBrown » Do 22. Aug 2013, 07:06

Faar hat geschrieben:Eigentlich wird es andersherum gemacht:
Die Produktdaten werden mit einem Modul aus der externen Produktdatenbank ausgelesen.
Ja, das ist quasi der "Ist-Zustand". Momentan stellt sich die Struktur so dar:

Code: Alles auswählen

Fahrzeuge
	-Neu
	-Gebraucht

In der Unterkategorie "Gebraucht" ist dort ein Artikel angelegt, der genau das macht. Das entsprechende Modul holt über...

Code: Alles auswählen

http://example.org/fahrzeuge/gebraucht/detailseite.html?id=0815
... den Datensatz aus der externen DB den Datensatz und zeigt die Werte an. Klappt auch alles gut.

Aufgrund von SEO-Maßnahmen wird jetzt die Seitenstruktur geändert:

Code: Alles auswählen

Fahrzeuge
	- Hersteller
		- Audi                     (idcat 40)
		- BMW                      (idcat 41)
		- Citroen                  (idcat 42)
		- ...                      (idcat 43)
		- 40 weitere Fahrzeuge     (idcat 44-83)
		- Yhundai                  (idcat 84)
Der URL sieht dann etwa so aus:

Code: Alles auswählen

http://example.org/fahrzeuge/hersteller/audi/typenbezeichnung_id.html
Unter dieser Vorgabe muss der Redakteur für jedes(!) Produkt auf den Unterseiten einen Artikel anlegen. Dort müsste zumindest dann die ID eingetragen werden, mit dem der Datensatz über ein Modul aus der externen DB gelesen werden kann. Bei vielen Fahrzeugen ist das sehr aufwändig und es erfolgen Doppeleingaben in beiden Systemen.

Ergo dachte ich mir, wir verpassen dem Fahrzeug im vorhandenen System des Kunden die Contenido-idcat holen und legen den neuen Artikel auf diese Art und Weise an.

Das ist eigentlich der Hintergrund.

Gruß

Frank

Faar
Beiträge: 1497
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Contenido Artikel von "außen" erstellen

Beitrag von Faar » Do 22. Aug 2013, 10:49

Moin,

im Prinzip könnte der Contenido Redakteur tatsächlich eine Kategorie für jeden Autohersteller anlegen, das ginge vom Aufwand her noch.
Aber spätestens wenn jeder Autotyp noch eine Seite bekommen soll, wirds aufwändig.

Sofern es auf der anderen Seite eine gut eingerichtete Datenbank gibt, kann man das Modul so bauen, dass es sich einfach alle Autos des Herstellers Audi heraus sucht und in dieser Contenido-Seite listet.
Nur klappt das dann nicht mehr so einfach mit dem sprechenden Link.

Aber hier gibt es Möglichkeiten, so wie zum Beispiel das Routing im AMR.
Praktisch könnte man dort den Link-Pfad fahrzeuge/hersteller/audi/typenbezeichnung_id.html auf front_content.php?idcat=x&idart=y?typenbezeichnung_id=z laufen lassen.
Das Modul holt sich aus der Adresse dann typenbezeichnung_id=z heraus und zeigt nur den Typen z an.

Nur doof, dass man das Routing im AMR von Hand eingeben muss und das nicht vorher abgefangen wird.
Aber praktisch könnte das gehen, dass alle Links mit fahrzeuge/ im Pfad auf eine bestimmte Seite mit Modul geroutet (oder gesammelt) werden, in der dann das Modul sich den Pfad mit preg_match() zerhackstückelt und die einzelnen Pfadangaben entsprechend ausgewertet werden und das richtige Auto angezeigt wird.
Das sähe dann so aus: $hersteller = "hersteller"; usw.
Und dann als SQL z.B. so: SELECT * FROM DB2 WHERE hersteller='$hersteller' AND auto='$car' AND typ='$id';
Natürlich dürfte sich im Pfad nichts am Aufbau ändern, es müsste immer gleich sein, damit man es automatisch auswerten könnte.

Praktisch funktioniert das, denn ich hab früher mal öfter sowas gebaut, aber eben in einer nativen Spaghetticode-Umgebung und nicht in einem CMS.
Hier weiß ich nicht, wie das AMR dazwischenfunkt, weil es Links die kein Ziel haben, auf die Errorseite oder die Startseite weiter leitet.
Da müsste Xmurrix was dazu sagen.

VG,
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

CharlyBrown
Beiträge: 74
Registriert: Sa 13. Feb 2010, 16:07
Kontaktdaten:

Re: Contenido Artikel von "außen" erstellen

Beitrag von CharlyBrown » Do 22. Aug 2013, 11:09

Hallo Frank,

danke für Deine Unterstützung.
Faar hat geschrieben:Aber spätestens wenn jeder Autotyp noch eine Seite bekommen soll, wirds aufwändig.
Ja im Grunde benötige ich für jedes Fahrzeug eine eigene Artikelseite. Und das sind ein paar mehr. Der Kunde möchte die definitiv nicht alle händisch anlegen. Ist der Artikel einmal angelegt hätte man auch über die Oberkategorien einfachere Möglichtkeiten (Artikellisten und dergleichen) und bräuchte dort nicht jedesmal händisch SQL verbauen.

Meinen Ursprungsgedanken finde ich eigentlich immer noch sehr charmant.

Gruß

Frank

Gesperrt