Knowledgebase in Drupal

Da bei meinem Nebenjob immer wieder Probleme auftauchen, die dann teilweise sehr zeitintensiv recherchiert werden müssen, dachte ich, ich bau mal eine Wissensdatenbank zusammen, um einmal gefundene Lösungen nicht aus den Augen zu verlieren.

Ich hatte ja überlegt, ob ich mein Webseite auf MODx umstellen soll, aber nachdem dort eigentlich keine Blog Fähigkeiten - jedenfalls keine mit Pingback u.ä. - vorhanden sind, werde ich das wohl sein lassen. Mit MODx jedenfalls hätte ich einen Container angelegt und dort einzelne Seiten als Einträge definiert. Diese hätte man dann mit Ditto und AjaxSearch abgefragt.

Nun aber das Ganze mit Drupal. Am Anfang war mir nicht so richtig klar wie, aber am Ende hat sich das als doch ganz einfach herausgestellt.

Zuerst habe ich einen neuen Inhaltstyp KB Eintrag definiert. Dabei habe ich mittels CCK vier Textfelder: Symptom, Ursache, Lösung und Anmerkungen definiert und das Feld Body bzw. Textkörper deaktiviert.

Mittels pathauto habe ich diesen Inhaltstyp nach kb/ verfrachtet. Man sollte gleich jetzt die Rechte festlegen, wer diesen Inhaltstyp sehen, verändern und löschen darf. Nicht dass man sich hinterher wundert, warum anonyme Benutzer nur die Überschrift sehen können.

Ich hab jetzt noch eine extra Taxonomie erstellt, die übliche Begriffe aus der Datenbank zusammenfasst, sowas wie Windows XP oder so. Diese Taxonomie wird nur für den Inhaltstyp KB Eintrag verwendet.

Man kann jetzt schon KB Einträge erstellen und mit dem richtigen Link abfragen. Nun brauchen wir noch eine Oberfläche dafür, die man mit Views 2 erzeugen kann. Man legt also eine neue View an, die alle Nodes auflistet, nur den Teaser der Nodes und man legt einen Filter an, dass die Inhaltstypen nur KB Eintrag sein soll. Dazu fügt man noch eine Ansicht, die unter kb angesiedelt ist.

Der eigentliche Trick, der mich einige Zeit der Recherche gekostet hat, ist die Suche. Diese besteht bei mir aus zwei Filtern - Suchen: Suchbegriffe und Taxonomie: Begriff - die beide exposed sind, also die der Besucher selbst ändern kann. Diese Filter sind optional, also wenn nichts drin steht, dann zeig alles an.

Das sollte dann so aussehen:

Knowledgebase ViewKnowledgebase View

Nach dem Abspeichern sieht es dann schon fast so aus wie unter fthieme.net/kb. Für den schicken weiterlesen Link, habe ich mit Content Templates die Teaseransicht von KB Eintrag angepasst.

So, alles verbaut, was jede etwas anspruchsvollere Drupalseite hat CCK, Views, Taxonomie und ein wenig Hand an den Quellcode gelegt. ;)

Syndicate content