Als neustes Projekt stelle ich eine eigene Erweiterung vor.
Die Erweiterung liest systematisch Daten aus fremden Seiten aus und trägt sie - aufgeteilt in einzelne Bereiche - in eine Datenbank ein. Die Anforderungen waren vielfältig:
- Sämtliche Sprachen sollten integrierbar sein, daher wurden serverseitige Einstellungen und Template auf UTF-8 umgestellt. Theoretisch ist es nun möglich beispielsweise chinesische und arabische Zeichen auf einer Seite gemeinsam darzustellen. Serverseitig werden alle Sprachen in der gleichen Tabelle gespeichert - mit den richtigen Grundeinstellungen muss auf Zeichensätze nur noch beim (automatisierten) Import Rücksicht genommen werden.
- Datumswerte werden auf den Originalseiten als Text dargestellt, z.B. "Montag, 1. November 2006". Damit die Datumswerte aller Sprachen vergleichbar werden, auch ohne daß man die Sprache beherrscht oder den muslimischen Kalender kennt, wurden beim Datenimport alle Datumswerte in einen Zeitstempel umgerechnet und als Zahl gespeichert (Sekunden seit dem 1.1.1970 00:00). Hierfür wurde eine Funktion integriert, die die Daten aller Sprachen konvertiert.
- Anmerkungen und eigene Formulierungen von Text und Überschriften sind durch Integration weiterer Datenbankfelder möglich. Inwieweit dann die Originaltexte angezeigt werden, wenn eine entsprechende überarbeitete Version vorliegt ist eine optionale Entscheidung.
- Sämtliche Artikel können als komplette Originalversion gespeichert werden. Die gesplittete Version in verschiedene Inhaltsbereiche (z.B. Datum, Version, Hauptinhaltsbereich) kann zusätzlich gespeichert werden. Dadurch ist immer ein Backup vorhanden, auch wenn die Originalseite nicht mehr verfügbar sein sollte.
In welchem Umfang und in welcher Form die Seiten gespeichert werden ist eine zusätzliche optionale Entscheidung. Die Orginialdateien können als einzelne Dateien oder innerhalb der Datenbank abgelegt werden.
Anschließend kann der Inhalt sprachspezifisch angezeigt werden.
Ziel der Erweiterung ist die katalogartige Ansicht fremder Inhalte, die in dieser Form nicht existiert.
Darüber hinaus kann der Inhalt angereichert werden mit Kommentaren, Foren, Multimedia, statistischer Auswertung, etc. um die Themen in erweiterter und abgewandelter Form zur Verfügung zu stellen.
Für einen ersten Eindruck der Erweiterung verweise ich auf meine eigene Seite "Bluescreen" mit Unterseiten.
Sollten Sie Bedarf an einer vergleichbaren Anwendung haben müssen folgende Dinge berücksichtigt werden:
- Die fremden Daten und die Art wie sie in ein Template integriert sind bestimmen die notwendige Programmierung. Je differenzierter HTML-Elemente die Struktur des Inhalts gliedern, desto einfacher ist es den Inhalt in einzelne Datenbankbereiche aufzuteilen.
- Datumsfomate sind abhängig vom System auf dem die Seite generiert wird. Je nach Format ist die Funktion zur Rück-Konvertierung anzupassen. Da jedoch Referenzwerte auf dem auslesenden System als Datei gespeichert werden, reicht das Abändern dieser Referenzwerte.
- Rechtliche Aspekte wie Urheberrecht etc. muss der Kunde klären. Ich biete die Technik an und Missbrauch liegt nicht in meinem Verantwortungsbereich.
- Die denkbaren Einsatzgebiete sind ebenso umfangreich wie die Darstellungsoptionen und die Verknüpfung mit neuen Inhalten. Hier bestimmen Sie als Kunde den Umfang an Nutzen und Aufwand.
Die Darstellung der Inhalte in meinem Beispiel kann als Vorschlag gesehen werden - ist jedoch auch ganz anders realisierbar. - Technisch ist die Erweiterung in verschiedene Module gegliedert: ein Backend-Modul zum Import und zur Darstellung und Verwaltung der gescannten Daten, verschiedene Frontendmodule zur Darstellung der Daten.
Darüber hinaus kann es sinnvoll sein einzelne Wissensbereiche als statische Tabellen in eigene Erweiterung auszulagern. Diese optionale Möglichkeit kann die Weitergabe einzelner Datenbereiche vereinfachen und sollte je nach gescanntem Themengebiet ins Auge gefasst werden. - Die gescannten Seiten müssen zur Zeit bekannt sein. Beim genannten Beispiel reichte eine Nummer und ein Sprachkürzel für jede Seite, um sie eindeutig zu identifizieren. Bei anderen Seiten müssen evtl. ganze Adressen gespeichert werden. Eine automatische Suche nach Seitenadressen ist momentan nicht geplant, kann jedoch programmiert werden, wenn dies sinnvoll erscheint.
- Beim Import ist trotz Automatisierung ggf. Handarbeit notwendig, z.B. wenn nach bestimmten Suchbegriffen Kategorien zugeteilt werden sollen. Solche Aufgaben lassen sich nicht immer zuverlässig programmieren, besonders wenn es um verschiedene Sprachen, um Abkürzungen oder Begriffe geht, die in unterschiedlichem Kontext auftauchen können.
Auch wenn die manuelle Nacharbeit bei großer Seitenanzahl mühsam ist, können Module integriert werden die Daten nach verschiedenen Kriterien sortieren und so einen komfortablen Überblick verschaffen. Die Nacharbeit wird somit einfach und ist somit relativ schnell zu erledigen. - Der Import sollte bei großer Dateianzahl nicht über einen Webserver sondern über einen lokalen PC mit Serverinstallation laufen. Die Leistungskapaziät des Computers wird stark beansprucht und ein Webserver würde normale Seitenanfragen nur noch zögerlich bearbeiten können.
- Bei den von mir gespeicherten Seiten benötigte mein Rechner für jeweils 100 Seiten ca. 70 Minuten.
Insgesamt hatte ich ca. 9000 Seiten in knapp 40 unterschiedlichen Sprachen gespeichert. Damit stehen knapp 800 verschiedene Artikel in jeweils allen verfügbaren Sprachen zur Verfügung.
Bei Interesse an einer Importerweiterung, an einzelnen Funktionen oder anderen Leistungen aus den Bereichen TYPO3 oder Programmierung verwenden Sie bitte das Kontaktformular für eine Anfrage.