zeitwerk GmbH
URL:
zeitwerk GmbH
TYPO3
 
webparser

zeitwerk: webparser

EXT:webparser

Die von uns entwickelte TYPO3-Extension webparser ermöglicht es, auf externen Sites liegenden Content gezielt in TYPO3-Sites einzulesen.
Um die Zugriffe auf externe URLs zu reduzieren, steht der Extension ein eigener Cachingmechanismus zur Seite. Die gewonnenen Daten können mit einer an TypoScript angelehnten Beschreibungssyntax umgewandelt und ergänzt werden und mittels einem Frontend-Plugin an beliebige Stellen der Website eingelesen werden.
 

Installation

Sie finden die webparser-Extension auf TYPO3.org zum download. Mit dem Extension Manager kann die Extension wahlweise lokal oder global installiert werden. Da die Extension auf Flexforms aufsetzt, ist keine Erweiterung der tt_content- oder anderer Tabellen nötig, einzig die Tabelle tx_webparser_sheet wird angelegt.
Nach der Installation steht in der Listenansicht des TYPO3-Backends ein neuer Datentyp Webparser-Sheet zur Verfügung. Mit Datensätzen dieses Typs lassen sich  die einzulesenden Daten (auch mehrerer Sites) mit einem einfachen Befehlssatz bestimmen. Es empfiehlt sich, für diese Sheets einen eigenen SysFolder anzulegen, grundsätzlich können die Datensätze jedoch auch innerhalb beliebiger Seiten angelegt werden.
Ausserdem steht nach der Installation ein neues Frontend-Plugin zur Verfügung, mit welchem die gewonnen Daten in Seiten eingebunden werden.
 

Webparser-Sheets

Mit den Webparser-Sheets werden Daten eingelesen, umgeformt und gespeichert. Auch die Reload-Frequenz für das Caching wird über die Sheets definiert.
Um ein neues Webparser-Sheet anzulegen, gehen Sie in die Listenansicht (des entsprechenden SysFolders oder Seite) und wählen Sie "Neuen Datensatz anlegen". In der folgenden Ansicht kann nun "Webparser-Sheet" als Datensatz-Typ ausgewählt werden.
Die Konfiguration des Sheets geschieht in 3 Eingabefeldern.
Das Feld Titel dient der Kennzeichnung des Sheets zur Auswahl im Frontend-Plugin.
In das Feld max. Alter geben Sie die Anzahl Sekunden ein, nach denen die URL erneut eingelesen und ausgewertet werden soll. Bitte beachten Sie, dass unnötig häufige Zugriffe auf externe Sites zu einem erheblichen Datentransfer führen können! Wählen Sie deshalb einen möglichst hohen Sekundenwert.
Im Feld parsercode schliesslich wird die eigentliche Parser-Definition hinterlegt, welche  definiert, welche URLs wie eingelesen werden sollen.
Um Seitencontent zu extrahieren, kann auf 3 Array-Variablen zugegriffen werden:
inp, out und tmp.
Alle Daten im Array out werden in der Flexformstruktur der Extension gespeichert und stehen danach im Frontend-Plugin bereit. Da diese Daten in der TYPO3-DB abgelegt werden, sollte darauf verzichtet werden, unnötig Daten im out-Array abzulegen. Das Array tmp ist primär für split-Funktion gedacht, kann jedoch auch anderweitig verwendet werden.
Die Befehlssyntax lautet immer:
array.variable.funktion = wert
Variablen lassen sich wie in TypoScript beliebig verschachteln, folgendes funktioniert  also:
array {
  var1.funktion = wert
  var2 {
    funktion1 = wert1
    funktion2 = wert2
  }
}
Wir werden den Syntax in der Folge an einem Beispiel erläutern, welches die wichtigsten Funktionen vorstellt:



webparser Frontend-Plugin

Um die geparsten Daten nun in eine TYPO3-Seite einzubinden, binden Sie an an der entsprechenden Stelle ein "Allgemeines Plugin" ein und wählen unter Erweiterung "webparser" aus.
Hier lässt sich nun eines der zuvor angelegten Sheets auswählen und die Ausgabe der Daten über ein (HTML-) Templatefeld konfigurieren. In dieses Feld kann beliebiger Seitencode und Platzhalter stellvertretend für die Daten eingegeben werden. 
Die Contentelemente werden hierbei durch die Variablennamen des out-Arrays repräsentiert, also beispielsweise durch {$titel} fur die out.titel-Variable. Es können beliebig viele Platzhalter eingesetzt werden, die jedoch aus dem selben Sheet stammen müssen.
 
Firefox:Saver,Faster,BetterThunderbird:Reclaim your inboxValid HTML5!Valid CSS!TYPO3 - get.content.rightzeitwerk::webdesign&applications
Impressum | AGB | Privacy | Kontakt   Copyright © 1999-2013 by zeitwerk GmbH