Gallery per User / Eine Galerie für jeden Nutzer einer Communitywebsite
Ziel dieser Handbuchseite ist es 1. Die Frage von vielen Nutzer zu beantworten wie man eine Bildergalerie, für jeden Nutzer anlegt und 2. zu zeigen wie man diese Galerie auch im Benutzerprofil darstellen kann.
Zuerst ein kleiner Diskurs zum Benutzerkonzept von Drupal. In Drupal gibt es zwei Varianten dazu, einmal Drupal Core. Das Benutzerprofil ist nicht wie alles andere ein Node (Artikel, Commentar etc.) sondern wird gesondert behandelt. Deshalb gibt es auch eine extra Benutzersuche. Bei der zweiten Variante wird das Benutzerprofil ein Node, hierfür benötigt man aber zusätzliche Module wie Bio, Nodeprofile oder Usernode. der Vorteil hierbei liegt in der Möglichkeit Benutzerprofile auch in Views, der Inhaltsuche etc. zu verwenden.
1. "Gallery per User" mit dem Drupal Core Benutzerkonzept.
a. Benötigte Module: CCK, Imagefield für CCK, VIEWS
Ich werde diese Handbuchseite etwas beschränken, da ich erst eine einfache Anleitung schreiben möchte, ohne auf besonderheiten der Funktionalität einzugehen. Erweiterte Anleitungen gibt es auch in Deutsch http://www.drupalcenter.de/handbuch/6250 oder in Englisch http://drupal.org/node/144725
b. Als ersten Schritt erstellen wir einen Inhaltstypen für die Benutzergalerie. Unter admin/content/types/add fügen wir einen Inhaltstyp hinzu. Ich würde ihn Benutzergalerie Bild nennen um ihn von anderen Inhaltstypen mit einem Bild unterscheiden zu können. Er soll einen Titel haben und benötigt keinen Textkörper. Sinvoll ist es gleich zu Beginn eine Bescheibung und einen Hilfetext für die User anzulegen. Der Inhaltstyp wird gespeichert und gleich wieder zur Bearbeitung aufgerufen.
I. Jetzt den Tab Feld hinzufügen wählen. Dort vergeben wir erst einen Datenbanknamen für unser Feld z.B. galerie_bild, dann wählen wir "image" und klicken auf "create field".
II. Im folgenden Formular vergeben wir erst einen für unsere Benutzer verständlichen Namen, z.B. Dein Galeriebild, dann setzen wir entsprechen unserem Template eine Bildgröße. Im Hilfetext ist es sinnvoll den Nutzer darauf hinzuweisen z.B. nur JPG zu verwenden und eine bestimte Dateigröße z.B. 2 MB nicht zu überschreiten. Unbedingt die Checkbox erfoderlich anklicken. Nun können wir die Feldeinstellungen speichern.
c. Views/Ansichten kommt ins Spiel. Unter /admin/build/views einen neuen View hinzufügen. Vergeben wir einen Namen "Benutzer Galerie". Beschreibung z.B. "Alle Bilder der Benutzer als Galerie"
I. Seitenansicht bereitstellen.
URL = benutzergalerie
Ansichtstyp = Vollständige Nodes
Title = %1´s Gallerie
Pager = numeric
Beiträge pro Seite = 1
Leerer Text = Es wurde noch kein Bild in die Galerie geladen.
II. Felder keine
III. Argumente = Benutzer: UID ist der Autor, Standart = leeren Text verwenden
IV. Filter = Node Type, ist eines von, Benutzergalerie Bild
V. Sortierkriterium = Node Erstellungszeitpunkt, Absteigend.
View/Ansicht speichern. Nun finden wir unter der URL www.meinedomain/benutzergalerie/1 eine Galerie für den Admin. Wenn er noch kein Bild hoch geladen hat steht dort der leere Text "Es wurde noch kein Bild in die Galerie geladen". Zum test einige Bilder hochladen und die URL erneut besuchen.
d. Nun werden wir diese Galerie in unserem Benutzerprofil anzeigen. Hier für sind zwei Schritte nötig.
I. Wir müssen der template.php unseres themes einige Zeilen hinzufügen. Am besten ganz am Ende.
/**
* Die theme_profile_profile function, wird hier durch das template geschickt und die Darstellung des Benutzerprofiles erfolgt in der user_tpl.php
*/
function phptemplate_user_profile($user, $fields = array()) {
return _phptemplate_callback('user_profile', array('user' => $user, 'fields' => $fields));
}
Work in Progress
- Anmelden oder Registrieren um Kommentare zu schreiben
Sehr interessantes Thema,
am 07.05.2008 - 10:10 Uhr
Sehr interessantes Thema, aber da fehlt doch am Ende noch ein Schritt oder? Könnte den evtl. jemand beschreiben oder kennt sonst jemand einen guten Weg, Usergalerien in den Profilen zu erstellen (am Besten ohne Veränderungen in Codes oder so)