Kunstarchiv mit Drupal 8 – Benutzer

Foto Elvert Barnes https://www.flickr.com/photos/perspective/14633594671/ (CC BY-SA 2.0)

Foto Elvert Barnes https://www.flickr.com/photos/perspective/14633594671/ (CC BY-SA 2.0)

Nachdem seafolly.ch auf Drupal 8 umgestellt wurde und einen Kunstplaneten aus Feeds erhalten hat, will ich die Idee von Jürgen Rinck aufgreifen, ein Archiv für Künstler und deren Werke einzurichten. Drupal 8 als Basis ist insofern interessant, da diese Version ein vollständiger rewrite von Drupal ist und viele interessante Features bereits in der Core Distribution integriert sind. Insofern wird das auch ein Versuch so „einfach“ wie möglich ein recht komplexes Ziel zu erreichen.

Ziel

Das Ziel ist ganz einfach: Künstler sollen sich ein Benutzerkonto auf seafolly.ch anlegen können, in dem sie eine Profilseite haben und die Möglichkeit, Ihre Werke hochzuladen, zu beschreiben und zu publizieren.

In diesem Artikel geht es um die Anfänge:

  • Benutzerrollen auf der Site
  • Berechtigungen
  • Zusätzliche Felder
  • Profilseite des Künstlers
  • Menüs

Die Installation von Drupal 8 auf einem Web Hosting Account bei Novatrend habe ich in diesem Artkel beschrieben: Drupal 8 bringt frischen Wind.

Benutzerrollen

Da das Kunstarchiv von den Benutzern gepflegt werden soll, müssen wir uns Gedanken über Benutzerrollen und deren Berechtigungen machen. Drupal kommt mit drei bereits definierten Rollen (Gast, Angemeldete Benutzer, Administratorhttps://seafolly.ch/admin/people/roles).

Drupal - Benutzerrollen
Drupal – Benutzerrollen

Die „Gast“ Rolle umfasst jeden Besucher der Website. Frei nach Joseph Beuys („Jeder Mensch ist ein Künstler“) legen auch wir fest, dass auf seafolly.ch jeder ein Künstler ist. Der Gast ebenso wie der Administrator. Jeder Gast kann sich mit seiner E-Mail Adresse registrieren und anmelden. Er gehört dann der Rolle „Angemeldete Benutzer“ an. Ausser den „Gästen“ und den „Angemeldeten Benutzern“ gibt es die „Administrator“ Rolle. Die Administrator Rolle erhalten nur ausgewählte Benutzer. Das Benutzerkonto, dass bei der Installation erzeugt wird ist das SuperUser Konto. Es gibt nur eins davon (/user/1).

Man kann beliebig viele neue Rollen anlegen.
Für unser Ziel reichen die vorhandenen Rollen allerdings aus.

Hinweis: An dieser Stelle könnte man auch ein Geschäftsmodell einbauen mit mehreren Berechtigungsstufen, beispielsweise ein kostenloses Konto, bei dem die Ressourcen begrenzt sind und ein kostenpflichtiges Konto mit zusätzlichen Services.

Berechtigungen

Jeder Rolle werden nun Berechtigungen für bestimmte Funktionen zugewiesen (https://seafolly.ch/admin/people/permissions). Als Beispiel zeige ich die Konfiguration für das Contact Modul. In Drupal gibt es ein Kontaktformular für die gesamte Website und ein Kontaktformular auf der Profilseite des Benutzers. Der Benutzer kann selbst in seinem Profilbereich festlegen, ob er das Formular nutzen will oder nicht.

Auf seafolly.ch ist momentan diese Konfiguration: Jeder Gast kann das allgemeine Kontaktformular für die Website nutzen, nicht aber das persönliche Kontaktformular eines registrierten Benutzers. Angemeldete Benutzer können jedoch die Kontaktformulare anderer angemeldeter Benutzer nutzen. Der Künstler kann dem anderen Künstler also eine Nachricht schreiben! Benutzer in der Administrator Rolle können diese Einstellungen verändern.

Drupal - Berechtigungen - Contact - Modul
Drupal – Berechtigungen – Contact – Modul

Hier noch ein Beispiel für die Benutzerberechtigungen. Auf seafolly.ch ist es beispielsweise möglich, sein Benutzerkonto samt Inhalten zu löschen. Der Punkt „View user information“ im Screenshot bezieht sich auf die Sichtbarkeit der Profilseite eines Benutzer.

Drupal - Berechtigungen - User - Modul
Drupal – Berechtigungen – User – Modul

Benutzer dürfen die Löschmethode nicht selbst auswählen. Benutzer der Administrator Rolle können in den Kontoeinstellungen (/admin/config/people/accounts) eine allgemeine Konfiguration vorgeben. Momentan kann sich jeder Besucher registrieren, ein Passwort selbst festlegen und einloggen. Das Passwort muss eine gewisse Stärke haben. Wenn der Benutzer das Konto löscht, wird das Konto und der damit verbundene Inhalt nicht gelöscht, sondern deaktiviert. Das hat den Vorteil, dass ein Administrator die Daten wieder aktivieren kann und den Nachteil, dass die Daten noch in der Datenbank sind, obwohl der Benutzer „gelöscht“ ist. Ein Administrator (oder ein Programm) kann deaktivierte Nutzer und deren Daten endgültig löschen. Meistens werden die Daten noch 30 Tage vorgehalten und dann gelöscht.

Drupal - Kontoeinstellungen
Drupal – Kontoeinstellungen

In diese Einstellungen können auch die Texte der E-Mail Nachrichten festgelegt werden, die einem Benutzer bei verschiedenen Aktionen gesendet werden. Auf seafolly.ch sind die Texte momentan noch in English, man kann die Sprache aber bei Bedarf ändern. In den Texten können sogenannte Tokens eingefügt werden, beispielsweise URLs und Benutzernamen.

Drupal - Kontoeinstellungen - E-Mail Texte
Drupal – Kontoeinstellungen – E-Mail Texte

Profilseite des Künstlers

Jeder Benutzer hat eine Profilseite und jeder Gast darf sie sehen. Benutzer Nr. 1 ist in Drupal der Superadministrator (https://seafolly.ch/user/1). Da bei der Registrierung nur die E-Mail Adresse und ein Benutzername abgefragt wird, sieht die Profilseite etwas unscheinbar aus.

Drupal - Profilseite
Drupal – Profilseite

An dieser Stelle sollten Informationen über den Künstler und dessen Werk stehen. Aus Benutzersicht könnte sich das zu einer individuelle Website entwickeln. Standardmässig erhält jeder Benutzer eine Nummer unter der seine Profilseite aufgerufen werden kann (user/[Nummer des Benutzers]). Man könnte auch beispielsweise den Benutzernamen als Teil der URL erzeugen (https://seafolly.ch/concierge). Momentan geht das nur manuell (/admin/config/search/path), mit dem Modul Pathauto könnte man diesen Prozess automatisieren. Momentan gibt es aber noch keine stabile Version für Drupal 8.

Zusätzliche Felder

Wir wollen ein paar zusätzliche Felder anlegen, die der Benutzer ausfüllen kann (aber nicht muss). Eine kleine Beschreibung, einen Ort, Links zu externen Sites und beliebig viele Tags. In den Kontoeinstellungen gibt es ein Tab Felder verwalten (/admin/config/people/accounts/fields). Dort lege ich die zusätzlichen Felder an.

Zusätzliche Profilfelder
Zusätzliche Profilfelder

Die ersten vier Felder sind selbsterklärend, das Tag Feld nutzt das bereits vorhandene Kategorien Vokabular Tags. Damit ist es möglich, dass sich der Benutzer in seinem Konto „taggen“ kann. Die Begriffe sind in der Anzeige verlinkt und zeigt dann alle Benutzer, die diesen Begriff gewählt haben.

Drupal unterscheidet zwischen dem Verwalten der Felder und der Anzeigen der Felder. Im Tab Anzeige verwalten (/admin/config/people/accounts/fields) wird das Ausgabeformat eines jeden Feldes konfiguriert, beispielsweise beim Profilfoto der Bildstil Thumbnail (100×100). Drupal läd das Original hoch und speichert es ab. Für die Ausgabe der Bilder werden Stile konfiguriert, damit Bilder in unterschiedlichen Grössen und Anpassungen (automatische Bearbeitung) vorliegen.

Erster Versuch

Nach der Eingabe der Daten sieht das Profil dann so aus:

Profil mit Zusatzfeldern
Profil mit Zusatzfeldern

Du kannst beliebig viele Felder hinzufügen. Ausser den Feldtypen, die bereits im Drupal Core mitgeliefert werden, gibt es beispielsweise auch ein Adressfeld (Address) das Formate von 200 Ländern abdeckt und die eingegeben Adressen validiert.

Im nächsten Teil werden wir einen Inhaltstyp für die Werke erstellen und dann die Werke im Profilbereich zum entsprechenden Benutzer und auf einer Detailseite anzeigen.


tl;dr: Mit Drupal 8 kannst du per Browser Felder zu einem Profilbereich hinzufügen

Autor: Hagen Graf

consultant, author, trainer, solution finder, web architect, developer, open source lover, visionary, orator, the good old webmaster. Able to simplify!

Kommentar verfassen