cziehr
Hallo,
ich habe mal wieder ein spezielles Problem für mein Feuerwehr-Wiki. "Eigentlich" geht es nur darum eine bestehende Datenbank in das Wiki zu integrieren, was ich mithilfe des data-Plugins bewerkstelligen wollte.
In der Datenbank gibt es eine Tabelle mit Objekten (Gebäuden), in welchen mit Gefahrstoffen umgegangen wird. In einer zweiten Tabelle sind alle verschiedenen Gefahrstoffe aufgeführt, die über die ID des Objekts mit diesem verknüpft sind, sodass man sich über eine Datenbankabfrage alle Gefahrstoffe anzeigen lassen kann, mit denen in einem Objekt umgegangen wird.
Diese Struktur mit dem data-Plugin abzubilden ist machbar, ich würde einfach ein Skript programmieren was die Inhalte der Datenbank in Wiki-Seiten schreibt, sodass das data-Plugin damit umgehen kann. Dazu würde ich für jedes Objekt und für jeden Gefahrstoff jeweils eine Wiki-Seite anlegen. Auf der Wiki-Seite des Objekts (ich würde die Objekt-ID als Seitennamen verwenden) würde ich einfach eine Tabelle des data-Plugins ausgeben, welche alle Gefahrstoffe listet die die Referenz-ID für das Objekt besitzen. Insgesamt wäre das also eigentlich kein Problem.
Was mir nun ein bisschen Kopfzerbrechen bereitet ist folgendes:
Es gibt zwei verschiedene Benutzergruppen, die mit den Daten arbeiten sollen:
1. Die Kollegen, die die Daten pflegen (das werden im Ende maximal eine Hand voll sein)
2. Die Feuerwehr-Einsatzkräfte im Einsatz
Für die zweite Gruppe steht im Vordergrund, die Bedienung möglichst einfach zu gestalten und die ausgegebenen Daten auf ein Minimum zu beschränken um die Übersichtlichkeit zu waren und nicht mit unwichtigen Daten zu verwirren.
Die erste Gruppe braucht zusätzliche Felder für die Dateneingabe, z.B. zum Eintragen der Genehmigungs-Nummer für den Gefahrstoff, wann der Betrieb das letzte Mal auf Einhaltung der Sicherheitsvorschriften kontrolliert wurde, etc., die aber natürlich für die Einsatzkräfte nicht von Belang sind.
Man kann einen Eintrag des data-Plugins ja mit CSS-Klassen belegen und mit CSS nicht benötigte Felder ausblenden. Das würde ja aber wieder alle Nutzer betreffen.
Meine spontane Idee wäre jetzt gewesen, die normalerweise nicht benötigten Felder standardmäßig auszublenden. Wenn ein bestimmter Benutzer eingeloggt ist, wird eine zusätzliche CSS-Datei geladen, welche die Vorgaben überschreibt und die "Spezialfelder" wieder einblendet. Mit den DokuWiki-Standardfunktionen wird das ja wahrscheinlich nicht funktionieren und ein paar Quelltext-Änderungen erfordern, aber das wäre kein Problem, dann würde ich die halt nach jedem Upgrade von Hand wieder nachtragen.
Mein Ansatz dafür wäre, als letzten Eintrag nach dem CSS-Datei-Einbinden im Seitenkopf eine PHP-Abfrage zu machen welcher User angemeldet ist, und wenn es sich um den Benutzer X, Y oder Z handelt, dann binde ich die zusätzliche CSS-Datei ein welche die Felder wieder einblendet.
Hat ansonsten vielleicht noch jemand eine bessere Idee für diese Umsetzung? Mit DokuWiki kenne ich mich ja mittlerweile eigentlich ganz gut aus, aber vielleicht gibt es einen "data-Plugin-Crack" der mit ein paar Tips dienen kann?
Viele Grüße,
Christoph
virk
Folgende erste grobe Idee:
- Benutze auch das bureaucracy-plugin
- a) Rufe bureaucracy so auf: action template wiki:templates:kollegen_tpl "projekte:6300:feuerwehr:einsatz::@@documentnr@@" oder
- b) Rufe bureaucracy so auf: action template wiki:templates:feuerwehr_tpl "projekte:6300:feuerwehr:einsatz::@@documentnr@@"
template bei a) sei vollständig und ermöglicht den Eintrag aller Daten.
template bei b) sei eingeschränkt und lässt einen nur einige Daten eintragen.
Du müsstest jetzt den Zugriff auf den bureaucracy-Aufruf regeln (vielleicht via ACL auf verschiedenen Seiten) und prüfen, ob ich da oben nicht Mist geschrieben habe :-) Und Dich ein wenig mit dem plugin vertraut machen.
Nebenbei Nachteile, die ich beim data-plugin sehe:
1) Für jeden Datensatz ist eine neue Seite notwendig (muss bei "strata" nicht)
2) Ein Datensatz, der auf einer Seite steht, die via include auch noch woanders eingebunden/aufgerufen wird, wird zweimal oder halt nöch öfter angezeigt. (ist bei "strata" wohl auch so)
cziehr
Hallo virk,
vielen Dank für deine Antwort. Das bureaucracy-Plugin ist mir auch schon untergekommen, das werde ich sehr wahrscheinlich verwenden, auch zusammen mit dem pagemod-Plugin.
Das Problem ist gar nicht das Pflegen der Daten; hier kommt nur eine Hand voll Kollegen in Frage die auch alle volle Bearbeitungsrechte haben, alle anderen dürfen nur angucken.
Es soll nur für die Anzeige eine 2-Klassen-Gesellschaft geben, also diejenigen die die Daten pflegen (und diese auch für ihre tägliche Arbeit benötigen) sollen alles angezeigt bekommen, und alle anderen nur die Basis-Daten. Ich werde es wohl wirklich mal per CSS ausblenden probieren. Es handelt sich dabei nicht um sicherheitskritische Daten, sondern es geht nur darum die Übersichtlichkeit zu wahren, von daher ist es kein Problem wenn die Daten im Quelltext stehen.
Mit dem Strata-Plugin hatte ich mich zuvor auch schonmal beschäftigt, also zumindest die Plugin-Seite durchgelesen. Ich hab aber noch nicht begriffen wo da der große Unterschied zum data-Plugin liegt, mal abgesehen davon dass kompliziertere Vergleiche für die Abfrage der Daten möglich sein sollen.
Und auch nach mehrmaligem Durchlesen der strata-Seite lese ich es immer noch so, dass ich auch beim Strata-Plugin für jeden Datensatz eine eigene Seite brauche, weil die Daten eben an eine Seite gebunden sind. Oder meinst du was anderes?
Das include-Plugin benötige ich nicht, ich habe schon mittels dem data-Plugin eine Grundstruktur aufgebaut so wie ich mir diese vorstelle und die funktioniert.
Das einzige was mir bisher irgendwie fehlt ist eine "auto-increment"-Funktion für IDs. Mit meinem momentanen Ansatz müsste der Kollege erst gucken wie die höchste Nummer lautet und dann von Hand +1 rechnen und eine Seite mit diesem Namen anlegen (ich möchte gerne eine aufsteigende ID als Seitennamen verwenden). Vielleicht fällt mir aber noch eine andere Lösung ein, am Freitag werde ich nochmal mit dem Kollegen sprechen wie er sich seine neue Arbeitsumgebung vorstellt.
Aber Danke nochmal,
Viele Grüße,
Christoph
virk
Eben auf die Schnelle; bin schon halb am Schlafen: Zum Raufzählen einer Nummer kannst Du das numbering-plugin benutzen. Dieses kreiert Dir die um eins raufgezählte Nummer. Diese Nummer trägst Du geeignet ins bureaucracy-plugin ein und das kreiert Dir dann die Seite.
Gute Nacht!