Joomla! erweitern/Komponenten/3rd Party/Joomfish/In andere Komponenten integrieren

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

Bitte übersetzen

[Bearbeiten] Voraussetzungen

In diesem Tutorial wollen wir zeigen, wie Ihre selbst erstellen Komponenten mit Joomfish zusammenarbeiten.
Joomfish ist eine Erweiterung für Joomla! mit der Sie Ihren gesamten Joomla! Content per Hand übersetzen können. Dies funktioniert mit allen nativen Joomla! Contents. Wenn Sie jedoch eine eigene Komponente erstellen, müssen Sie selbst noch ein wenig Hand anlegen.

Wir werden die Komponente aus diesem Tutorial als Beispiel nehmen Baustelle:Entwicklung_einer_Model-View-Controller_Komponente_-_Teil_1ToDo final link. Falls Sie das Tutorial bisher noch nicht gelesen haben, ist jetzt ein guter Zeitpunkt. Sie können die Komponente auch einfach herunterladen und installieren.

[Bearbeiten] Erstellen der Content Element XML Datei für Joomfish

Joomfish benutzt XML Dateien zum übersetzen der Inhalte. Diese Content Element XML Dateien befinden sich in Folder blue.png /administrator/components/com_joomfish/contentelements. Sie müssen lediglich eine neue XML Datei erstellen und sie in diesem Verzeichnis speichern, damit Joomfish weiss wie er die Komponente zu übersetzen hat.

Zuerst erstellen Sie eine neue XML Datei in Ihrem bevorzugten Code Editor und speichern Sie diese als File white.png hello.xml im Ordner Folder blue.png contentelements. Es ist wichtig, dass die Datei den gleichen Namen wie die Komponente hat. Da unsere Komponente com_hello heisst, nennen wir die Datei hello.

Die Datei File white.png hello.xml hat folgenden Inhalt:

<?xml version="1.0" ?>
<joomfish type="contentelement">
<name>Hello</name>
<author>Joomla-nafu Team</author>
<version>1.0</version>
<description>Definitionen für die Hello World Komponente</description>
<reference type="content">
    <table name="hello">
        <field type="referenceid" name="id" translate="0">ID</field>
        <field type="titletext" name="greeting" translate="1">Greeting</field>
    </table>
</reference>
</joomfish>

Die ersten 6 Zeilen beinhalten lediglich Informationen für Joomfish. Wir geben die XML Version an, sage Joomfish, dass es sich hierbei um ein neues, zu übersetzendes, Cotent Element handelt, geben den Namen der Komponente an, den Namen des Autors und die Version der Komponente sowie eine kurze Beschreibung.

Innerhalb der <reference> Tags sagen wir Joomfish was zu übersetzen ist. Innerhalb der <table> Tags geben wir die Tabelle an aus der Joomfish übersetzen soll.
In unserem Beispiel benutzt die Hello Komponente eine Tabelle mit namen jos_hello, daher schreiben wir:

<table name="hello">

Innerhalb des <table> Tags haben wir zwei <field> Tags. Der erste besagt, dass unsere Spalte id der primary key ist. Wir setzen translate auf 0 weil es natürlich nicht nötig ist, die id zu übersetzen:

<field type="referenceid" name="id" translate="0">ID</field>

Das nächste Feld ist vom Typ titletext, was Joomfish zwei Dinge mitteilt: 1) das die greeting Spalte in unserer MySQL Tabelle Daten eines einfachen Input Felds enthält 2) das die greeting Spalte als title Feld in der Admin Sektion von benutzt werden soll. Natürlich setzen wir den Namen unserer MySQL Spalte greeting und wir setzen ebenfalls die Eigenschaft auf true.

<field type="titletext" name="greeting" translate="1">Greeting</field>

Um eine Übersicht über die zur Verfügung stehenden Feldtypen zu erhalten (z.B. titletext, text, usw.), lesen Sie bitte das Tutorial über das Erstellen von Content ElementsToDo link.
Unsere Komponente ist jetzt bereit für die Übersetzung mit Joomfish. Wir müssen nun lediglich einige MySQL Queries bearbeiten damit alles funktioniert.

[Bearbeiten] Bearbeiten der MySQL Queries in der hello Komponente

Wenn wir mit Joomfish arbeiten müssen wir immer unser primary field mit angeben, wenn wir einen Query absetzen. Auch wenn wir es in unserer eigentlichen Abfrage nicht benutzen, wir es von Joomfish zur Übersetzung benötigt.

Öffnen sie die Model Datei in Folder blue.png /components/com_hello/models/File white.png hello.php und fiden Sie die folgende Zeile:

$query = 'SELECT greeting FROM #__hello';

Ersetzen Sie diese durch:

$query = 'SELECT * FROM #__hello';

Dadurch wählen wir ebenfalls die id Spalte, die Joomfish zum übersetzen benötigt.

Das wär's !
Begeben Sie sich nun in die Joomfish Admin Sektion und übersetzen Sie die "Greetings" in alle Sprachen die Sie installiert und aktiviert haben.
So einfach ist es.

Bedenken Sie bitte, dass diese Beispielkomponente lediglich die erste Zeile ausgibt.
Wenn Sie alle Zeilen ausgeben möchten, benutzen Sie bitte die Funktion loadAssocList() anstelle von loadResult() in der oben beschriebenen Model Datei. Sie können dann mit Hilfe einer Schleife das rows array in Ihrem view Template ausgeben.

Dieser Artikel basiert auf dem Artikel Adding_Joomfish_functionality_to_custom_components aus der offiziellen Joomla! Dokumentation und steht unter der Joomla! Electronic Documentation License. In der Joomla! Dokumentation ist eine Liste der Autoren verfügbar.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge