Für Joomla gibt es unzählige Plugins, Module und Erweiterungen. Wenn die Wünsche zu speziell werden muss man sich irgendwann auch selber mit der Programmierung von Erweiterungen für Joomla befassen. Ich habe Kenntnisse in HTML, CSS, XML und Grundkenntnisse in PHP und Javascript. Was daraus geworden ist lesen Sie in diesem Artikel.
01. Die Wunschvorstellung
Ich bin auf der Suche nach einem Plugin, dass mir unter Angabe eines Suchbegriffs alle Artikel auflistet, bei denen der Suchbegriff im Titel enthalten ist. Ich möchte Artikel zu verschiedenen Themen schreiben und dabei genau steuern welche Artikel als "relevante Artikel" am Ende verlinkt werden. Das Plugin müsste dazu alle Artikelinhalte nach einem vorgegebenen Suchmuster durchsuchen und in einer Liste eventuell unter Berücksichtigung von weiteren Parametern auflisten. Ich stelle mir vor auf diese Art und Weise die interne Verlinkung unter den Artikeln zu vereinfachen und zu automatisieren.
Der Code am Ende eines Artikels sollte ungefähr so aussehen:
ThemaX: Blabla
...
...
Weitere Artikel zum ThemaX:
{ dynlist=ThemaX}
Das Plugin soll eine "dynamische Liste" erstellen. Bei jedem Aufruf des Artikels wird eine aktuelle Liste erscheinen. Der Vorteil liegt zum Beispiel gegenüber dem manuellen Verlinken darin, dass sich nicht ständig das Bearbeitungsdatum des Artikels ändert wenn neue Artikel verlinkt werden müssen. Außerdem ist es auf Dauer viel einfacher...
02. Die Quellen
Zuerst habe ich wie es sich heutzutage gehört meine besten Freund Onkel G. gefragt.
Eine super Quelle für Joomla Erweiterungen sind folgende Websites:
Es gibt dort einige Plugins zum Thema "Verlinkung auf relevante Artikel", aber ich suche nach was anderem. Nach Rücksprache im Forum und einer dankenswerten Hilfestellung hatte ich schonmal einen Start in Form eines Moduls. Das Modul hat allerdings den Nachteil, dass der Suchbegriff fester vorgegeben ist.
Bei der Suche im Internet habe ich ein Openbook über Joomla mit weiteren Tipps gefunden.
03. Versionen / Änderungshistorie
03.01 Die erste Version (1.0)
Nach etlichem Hin- und Herprobieren habe ich ein Plugin was dem entspricht was ich oben beschrieben habe. Die Liste zum Suchbegriff "Joomla" sieht in der Ausgabe der Version 1.0 so aus:
03.02 Version 1.1
In der Version 1.1 des Plugins Dynlist habe ich Parameter eingeführt. Die Parameter können über das Backend "pauschal" eingestellt werden oder per Pipe (|) getrennt vom Suchbegriff einzeln übergeben werden. Die Liste besteht jetzt nicht mehr aus Links und Zeilenumbrüchen, sondern aus Listenelementen (<ul><li></li></ul>), welche mit Hilfe des neuen Parameters "css_class" formatiert werden können.
Fogende Parameter sind möglich:
css_class - Textfeld, wird als class="..." dem <ul> und den <li> Elementen übergeben search_in - Es kann ausgewählt werden ob im Titel (search_in=title), in den Metakeywords (search_in=metakeywords) oder in den Metadaten (search_in=metadata) gesucht werden soll. show_self - Auswahlmöglichkeit ob der Artikel in dem sich der Aufruf des Plugins befindet auch in der Liste angezeigt werden soll (show_self=1) oder nicht (show_self=0)
Zusätzlich gibt es jetzt eine Sprachdatei. Wer diese Sprachdatei übersetzt hat kann mir diese gerne per Mail zusenden. Ich werde die Sprachdatei dann in der nächsten Version integrieren.![]()
Die Ausgabe der Version 1.1 des Plugins sieht so aus:
03.03 Version 1.2
In der Version 1.2 sind einige neue Parameter hinzugekommen. Die wichtigste Änderung ist die Tabellenansicht (Parameter show_as_table=1). Es ist außerdem in der Sprachdatei eine umfangreiche Hilfe eingefügt worde. Und dank eines freundlichen Hinweises wird jetzt auch die Menüitem-ID "durchgereicht".![]()
03.04 Version 1.3
In der Version 1.3 sind wieder ein paar neue Parameter hinzugekommen:
- allabove
- maxitems
- delstring
- orderby
- ordering
04. aktuelle dynamische Liste - Beispiel
Die fünf neuesten Artikel zum Thema Joomla als Tabelle, der aufrufende Artikel wird nicht angezeigt, "Joomla:" soll entfernt werden:
{ dynlist=Joomla|maxitems=5|show_as_table=1|show_self=0|delstring=Joomla:}
| # | Titel | Erstellt | Aktualisiert | Autor |
|---|---|---|---|---|
| 1 | Sitemap für Garyscookbook | 29.03.10 | 29.03.10 | Markus |
| 2 | Joomla | 13.03.10 | 27.03.10 | Markus |
| 3 | Modul Missing Metadata - SEF Patch | 27.02.10 | 27.02.10 | Markus |
| 4 | Links zu verschobenen Beiträgen | 23.02.10 | 23.02.10 | Markus |
| 5 | JA Purity erweitern - Modul im Logobereich | 22.02.10 | 22.02.10 | Markus |
05. Hilfe / Dokumentation
Füge { dynlist=suchbegriff(|parameter=wert)} Zwischen der geschweiften Klammer und "dynlist" darf kein Leerzeichen stehen. Wenn Sie den Code von dieser Seite kopieren müssen Sie das Leerzeichen (kleine Schriftgröße) entfernen. ein um eine dynamische Liste mit freigegebenen Artikeln mit Suchbegriff im Titel zu erhalten. Die Angabe von Parametern ist optional und kann auch global in den Einstellungen des Plugins geändert werden. Direkte Angaben von Parametern überschreiben die globalen Einstellungen im Plugin. Außer im Titel kann auch in den Keywords oder den Metadaten gesucht werden.05.01 Parameter
| Parameter | Funktion | Typ | Beispiel |
|---|---|---|---|
| css_class | Hinzufügen von Klassen bei den Elementen <ul> und <li> bzw. <table> und <tr>. | Text | { dynlist=suchbegriff|css_class=dynlistclass} |
| search_in | Es kann gewählt werden wo gesucht werden soll. Möglich ist Titel('titel'), Keywords('metakeywords'), Metadaten (Joomlaworks SEO Patch,'metadata') oder allabove (alles Vorgenannte). | Text | { dynlist=suchbegriff|search_in=metadata} |
| show_self | Auswahl ob der Link zum aufrufenden Artikel angezeigt werden soll. Mögliche Werte bei direkter Angabe sind 0 oder 1. | boolean | { dynlist=suchbegriff|show_self=0} |
| del_sstring | Auswahl ob der Suchbegriff aus dem Titel als Link entfernt werden soll. Mögliche Werte bei direkter Angabe sind 0 oder 1. | boolean | { dynlist=suchbegriff|del_sstring=1} |
| show_as_table | Auswahl ob die Liste in Tabellenform angezeigt werden soll. Mögliche Werte bei direkter Angabe sind 0 oder 1. | boolean | { dynlist=suchbegriff|show_as_table=1} |
| table_show_numbering | Auswahl ob die Nummerierung in der ersten Spalte der Tabelle angezeigt werden soll. | boolean | { dynlist=suchbegriff|table_show_numbering=1} |
| table_show_created | Auswahl ob in der Tabelle das Erstellungsdatum angezeigt werden soll. Mögliche Werte bei direkter Angabe sind 0 oder 1. | boolean | { dynlist=suchbegriff|table_show_created=1} |
| table_show_modified | Auswahl ob in der Tabelle das Bearbeitungsdatum angezeigt werden soll. Mögliche Werte bei direkter Angabe sind 0 oder 1. | boolean | { dynlist=suchbegriff|table_show_modified=1} |
| table_show_author | Auswahl ob in der Tabelle der Autor angezeigt werden soll. Mögliche Werte bei direkter Angabe sind 0 oder 1. | boolean | { dynlist=suchbegriff|table_show_author=1} |
| maxitems | Anzahl der maximal anzuzeigenden Elemente | integer | { dynlist=suchgebriff|maxitems=5} |
| delstring | Eine Zeichenkette, die aus dem Titel als Linktext entfernt werden soll. Im Beispiel würde "such" aus dem suchbegriff als Linktext entfernt werden. | text | { dynlist=suchbegriff|delstring=such} |
| orderby | Angabe des Sortiermerkmals, Mögliche Werte: modified, created, author | text | { dynlist=suchbegriff|orderby=created} |
| ordering | Angabe der Sortierreihenfolge, mögliche Werte sind: desc und asc | text | { dynlist=suchbegriff|ordering=asc} |


