Module für Zikula bauen - So einfach gehts

Module erweitern die Funktionalität Deiner Homepage. Mit Zikula und dem ModuleStudio(MOST) ist das Erstellen eines Moduls einfach und geht schnell von der Hand.

Für einige meiner Homepages wollte ich die Möglichkeit schaffen, bestimmte Begriffe automatisch in Links umwandeln zu lassen.

Also habe ich das Module Autolinks mit dem ModuleStudio geplant, generiert und durch ein wenig eigenen Code in meinem Sinne funktionsfähig gemacht.

Im folgenden möchte ich Dir zeigen, wie das Modell im ModuleStudio aussieht und welchen eigenen Code ich geschrieben habe.


Werbung

q?_encoding=UTF8&ASIN=3836263122&Format=_SL250_&ID=AsinImage&MarketPlace=DE&ServiceVersion=20070822&WS=1&tag=zikula-21&language=de_DE

Autolinks - Eine Entität AutoLink

Die Entität AutoLink hat lediglich 2 Felder, nämlich 'supportedString' für den Begriff, der in einen Link verwandelt werden soll und 'neededLink' für den gewünschten Link.

Beide Felder sind logischer Weise Pflichtfelder.

Wie Du sehen kannst, habe ich bereits einen Eintrag gemacht für Dateien, die markiert werden sollen bei neuerlicher Generierung des Moduls mit dem ModuleStudio.

AutoLinks Einstellungen

FilterHooks aktiviert

In den Einstellungen zur Integration habe ich den Filter Hook Provider aktiviert. Dieser ist für die Funktionalität des Moduls entscheidend. Er macht es möglich, dass Inhalte in Textfeldern anderer Module durchsucht und bei Treffern Begriffe in Links umgewandelt werden.

AutoLinks Einstellungen 2

Anzeigemuster

Als Anzeigemuster ist das erste Feld 'supportedStrings' festgelegt.

AutoLinks Einstellungen 3

Mit diesen Einstellungen habe ich das Modul generiert und in Eclipse angelegt.

Überschreibungen im Filter Hook Provider

Damit das Modul macht was ich von ihm will, war ein wenig eigener Code im Filter Hook Provider notwendig.

In Modulen, die mit dem ModuleStudio generiert werden, finden sich die relevanten Php* Dateien im Ordner 'HookProvider'. Im Ordner selbst befindet sich die Datei 'FilterHooksProvider.php'. Im Unterordner Base befindet sich die Basis-Klasse 'AbstractFilterHooksProvider.php'.

Php und Objekt-Orientierung ermöglichen das Erweitern und Überschreiben von Code.

Die Basis-Klasse läßt sich mit der Datei im Hauptordner überschreiben.

FilterHook 1

Ich erweitere den Constructor, um die Entity Factory Klasse zur Verfügung zu haben. Diese brauche ich, damit ich alle AutoLink Einträge im Modul aus der Datenbank holen kann.

Die Funktion applyFilter habe ich so geändert, dass diese für jeden Eintrag im Modul nach Treffern sucht und den Inhalt entsprechend umschreibt.

2 use Statements stellen sicher, dass ich die benötigten Klassen, also deren Eigenschaften und Methoden, zur Verfügung habe.

FilterHook 2

Services in Sympfony

Zikula nutzt Symfony komplett. Das bedeutet, dass Zikula-Module die Services aus Symfony nutzen.

Die Funktionalität des Hook Providers ist ein solcher Service.

Damit dieser Service die Entity Factory Klasse von AutoLinks nutzen kann, muss sie bekannt gemacht werden. Das erfolgt in diversen YAML Dateien, die im Ordner 'Resources/config' von AutoLinks liegen.

In der Datei hooks.yml füge ich dem filter_hooks.provider service die Entity Factory Klasse hinzu, sodass ich sie nutzen kann.

FilterHook 3

Backend in Autolinks

Ein Eintrag im Backend von Autolinks sieht dann so aus.

FilterHook 4

Alle Vorkommen von '#Banane#' werden in Textfeldern von mit AutoLinks verbundenen Modulen im Frontend in entsprechende Links geändert.

Fazit

AutoLinks ist ein konzeptuell einfaches Modul, mit einer recht komplexen Funktionalität.

Die Planung, Generierung mit dem ModuleStudio und die Ergänzung des Codes hat mich eine halbe Stunde gekostet.

Es ist direkt installierbar und nutzbar. Mit dem ModuleStudio und ein klein wenig Programmiererfahrung ist vieles schnell umsetzbar.

Ein offizieller Release ist bereits vorhanden, Version 1.0.1 in Kürze veröffentlicht.

Projektseite von AutoLinks: https://github.com/Portugao/AutoLinks

Ähnliche Artikel mit entsprechenden Themen


Module mit dem ModuleStudio planen und erstellen
Nachdem ich im letzten Artikel auf das Video Tutorial zur Installation von Zikula 1.4.4 hingewiesen habe,... Mehr
ModuleStudio - Modul planen und erstellen - Teil 2
Im 1. Teil habt ihr erste Schritte zum Erstellen eines Moduls mit dem ModuleStudio kennen gelernt. Nun... Mehr
ModuleStudio - Basiswissen - Felder - String und Text
In 2 Tutorials habe ich anhand eines Beispielmoduls (Erweiterung) damit begonnen, zu zeigen, wie mit... Mehr
ModuleStudio - Basiswissen - Felder - Email und Url
Im 2. Video zu Feldern im ModuleStudio zeige ich die Felder Email und Url. In ein Url-Feld kann z.B.... Mehr

Kategorien

  • ModuleStudio
  • Module

Erstellung und Aktualisierung

Erstellung
Erstellt von michael.ueberschaer am 19.10.2018, 17:20
Letzte Aktualisierung
Aktualisiert von michael.ueberschaer am 30.10.2018, 17:26
Kategorien im Blog
Werbung


Die neuesten Downloads
  • Bootstrap Standard Theme
    Für Zikula 2.0.11 oder höher - For Zikula 2.0.11 or higher. Dieses Theme ist als...
    Mehr lesen
  • Blogging 1.1.0
    Mehrsprachiges Bloggen - Multilingual blogging
    Mehr lesen
  • AutoLinks 1.0.1
    Automatische Linkerstellung - Automatic link creation
    Mehr lesen
  • Content 5.0.2
    Einige neue Features und Bugfixes. Some new features and bugfixes.
    Mehr lesen
  • Deutsche Übersetzung Core
    Dieser Download beinhaltet die deutsche Übersetzung für alle Versionen aus der Reihe...
    Mehr lesen