Zum Inhalt springen

Typo3 Content über externe Schnittstelle einfügen

Erstellt am 17. Dezember 2003 · 5 Antworten · letzte Antwort am 3. Januar 2004

Tags: Import & Export, Frage

Maxx ·

Hallo,

ich möchte eine Schnittstelle programmieren die es ermöglicht aus anderen Programmen automatisch Content in Typo einzufügen.
Wenn also in einem anderen Programm Informationen erzeugt werden, so sollten diese über die Schnittstelle einfügbar sein.
Das ganze sollte in Java in Verbindung mit XML passieren.

Geht das überhaupt? Und hat jemand schon erfahrung damit?

Danke
Maxx

tmallee ·

Prinzipiell möglich.

Es gibt zwei Möglichkeiten:

1. Dein Tool schreibt direkt in die Typo3 DB, womöglich gleich in die Tabelle tt_content. Dann muss Deine externe App allerdings für die Datenintegrität sorgen!!

2. Dein Tool stellt Daten zur Verfügung (Dateien oder Bytestream) und eine Typo3 Extension sammelt die Daten und stellt sie in einen (separaten) Typo3 Datenbankbereich. Eine entsprechende Frontendapplikation wertet die Daten aus und stellt sie dar.

Letztere Alternative habe ich für den Datenimport von Drittsystemen gewählt. Funktioniert problemlos.

Welches Format Du wählst, ist letzendlich egal. XML klappt genauso gut wie etwa feste Flatfileformate. Deine einlesende Extension muss das Format nur interpretieren können.

Gruss

Thomas

dj.​picasso ·

Hi Maxx,

erst einmal ein Frohes Neues Jahr.

Maxx schrieb

Hallo,
ich möchte eine Schnittstelle programmieren die es ermöglicht aus anderen Programmen automatisch Content in Typo einzufügen.

Nice Idea, erspart viel viel Arbeit.

Maxx schrieb

Wenn also in einem anderen Programm Informationen erzeugt werden, so sollten diese über die Schnittstelle einfügbar sein.
Das ganze sollte in Java in Verbindung mit XML passieren.
Geht das überhaupt? Und hat jemand schon erfahrung damit?

Wie tmallee schon geschrieben, kein Problem. Ist natürlich einiges an Aufwand, jedoch wenn man sich etwas mit der Struktur von Typo3 befasst, geht es sehr schnell... und Ja, ich mache es schon seit geraumer Zeit, jedoch habe ich mir die unterschiedlichsten Skripte in PHP geschrieben.

Du kannst Dir das Ergebnis unter der Domain: www.motorbikes24.com ansehen.
Die gesamte Site wurde zu mehr als 95 % automatisch erstellt, da von vornherein klar war, dass hier einige Seiten zusammenkommen.

Ich habe lediglich eine Applikation, bin jedoch zu faul den gesamten Content etc. alles vollständig händisch einzupflegen. Also mache ich folgendes:
1. Ich nehme eine ASCII-Datei
2. Schmeiße allen Content einfach in die Datei
3. Start mein Skript und das Skript macht folgendes:

3.1. Sortieren des Contents innerhalb der ASCII-Datei (in diesem Zusammenhang arbeite ich vorwiegend mit REGULÄREN AUSDRÜCKEN)
3.2. Erzeugen der notwendigen SQL-Queries
3.3. Erzeugen der Seite in der Tabelle (Pages)
Parallel dazu werden die unterschiedlichen Seiten auch unterschiedliche Templates zugeordnet.
3.4. Erzeugen der Daten für Extension (eigens erstellte Extension)
3.5. Erzeugen des Contents (unterschiedliche Typen wie Tabelle, Text, Überschrift, Text mit Bild) für die erzeugte Seite (in tt_content). Je nachdem welcher Typ erzeugt wird, so werden dementsprechend die notwendigen Tabelleninhalte geschrieben.
(In diesem Zusammenhang gibt es einen großen Vorteil. Ich füge an vielen Stellen ein Standard-Bild ein - immer dasselbe - und durch diese Vorgehensweise wird das Bild nur einmal physikalisch auf dem Server abgelegt und nicht wie normal für den beschriebenen Fall ca. 5000 mal)
3.6. Erzeugen der Inhalte für multilinguale Seiten (One-Tree-Struktur) (pages_language_overlay)
3.7. Erzeugen des multilingualen Inhalte in tt_content
3.8. Durchsuchen der Inhalte auf bestimmte Keywords
3.9. Erstellen der Zugehörigkeiten zur Generierung der Keyword-Menus
(Gerade diese Funktion spart eine seeeehhhrrrrr zeitraubende Suche und Arbeit)
3.10. Sortieren der gesamten angelegten Seiten (alphabetisch in diesem Fall)
3.11. usw. usw.

Es sind noch einige Kleinigkeiten enthalten aber ich glaube das reicht, um zu verdeutlichen, was man alles machen kann.

Unterm Strich habe ich so ca. 20 Skripte mit allen möglichen Funktionen erstellt. Hauptsächlich dienen diese dazu, den Content zu erzeugen, zu sortieren, teilweise Shortcuts (kreuz und quer) zu erzeugen, Datenbankfelder zu kopieren, usw. usw.
Parallel arbeite ich derzeit an einem Skript, was mir die Übersetzung der gesamten Site macht. Ist ungefähr zu 60 - 70 % fertig.

Ich muss jedoch ausdrücklich betonen, dass sämtliche Skripte super funktionieren aufgrund des vorherigen Konzepts für die Site sowie der Art der Site mit ihren Inhalten.
Es ist klar, dass dieses nicht für jede Site so ohne weiteres zu übernehmen ist.

Fazit mit einigen Zeitangaben:
Mittels der Skripte schaffe ich je nach Umfang des Inhalts ungefähr 1.500 - 2.000 Seiten (teilweise sogar mehr) pro Stunde mit allem Zipp und Zapp (also wirklich in mehreren Sprachen, Links, Keyword-Menus, Content, Bilder, Tabellen, Extension, Shortcuts, Sortierungen und und und).
Die Fehlerquote konnte ich mittlerweile auf wenige Promille reduzieren, was die ganze Sache natürlich unglaublich effizient macht. Für dieselbe Menge an Datensätzen und Seiten hätte ich ansonsten mindestens 10 - 12 Monate benötigen. Die Erstellung der Skripte hat alles in allem ca. 1 Woche gedauert.

Wie gesagt die o.g. Site ist nahezu vollständig damit erstellt worden.
Vielleicht mal dazu einige Zahlen:
ca. 10.000 Seiten (jeweils in Deutsch und Englisch)
ca. 30.000 Content-Datensätze
ca. 5.000 Technische Datensätze (jeweils in Deutsch und Englisch)
...

Alles in Allem wurde mit den Skripten ca. 100.000 - 120.000 Datensätze erzeugt.

Geht doch schon, oder?
Caio
Der DJ

dj.​picasso ·

Hi,

ach ja, ich habe eine Sache vergessen.

Da die Skripte natürlich entsprechende Zeit zum abarbeiten der gesamten Codes und Schritte benötigen, habe ich bei meinen lokalen Server das Timeout entsprechend hochgesetzt.
Mein lokaler Server macht dann die gesamte Arbeit und fügt auf dem Internet-Server nur die Daten ein. Dann gibt es keine Probleme und das Timeout auf dem Internet-Server braucht nicht hochgesetzt zu werden.
Ist auch ein Vorteil für denjenigen, der keinen Root-Server hat und somit auch am Timeout nicht rumfummeln kann.

Einmal gestartet läuft so ein Skript teilweise bis zu 45 - 60 Minuten.

Ciao
Der DJ

Unbekannter Benutzer ·

Wow, klingt alles ganz anständig.

Mich würde Interessieren ob es ein Mail-Dingens gibt wo ich Content oder was auch immer als Mail hinschicke und das dann mittels einer Extension in Typo3 eingetragen wird. Währe dies machbar oder gibt es sowas schon ? Hätte den Vorteil das man per Mail Infos schneller und problemloser absenden kann als man einen Online Zugang zur Hand hat. Ich denke da kleiner Datensätze per Palm oder so...

Fände ich Klasse...!

Gruß Olli

dj.​picasso ·

Hi,

machbar ist so etwas bestimmt.

Du müsstest hier einen Cronjob einrichten, der Dir in Abständen ein POP3 oder IMAP Postfach abfragt. Dann die entsprechende Mail "auseinander" nehmen und die Inhalte dementsprechend per Skript einfügen.

Wie gesagt, machbar ist alles, es stellt sich eben immer nur die Frage ob es notwendig ist, oder der Aufwand gerechtfertigt ist.

Ciao
Der DJ