Die Technik hinter der "Suchmaschine"

Es kommen immer wieder mal Anfragen zur Technik hinter unserer Ehrenamts-Suchmaschine. Auf dieser Seite soll ein Einblick hinter die Kulissen gegeben werden, was da (in etwa) drin steckt.

Die Erläuterungen beziehen sich ausdrücklich nur auf die technische Umsetzung. Die umfangreichen Vorarbeiten - über die generelle Entwicklung des Konzepts; über die zahlreichen Treffen mit den einzelnen Gruppen und Vereinen, um die zahlreichen Möglichkeiten des Engagements aufzulisten; über die mühevolle Arbeit, alle Ehrenämter in sinnvolle Kategorien einzusortieren; über die Schwierigkeiten, diese Kategorien überhaupt erst zu finden - darüber steht hier nichts. Das ist aber mindestens genauso viel Arbeit.

Um es vorweg zu nehmen: Wir können derzeit keine detaillierte Hilfestellung geben, wie Sie für Ihre Gemeinde etwas ähnliches entwickeln können. Die Lösung, die wir hier verwenden, ist ganz speziell zugeschnitten auf das System, das auf unserer Webseite zum Einsatz kommt.

Unser CMS

Als Content-Management-System (CMS) verwenden wir auf dieser Seite Contao. Das ist ein freies System, das bereits viele Features von Haus aus mitbringt (Nachrichten, Kalender, Downloads und einiges mehr). Zusätzlich bietet Contao ein Framework, um eigene Zusatzmodule zu implementieren, von denen wir auch regen Gebrauch machen (intern z.B. für die Verwaltung des Terminkalenders).

Ein besonders mächtiges Zusatzmodul ist Metamodels. Die Besonderheit an diesem Modul ist, dass es keine vorgefertigte Schablone für bestimmte Dateneingaben liefert (wie z.B. ein Nachrichtenmodul mit Attributen wie Überschrift, Teaser, Text und Artikelbild), sondern dass hier beliebige sogenannte Metamodels definiert werden können. 

Darüber kann man auch ohne große Kenntnisse im Bereich Datenbank-Programmierung und SQL-Syntax eine Tabelle "Ehrenamt" in der Datenbank anlegen, die neben den üblichen Spalten (Überschrift, Teaser, Text) auch eher spezielle wie "Kategorie (Spaß an ...)", "Kirchturm", oder "Ansprechpartner" besitzt. Dabei ist "Ansprechpartner" wieder ein Metamodel mit Name, Titel, Telefonnummer, E-Mail-Adresse, Foto und einigen weiteren Attributen. 

Für jedes Metamodel (und für jedes einzelne Attribut innerhalb eines Metamodels) müssen dann Templates definiert werden, wie die in der Datenbank abgelegten Informationen in HTML-Code ausgegeben werden sollen, damit sie auf der Webseite sinnvoll dargestellt werden.

Vorher jedoch müssen die Daten überhaupt erstmal eingeben werden. Sie ahnen es vielleicht schon - auch das Eingabeformular im Backend für die Dateneingabe muss erst konfiguriert werden. Woher soll das System schließlich wissen, wie die Daten eingegeben werden sollen? Also in etwa so wie in dem folgenden Bild?

Und ganz am Ende steht dann die Definition von Filtereinstellungen, in denen man im Frontend der Webseite anklicken kann "Ich habe Spaß an ..." und "ich möchte mich engagieren am Kirchturm ...".

Sie sehen, das ist nicht "mal eben" zusammengeklickt, und dann sind wir noch nicht einmal bei der Formatierung per CSS. Ein einfaches Kopieren unseres Systems ist daher in den meisten Fällen nicht möglich, da die Metamodels fest mit unserer Datenbank verdrahtet sind.

Ja, das sieht furchtbar komplex aus, und ist es auch. Weil das Werkzeug (Metamodels), das hier zum Einsatz kommt, ein sehr, sehr mächtiges und universelles Werkzeug ist, mit dem man "alles" machen kann. Eine Speziallösung, die genau auf diesen Einsatzzweck hier zugeschnitten ist, ist mir aber auch nicht bekannt. 

Aber wir verwenden das an einigen Stellen auf unserer Webseite auch, so dass sich die Mühe durchaus gelohnt hat. So verwenden wir die Suchmaschine eingegebenen "Ansprechpartner" auch auf anderen Teilen unserer Webseite. Wenn sich z.B. eine Telefonnummer ändert, müssen wir sie nur an einer zentralen Stelle im System ändern.

Mögliche Alternativen

  • Vom Prinzip her haben wir hier ein Shopsystem. Mit diesem Einsatzzweck wird auch das Metamodel-Modul beworben. Nur verkaufen wir keine Blu-rays in den Kategorien Action, Fantasy, Komödie und Familie, sondern wir bieten Möglichkeiten des Engagements in verschiedenen Kategorien an.

    Wenn es für das CMS, das Sie verwenden, eine Shopsystem-Erweiterung gibt, könnten Sie damit ggf. etwas vergleichbares erstellen.
  • Einige CMS bieten auch umfangreiche Tag-Systeme an, um Nachrichten oder Termine nach Kategorien zu sortieren. Oft auch mit hübsch animierten Tagwolken oder anderen Spielereien. Auch damit lässt sich etwas vergleichbares aufbauen. Der Nachteil wäre hier, dass man ggf. Daten zu einer Kontaktperson nicht nur einmal eingeben (und pflegen) muss, sondern für jedes Ehrenamt, für das er oder sie sich verantwortlich zeigt.

Wenn Sie gezielte Fragen zur Umsetzung in Contao/Metamodels haben, können Sie sich an unser Administratoren-Team wenden (). Bitte haben Sie Verständnis dafür, dass wir für andere Gemeinden keinen direkten Support (bis hin zur Einrichtung der Suchmaschine überhaupt) leisten können.