TYPO3 Plugin:

xmlinclude

xmlinclude TYPO3 Erweiterung

Eine TYPO3-Erweiterung zum Laden und Transformieren von XML, die in die Datenbank eingefügt wird ein Inhaltselement.

2012-2013 von Sven-S. Porst <http://earthlingsoft.net/ssp/>, SUB Göttingen <http://www.sub.uni-goettingen.de> < porst@sub.uni-goettingen.de <mailto:porst@sub.uni-goettingen.de?subject=xmlinclude%20TYPO3%20Erweiterung> _\ > >

Wenn Sie Fragen oder Anmerkungen haben, senden Sie uns bitte Kommentare oder tragen Sie dazu bei verbesserungen. Du kannst das Repository der Extension?s unter github <https://github.com/subugoe/xmlinclude> _.

Anforderungen

Um diese Erweiterung auszuführen, benötigen Sie:

  • TYPO3 ? 6.2.0

Beschreibung

Diese Erweiterung ermöglicht die Einbindung von Remote-XML-Inhalten in TYPO3 inhaltselemente. Dies geschieht in einem 3-stufigen Prozess:

  1. Holen der Daten

Die Basis-URL-Daten, von denen abgerufen wird, können im Plug-In?s FlexForm eingestellt werden. Die dort angegebene URL kann auf zwei Arten geändert werden:

  1. ein im Parameter tx_xmlinclude_xmlinclude_xmlinclude[URL] angegebener Pfad ist an die Basis-URL angehängt; bei Verwendung mit RealURL <#realurl> _dieser kann an den Pfad der Seite angehängt werden?
  2. parameter, die in der Datei plugin.tx_xmlinclude.settings.URLParameter gesetzt sind TypoScript-Array wird in die vorhandenen Parameter des URL

Standardmäßig schlägt das Abrufen der Datei fehl, wenn sie nicht als XML geparst werden kann. In falls Sie Nicht-XML-Dateien wie z.B. defektes HTML oder JSON abrufen möchten, können Sie Folgendes tun konfigurieren Sie <#Konfiguration> _ einen nachsichtigeren oder anderen Parsing-Modus.

Wenn ein Leerzeichen angegeben wird, wird keine URL angegeben, es werden keine Daten geladen und die XSL-Verarbeitung wird ausgeführt begann mit einem Dokument, das nur einen "xmlinclude-root"-Knoten enthielt.

  1. Transformieren des XML

Nach dem Lesen und Parsen der Daten können diese durch XSL transformiert werden stylesheets. Pfade zu diesen Stylesheets werden in der Datei plugin.tx_xmlinclude.settings.XSL TypoScript-Array. Die Stylesheets werden in der Reihenfolge der Schlüssel im Array angewendet werden.

Ein Szenario, für das dies gut funktioniert, ist folgendes: eine XHTML-Webseite sie können ein Stylesheet liefern, das den Inhalt, der Sie sind, extrahiert interessiert und entfernt den Rest. Dann kannst du einen anderen beantragen stylesheet, das die Links innerhalb des XHTML in Links umwandelt, die auf Links verweisen auf Ihrer TYPO3-Seite. Auf diese Weise können Sie andere Webressourcen in den design und Kontext Ihrer Website.

Eine Möglichkeit, zusätzliches XML zu analysieren, das vom Benutzer in einem formularfeld wird als XSL-Funktion bereitgestellt. Es heißt wie folgt php:function('XmlUtility::parseXML', string($xml-string)))

  1. Fügen Sie das transformierte XML in die Webseite ein

Das xmlinclude Inhaltselement erzeugt ein div.xmlinclude und setzt die transformiertes XML darin. Für den Fall, dass es während der gesamten Laufzeit Fehler gab konvertierung h4.error und p.error Elemente werden an der Position anfang dieses div, um das Problem anzuzeigen.

Verwendung

  • Fügen Sie das Inhaltselement "Include XML" in Ihre Seite ein
  • Legen Sie die Start-URL für Ihre Seite fest
  • Fügen Sie die Vorlage "xmlinclude Einstellungen" zu Ihrer Seite hinzu
  • (falls erforderlich) Anpassung der TypoScript-Einstellungen für XSL-Konvertierung, CSS oder JavaScript

Konfiguration

Eine Reihe von Einstellungen kann mit TypoScript-Werten im Inneren angepasst werden plugin.tx_xmlinclude.settings:

  • parser[xml]...: Der verwendete Parse-Typ. Zulässige Einstellungen sind xml für korrektes XML-Parsing, html für unzuverlässiges HTML-Parsing was Fehler toleriert und json für JSON-Parsing, gefolgt von einem konvertierung in ein XML-Dokument.
  • XSL [{50 = EXT:xmlinclude/Ressourcen/Private/XSL/rewrite-urls.xsl}\ \ ]: Array von Pfaden von Stylesheets, die auf das heruntergeladene XML angewendet werden. Nachfolgend finden Sie eine Beschreibung des Stylesheets, das in der Standardeinstellung verwendet wird einstellung. Alle in TypoScript gesetzten Werte werden an die Datei stylesheet als XSL-Parameter.
  • URLParameter [{ {}\ \ ]: Reihe von Parametern, die hinzugefügt werden zu die URL der Anfrage. Zum Beispiel könnten Sie Folgendes einstellen plugin.tx_xmlinclude.settings.URLParameters.format = XML wenn das service, den Sie lesen, benötigt einen format=XML-Parameter, der zur Bereitstellung von XML-Format.
  • headCSS [{ {}\ \ ]: Array von Pfaden oder URLs von CSS-Dateien, die sollte im Kopf der Seite?s mit Style-Tags eingebunden werden.
  • headJavaScript [{ {}\ \ ]: Array von Pfaden oder URLs von Stylesheets die mit Hilfe von Skript-Tags in den Kopf der Seite?s aufgenommen werden sollen.
  • rewriteOnClass [rewrite-on\ ]: Zeichenkette mit einem verwendeten Klassennamen im Standard-Stylesheet, um ein Tag zu erkennen, dessen Verknüpfung unbedingt sein muss umgeschrieben.
  • rewriteOffClass[rewrite-off]: Zeichenkette mit einem Klassennamen wird vom Standard-Stylesheet verwendet, um Tags zu erkennen, deren Verknüpfungen nicht erlaubt sind neu geschrieben werden.
  • cookiePassthrough [\ \ ]: Liste der Zeichenketten. Cookies mit denen namen werden zwischen der Verbindung zum Laden der XML-Datei und dem verbindung zum Browser.
  • cookiePath [... \ \ ]: Zeichenkette. Wenn . die aktuelle TYPO3-Seite?s pfad wird für das Cookie verwendet. Wenn auf eine Zeichenkette gesetzt, wird diese Zeichenkette verwendet für den Cookie-Pfad.
  • benutzeRealURL [0\ ]: Verwenden Sie RealURL, um URLs an die Erweiterung zu übergeben. Lesen Sie den Abschnitt über RealURL für weitere Anweisungen.

Das Standard-Stylesheet rewrite-urls.xsl wird neu geschrieben

Das Stylesheet rewrite-urls.xsl wird in die XSL-Verarbeitung aufgenommen von standard. Es wird erwartet, XHTML zu finden (mit dem http://www.w3.org/1999/xhtml namensraum) oder nicht benannter Inhalt in dem XML, das er empfängt und verarbeiten wird schreibt die URLs für a, form, img, script und link neu tags auf verschiedene Weise:

  • URLs für a- und form-Tags:

    • werden neu geschrieben, um durch TYPO3 zu gehen, wenn sie es sind

      • ohne ein Zielattribut UND
      • nicht mit dem in der rewriteOffClass eingestellten Klassennamen markiert TypoScript-Variable[standardmäßig neu beschreibbar] UND
      • relative Links ODER http(s)-Links, deren Hostname gleich dem Namen des Hosts ist unsere Zielseite?s
    • nicht neu geschrieben werden, um TYPO3 zu durchlaufen, wenn sie

      • die obigen Bedingungen nicht erfüllen ODER
      • mit der in der rewriteOffClass eingestellten Klasse gekennzeichnet sind TypoScript-Variable[Standardwert für die Neuschreibung]
  • URLs in img, Link und Script-Tags werden mit dem Zusatz inhalt der Basis-URL, um absolute Links zu erstellen. Die baseURL ist die über die baseURL-Einstellung sowie den Inhalt von html/head/base/@href, falls vorhanden.

XSL-Parameter

An jede XSL, die standardmäßig aufgerufen wird, werden eine Reihe von Parametern übergeben:

  • argument-*: Argumente, die an die Erweiterung xmlinclude übergeben wurden, mit name, wobei * eine durch Bindestrich getrennte Liste der Schlüsselhierarchie ist (z.B. tx_xmlinclude_xmlinclude[formParameter][xml] wird übergeben als argument-formParameters-xml)
  • einstellung*: TypoScript-Einstellungen in plugin.tx_xmlinclude.settings. wobei * ein Bindestrich getrennt ist liste der Schlüsselhierarchie
  • fullPageURL: die vollständige URL der Seite ohne Parameter
  • basePageURL: die URL der aktuellen Basisseite (RealURL entspricht der URL der aktuellen Basisseite) zur Seiten-ID)
  • hostName: der Hostname in der basePageURL
  • sitePath: vollständiger Pfad zum Ordner site?s in der host?s-Datei system (kann nützlich sein, um externe Dateien von XSL zu laden)
  • custom: alle Parameter, die unter plugin.tx_xmlinclude.settings.XSLParameter

RealURL

Sie können RealURL verwenden, um den Pfad auf der Fernbedienung transparent einzubinden server in die URLs auf Ihrer Website ein. Das ist etwas ungewöhnlich, da wir es brauchen einen vollständigen Pfad durch RealURL übergeben, der normalerweise den Pfad aufteilt komponenten. Um das zu beheben, verwendet dieses Setup den gesamten verbleibenden Pfad komponenten und kann zu Problemen führen, wenn andere Erweiterungen ihre Funktionalität erweitern auch die Pfadkomponenten neu geschrieben.

Um die RealURL-Unterstützung zu nutzen, schalten Sie sie zunächst in TypoScript mit:

::

plugin.tx_xmlinclude.settings.useRealURL = 1

Fügen Sie dann das folgende Array zu den (oder einem relevanten) fixedPostVars hinzu eingabe Ihrer RealURL-Konfiguration (z.B. $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['fixedPostVars']):

::

array (
    xmlinclude' => Array ("xmlinclude")
        array(
            GETvar' =>'tx_xmlinclude_xmlinclude_xmlinclude[URL]',
            userFunc' =>'EXT:xmlinclude/Klassen/RealURL/tx_xmlinclude_realurl.php:&tx_xmlinclude_realurl->main'
        )
    ),
    2' =>' xmlinclude',
)

Dadurch wird ein Setup xmlinclude erstellt, das nur auf der Seiten-ID 2 verwendet wird. Hinzufügen weitere Linien

::

    '3' => 'xmlinclude',
    '73' => 'xmlinclude',
    ?

um das gleiche Umschreiben für die Seiten-IDs 3, 73, ? zu ermöglichen.

Versionshistorie

2.0.1 (2013-07-30):

  • behebt bug beim Laden der Datei:/// URLs 2.0.0 (2013-03-08):
  • unterstützt das Parsen von JSON (Konvertieren in XML)
  • ausgabe als HTML statt XML
  • ermöglichen die Nutzung ohne Laden externer Daten, die nur über XSL gesteuert werden
  • ersetzen Sie die TypoScript-Einstellung "parseAsHTML" durch "parser": dies kann bestehende Konfigurationen beschädigen
  • xSL-Parameter umbenennen: Präfixargumente mit "argument-" und Einstellungen mit "setting-": dies kann bestehende Stylesheets beschädigen
  • Übergabe des vollständigen Dateisystempfades an die Site als Parameter
  • xML-Parsing als XSL-Funktion bereitstellen
  • verwenden Sie Fluid, um debug-Nachrichten anzuzeigen
  • hinzufügen-Symbol
  • dokumentation in ReST konvertieren
  • falsche StarOffice Handbuchdatei hinzufügen 1.2.0 (2012-11-21):
  • längere URLs in FlexForm erlauben
  • behebt das Problem mit falsch eingefügten Schrägstrichen beim Umschreiben von URLs 1.1.0 (2012-09-24):
  • cookie-Pfad konfigurierbar machen
  • verbesserung der RealURL-Unterstützung
  • weniger überflüssige Schrägstriche nach dem Umschreiben von urls.xsl
  • nicht von der eingespeisten Verlängerung abhängig sind 1.0.0 (2012-05-02):
  • verbesserung der RealURL-Unterstützung
  • feste Konfiguration
  • uRLs verbessern
  • nennen es 1.0 0.9.3 (2012-03-12):
  • verbesserung des URL-Rewritings
  • beinhalten die Einrichtung für RealURL 0.9.2 (2012-03-08):
  • cookie-Handling hinzufügen
  • formularbehandlung für GET und POST hinzufügen
  • arbeit um Codierungsprobleme für HTML-Inhalte herum 0.9.1 (2012-03-07):
  • probleme mit HTML vs. XML-Parsing ausbügeln 0.9.0 (2012-03-01):
  • erste Beta

Lizenz

MIT Lizenz, um die Menschen glücklich zu machen, die es brauchen.

Copyright (C) 2012-2013 by Sven-S. Porst

Die Erlaubnis wird hiermit unentgeltlich jeder Person erteilt, die einen kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software"), um mit der Software ohne Einschränkung zu handeln, einschließlich ohne Einschränkung die Rechte zur Nutzung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, kopien der Software zu verteilen, unterzulizenzieren und/oder zu verkaufen, und um personen, denen die Software zur Verfügung gestellt wird, dies zu gestatten, vorbehaltlich der folgenden Bestimmungen die folgenden Bedingungen:

Der obige Urheberrechtshinweis und dieser Genehmigungshinweis sind beizufügen in allen Kopien oder wesentlichen Teilen der Software.

DIE SOFTWARE WIRD "WIE BESEHEN", OHNE JEGLICHE GEWÄHRLEISTUNG, AUSDRÜCKLICH ZUR VERFÜGUNG GESTELLT ODER IMPLIZIT, EINSCHLIEßLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN VON MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR IRGENDWELCHE ANSPRUCH, SCHADENERSATZ ODER ANDERE HAFTUNG, SEI ES AUFGRUND EINER VERTRAGSHANDLUNG, UNERLAUBTE HANDLUNG ODER ANDERWEITIG, DIE SICH AUS, AUS ODER IN VERBINDUNG MIT DEM SOFTWARE ODER DIE NUTZUNG ODER ANDERE GESCHÄFTE IN DER SOFTWARE.

Lizenz für die Klasse Array2XML.php

Diese Erweiterung beinhaltet die Array2XML <http://www.lalit.org/lab/convert-php-array-to-xml-with-attributes/>> PHP-Klasse von Lalit Patel. Es steht unter der Apache Lizenz, Version 2.0 <http://www.apache.org/licenses/LICENSE-2.0>.

Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.