Transformationen

Bemerkung

Sie müssen die Funktion phpMyAdmin-Konfigurationsspeicher für die Verwendung von Transformationen konfiguriert haben.

Einführung

Um Transformationen zu aktivieren, müssen Sie die Tabelle `column_info und die entsprechenden Direktiven einrichten. Wie das geht, entnehmen Sie bitte der Konfiguration.

Sie können den Inhalt jeder Spalte unterschiedlich transformieren. Die Transformation nimmt den Inhalt jeder Spalte und transformiert ihn mit bestimmten Regeln, die in der ausgewählten Transformation definiert sind.

Angenommen, Sie haben eine Spalte ‚Dateiname‘, die einen Dateinamen enthält. Normalerweise würden Sie in phpMyAdmin nur diesen Dateinamen sehen. Mit Hilfe von Transformationen können Sie diesen Dateinamen in einen HTML-Link umwandeln, so dass Sie innerhalb der phpMyAdmin-Struktur auf den Link der Spalte klicken können und die Datei in einem neuen Browserfenster angezeigt wird. Mit Hilfe von Transformationsoptionen können Sie auch Strings angeben, die an einen String oder das Format, in dem die Ausgabe gespeichert werden soll, angehängt/vorangestellt werden.

Für einen allgemeinen Überblick über alle verfügbaren Transformationen und deren Optionen können Sie auf Ihrer <www.Ihr-Host.com>/<Ihr-installations-Verzeichnis>/transformation_overview.php Installation nachlesen.

Eine Anleitung, wie man Transformationen effektiv einsetzt, finden Sie auf der offiziellen phpMyAdmin-Homepage unter Link-Sektion.

Verbrauch

Gehen Sie zu Ihrer tbl_structure.php Seite (z.B. durch Klicken auf den Link ‚Struktur‘ für eine Tabelle). Dort klicken Sie auf „Ändern“ (oder auf das Änderungssymbol) und dort sehen Sie drei neue Felder am Ende der Zeile. Sie heißen ‚MIME-Typ‘, ‚Browser-Transformation‘ und ‚Transformationsoptionen‘.

  • Das Feld ‚MIME-Typ‘ ist ein Dropdown-Feld. Wählen Sie den MIME-Typ aus, der dem Inhalt der Spalte entspricht. Bitte beachten Sie, dass Transformationen inaktiv sind, solange kein MIME-Typ ausgewählt ist.
  • Das Feld ‚Browser-Transformation‘ ist ein Dropdown-Feld. Sie können aus einer hoffentlich wachsenden Anzahl von vordefinierten Transformationen wählen. Siehe unten für Informationen darüber, wie Sie Ihre eigene Transformation erstellen können. Es gibt globale Transformationen und mimetypgebundene Transformationen. Globale Transformationen können für jeden Mimetyp verwendet werden und werden den Mimetyp, wenn nötig, berücksichtigen. Mimetyp-gebundene Transformationen arbeiten in der Regel nur mit einem bestimmten Mimetyp. Es gibt Transformationen, die auf dem Hauptmimetyp arbeiten (wie ‚image‘) und den Subtyp höchstwahrscheinlich berücksichtigen, und solche, die nur auf einem bestimmten Subtyp arbeiten (wie ‚image/jpeg‘). Sie können Transformationen auf Mimetypen verwenden, für die die Funktion nicht definiert wurde. Es gibt keine Sicherheitsüberprüfung für die richtige Transformation, also achten Sie darauf, wie die Ausgabe aussehen wird.
  • Das Feld ‚Transformationsoptionen‘ ist ein freies Textfeld. Hier müssen Sie transform-funktionsspezifische Optionen eingeben. Normalerweise können die Transformationen mit Standardoptionen arbeiten, aber es ist generell empfehlenswert, in der Übersicht nachzuschlagen, welche Optionen notwendig sind. Ähnlich wie bei den ENUM/SET-Feldern müssen Sie mehrere Optionen im Format ‚a‘, ‚b‘, ‚c‘,…. teilen (BEACHTEN SIE DIE FEHLENDEN LEERZEICHEN). Dies liegt daran, dass die Optionen intern als Array geparst werden, wobei der erste Wert das erste Element im Array bleibt, und so weiter. Wenn Sie einen MIME-Zeichensatz angeben wollen, können Sie ihn in den Transformationsoptionen definieren. Sie müssen das außerhalb der vordefinierten Optionen der spezifischen Mime-Transformation als letzten Wert des Sets setzen. Verwenden Sie das Format „‘; charset=XXX‘“. Wenn Sie eine Transformation verwenden, für die Sie 2 Optionen angeben können und einen Zeichensatz anhängen möchten, geben Sie „‚erster Parameter‘,‘zweiter Parameter‘,‘charset=us-ascii‘“ ein. Sie können jedoch die Voreinstellungen für die Parameter verwenden: „‘‚,‘‚‘,‘charset =us-ascii‘“. Die Standardoptionen können mit $cfg['DefaultTransformations'] konfiguriert werden

Dateistruktur

Alle spezifischen Transformationen für Mimetypen werden über Klassendateien im Verzeichnis ‚libraries/classes/Plugins/Transformations/‘ definiert. Jede von ihnen erweitert eine bestimmte abstrakte Transformationsklasse, die in libraries/classes/Plugins/Transformations/Abs deklariert ist.

Sie werden in Dateien gespeichert, um die Anpassung und das Hinzufügen neuer Transformationen zu erleichtern.

Da der Benutzer keine eigenen Mimetypen eingeben kann, wird sichergestellt, dass Transformationen immer funktionieren. Es macht keinen Sinn, eine Transformation auf einen Mimetyp anzuwenden, den die Transformationsfunktion nicht beherrscht.

Es gibt eine Datei namens ‚transformations.lib.php‘, die einige grundlegende Funktionen enthält, die von jeder anderen Transformationsfunktion eingebunden werden können.

Die Dateinamenskonvention lautet [Mimetype]_[Subtype]_[Transformationsname].class.php, während die von ihr erweiterte abtract-Klasse den Namen [Transformationsname]TransformationsPlugin hat. Alle Methoden, die von einem Transformations-Plugin implementiert werden müssen, sind:

  1. getMIMEType() und getMIMESubtype() in der Hauptklasse;
  2. getName(), getInfo() und applyTransformation() in der erweiterten abstrakten Klasse.

Die Methoden getMIMEType(), getMIMESubtype() und getName() geben den Namen des MIME-Typs, des MIME-Subtyps und der Transformation entsprechend zurück. getInfo() gibt die Beschreibung der Transformation und mögliche Optionen zurück, die sie erhalten kann und applyTransformation() ist die Methode, die die eigentliche Arbeit des Transformations-Plugins ausführt.

Bitte beachten Sie die Dateien libraries/classes/Plugins/Transformations/TEMPLATE and libraries/classes/Plugins/Transformations/TEMPLATE_ABSTRACT, um Ihr eigenes Transformations-Plugin hinzuzufügen. Sie können auch ein neues Transformations-Plugin (mit oder ohne die abstrakte Transformationsklasse) erzeugen, indem Sie scripts/transformations_generator_plugin.sh bzw. scripts/transformations_generator_main_class.sh verwenden.

Die Methode applyTransformation() bekommt immer drei Variablen übergeben:

  1. $buffer - Enthält den Text in der Tabellenspalte. Das ist der Text den Sie verändern wollen.
  2. $options - Enthält alle vom Benutzer übergebenen Parameter für die Transformationsfunktion als Array.
  3. $meta - Enthält ein Objekt mit Informationen über die Spalte. Die Daten stammen aus der Ausgabe der Funktion mysql_fetch_field(). Das bedeutet, dass alle Objekteigenschaften, die auf der Handbuchseite beschrieben sind, in dieser Variable verfügbar sind und verwendet werden können, um eine Spalte entsprechend in unsigned/zerofill/not_null/…. Eigenschaften zu transformieren. Die Variable $meta->mimetype enthält den ursprünglichen MIME-Typ der Spalte (z.B. ‚text/plain‘, ‚image/jpeg‘ usw.)