Gästebuch auf Profilseite
Eingetragen von DrupalFan (1646)
am 19.04.2007 - 11:13 Uhr in
am 19.04.2007 - 11:13 Uhr in
Ich möchte auf der Profilseite jedes Users ein Gästebuch haben:
Direkt auf der Profilseite sind weiter unten alle Gästebucheintrage zu lesen und darunter befindet sich gleich das Gästebucheintragsformular (ein Textfeld reicht, da User ja eingeloggt sein muss, um einen Eintrag erstellen zu können).
Wie mache ist das?
Gibt es dafür ein Modul?
Vielen Dank!
- Anmelden oder Registrieren um Kommentare zu schreiben
Modul guestbook
am 19.04.2007 - 11:44 Uhr
Es gibt ein Modul "guestbook". Teste das mal.
Grüße,
maschu
--
Gästebuch verändern und Profilseite erweitern
am 24.04.2007 - 17:13 Uhr
Danke, das habe ich natürlich längst gefunden und auch schon im Einsatz, ist echt toll dieses Modul.
Ich habe aber noch Fragen:
Auf der Profilseite erscheint nun der Teil des Gästebuches, bei dem der Einleitungstext gesetzt und das Gästebuch aktiviert/deaktiviert werden kann bzw. eine Emailadresse angegeben kann für Benachrichtigungen bei Einträgen.
Ich würde aber gerne all das entfernen und die Benachrichtigung immer aktivieren, das Gästebuch immer aktivieren!
Wie geht das?
Und stattdessen würde ich dem Profil weitere Informationen hinzufügen, wie Wohnort, Bundesland und andere Details.
Wie geht man dabei vor?
VIELEN DANK!
Auf der Profilseite
am 04.05.2007 - 10:25 Uhr
fügst Du über "Verwalten/Benutzerverwaltung/Profile" neue Felder für weitere Informationen hinzu. Z. B. für Wohnort ein einzeiliges Eingabefeld, für Bundesland ein Listenauswahlfeld u. s. w.
Zur Veränderung des Gästebuches kann ich Dir noch nichts sagen.
Gruß.
Grüße,
maschu
--
Reihenfolge der "Kategorien" der Benutzerinformation
am 08.05.2007 - 21:47 Uhr
DANKE, das klappt. Guter Tipp.
Auf der Seite "Registrieren", also dort wo sich ein neue User registrieren kann, erscheinen nun diese zusätzlich angelegten Felder.
Ich würde allerdings gerne die Reihenfolge der Kategorien verändern, so dass die "Kontoinformationen" immer ganz oben zuerst aufscheinen und alle weiteren Felder (z. Bsp. zusammengefaßt in der Kategorie "Personliche Informationen" DARUNTER aufschinen.
Wie beeinflusse ich die Reihnenfolge der Kategorien (nicht die Reihenfolge der Feler, denn das klappt ja beim Anlegen der Felder durch den Wert "Reihenfolge"?
Vielen Dank.
Reihenfolge der Kategorien im Registrierformular
am 09.07.2007 - 12:13 Uhr
Hi,
was DrupalFan wissen möchte, möchte ich auch wissen. Ich habe jetzt schon eine Weile herumprobiert, indem ich die Felder einer Kategorie gewichte (alle Felder der Kategorie X erhalten das Gewicht 5, alle Felder der Kategorie Y das Gewicht 4 usw.), aber das hat keinen Einfluß auf die Darstellung der Kategorien im Registrierungsformular.
Eine alphabetische Reihenfolge wird auch nicht eingehalten, es folgt bei mir z.B. auf eine Kategorie mit G der Bereich "Kontoinformationen", dann wieder eine Kategorie mit G am Anfang.
Jeder Tipp ist sehr willkommen (solange nicht wieder ein Scherzkeks was von springenden Rehen erzählt ;-) )
EDIT -- Die Lösung:
Im profil.modul auf Zeile 626
$w = 0
ändern zu
$w = 1
Gruß,
Ayshe
Bitte genauer
am 09.07.2007 - 16:59 Uhr
Du schreibst man muss die Variable $w auf 1 setzen.
Das kann doch nicht viel bewirken.
$w beginnt dann statt bei 0 eben bei 1 zu zählen, das ist alles.
Aber wie schaffst Du nun ingesamt die Reihenfolge zu ändern???
Weiß sonst jemand eine Lösung???
Hiho, es bewirkt aber
am 09.07.2007 - 17:01 Uhr
Hiho,
es bewirkt aber immerhin, dass die Kontoinformationen immer ganz oben stehen.
Warum das so ist? Ich hab den Tip aus dem Forum von drupal.org, und bei mir klappt es so. :-)
Gruß,
Ayshe
Leider nein
am 09.07.2007 - 17:15 Uhr
Ich habe das nun probiert, weil Du gesagt hast, es sollte die Kontoinformation immer oben stehen.
GEHT aber nicht bei mir.
Bei mir ist der Bereich "Ort" leider weiterhin ganz oben. Es hat sich nichts verändert.
Suche weiter nach einer Lösung.
Vielen Dank.
Modulaufruf-Reihenfolge?
am 09.07.2007 - 17:49 Uhr
Vielleicht hängt es mit der Reihenfolge, in der die Module abgearbeitet werden, zusammen???????
Module deaktivieren und wieder aktivieren, damit das Location Modul nicht als letztes aktiviert wurde und daher nicht als erstes aufgerufen wird? -- Wandert dann der Eintrag unter "Benutzerkonto" - "Bearbeiten" - "Kontoeinstellungen" weiter nach unten, also unter Benutzername usw.??
Andere Lösung
am 09.07.2007 - 18:20 Uhr
Ich habe eine andere Lösung gefunden.
Die Reihenfolge der Eintrag unter "Kontoeinstellungen" kann ich weiterhin NICHT VERÄNDERN!
Daher habe ich durch hinzufügen von ca. 18 Zeilen Code in der Datei "Location.module" die Felder für den Ort (also "Location") in eine andere, eine neue Kategorie "Ort" versetzt. Das ist zwar nicht so schön, aber oberhalb der Kontoeinstellungen hat das wirklich nichts verloren, da mach ich lieber eine eigene Kategorie "Ort" dafür.
Wie man die Reihenfolge der Bereiche in "Kontoeinstellungen" verändert ist weiterhin wichtig herauszufinden!!!
Hallo DrupalFan, ich bin
am 09.07.2007 - 19:09 Uhr
Hallo DrupalFan,
ich bin ganz deiner Meinung, das ist ein wichtiger Aspekt im Finetuning. Aber m.E. ist das auf drupal.org, direkt bei den Entwicklern und in Englisch noch besser aufgehoben, als Forumsbeitrag oder auch als Featurerequest (falls man es nicht als Bug definieren will).
Was du am Modul am location.module verändert hast, würde mich noch genauer interessieren. Kannst du uns da nicht mal den zusätzlichen Code zeigen und auch sagen, in welchen Zeilen du ihn eingfügt hast?
Gruß,
Ayshe
ayshe wrote: (falls man es
am 09.07.2007 - 19:22 Uhr
(falls man es nicht als Bug definieren will).
Nein, bitte nicht! :)
Die Profilseite (wie alle anderen Seiten in Drupal), kann man beliebig (per Theming) gestalten.
Siehe dazu: http://drupal.org/node/35728
Oder als gutes Beispiel: http://drupal.org/node/16011
--
bv - drupalcenter.de
Ich habe in
am 09.07.2007 - 19:27 Uhr
Ich habe in "Location.module" in der Funktion "location_user" folgende Zeilen eingefügt:
if ($op == "categories") {
return array(
array(
'name' => 'location_user',
'title'=> variable_get('location_user_profile_category', t('Location')),
'weight' => 4,
),
);
}
Weiter oben muss noch definiert werden, in der Funktion "location_admin_settings" folgendes einfügen:
$form['user']['location_user_profile_category'] = array(
'#type' => 'textfield',
'#title' => t('Profile category title'),
'#default_value' => variable_get('location_user_profile_category', "Location"),
'#size' => 50,
'#maxlength' => 50,
'#description' => t('Let users set/edit their location in their profile.'),
);
Dieses Beispiel zeigt aber NUR, wie man den Bereich "Location" ("Ort") von "Kontoeinstellungen" rausbekommt in eine neue Kategorie "Location" ("Ort").
Lösung?
am 09.07.2007 - 19:31 Uhr
@ bv:
Wo auf drupal.org bei den 2 von Dir geposteten URLs steht, wie man die Reihenfolge der Einträge unter "Mitgliedsseite" - "Bearbeiten" ändern kann, also auf der Bearbeitungsseite!!!?????
Vielen Dank.
(drupal.org ist so gut wie nicht mehr erreichbar, man kann unmöglich danach suchen)
DrupalFan wrote: @ bv: Wo
am 09.07.2007 - 20:41 Uhr
@ bv:
Wo auf drupal.org bei den 2 von Dir geposteten URLs steht, wie man die Reihenfolge der Einträge unter "Mitgliedsseite" - "Bearbeiten" ändern kann, also auf der Bearbeitungsseite!!!?????
Sorry, das habe ich überlesen. :)
Funktionieren tut's im Grunde aber genau wie unter den o.g. Links beschrieben.
- In dem Fall lautet das Zauberwort "user_edit_form": http://api.drupal.org/api/5/function/user_edit_form
- Also template.php ergänzen:
function phptemplate_user_edit ($form) {
return _phptemplate_callback('user_edit', array('form' => $form));
}
- user_edit.tpl.php Datei anlegen und beliebig gestalten.
-
print print_r(array_values($form));
gibt alle Arrays des Formulares aus. Diese brauchen dann nur in der gewünschten Reihenfolge ausgegeben zu werden.- z.B. so
print drupal_render($form['diesunddas']['profile_diesundas']);
[EDIT:]
Evtl. ist auch der Weight Ansatz nicht schlecht. Es gibt ein Modul mit dessen Hilfe man Module mit einem "Gewicht" versehen kann. Leider fällt mir der Name im Moment nicht ein...
--
bv - drupalcenter.de
Naja
am 09.07.2007 - 21:08 Uhr
Das ist wohl eine Lösung, wenn man alles umgestalten will.
Aber wenn ich nur ein Element an eine andere Stelle (weiter nach unten oder in eine andere Kategorie) verschieben möchte, dann in so einem Fall mit phptemplate_user_edit all das jetzt schon voll ausprogrammiertet Verhalten nochmal neu hier zu "programmieren", ist schon weit übertrieben.
Das Konzept von Drupal ist zwar sehr gut, aber noch verstehe ich nicht ganz, ob nicht all diese vielen Doppel-Programmierungen das System sehr langsam machen.
Wie gesagt, nur um ein Element zu verschieben, die ganze "Bearbeiten"-Seite (user-edit) neu zu gestalten, das kann einfach nicht der beste Weg sein. Wenn man alles umgestalten will, schon, aber nicht bei so einer Kleinigkeit.
Da bleibe ich lieber bei meiner Lösung (siehe oben), auch wenn dabei in einem Modul was ergänzt werden muss.
--
Aber passend zum Thema: Kann man nicht mit Hilfe dieser "Hooks" einfach Funktionen ergänzen? Funktionen überschreiben ja, aber warum nicht Funktionen ergänzen??? In meinem Fall habe ich wie oben beschrieben ca. 17 Zeilen Code in "Location.module" aufgeteilt auf 2 Funktionen ergängt.
Wenn ich nun diese Ergänzungen so machen könnte, dass einfach in der template.php (oder von mir aus woanders) die 2 Funktionen mit Hilfe des Hook-Systems (oder ähnlich) ergänzt würden, dann wäre das doch viel einfach und auch recourcensparender: Vorhandenes bleibt, wird nicht überschrieben, sondern ergänzt. Geht das???
und was ist beim update?
am 10.07.2007 - 11:15 Uhr
Hallo zusammen,
wie immer gibt es viele mögliche Wege. Aber bei allen bisherigen Vorschlägen frage ich mich, was bei einem Update passiert. Klar, modifizierte Module oder ergänzte andere Daten kann ich aus dem Backup, das ich natürlich vor dem Update mache, holen. Aber wenn man mehrere, evtl. auch komplexe Projekte laufen hat, gehört dann dazu schon eine ständig aktualisierte und penible Dokumentation (was ist wann wo und warum geändert worden). Haltet ihr das so?
Andernfalls fängt man nach einem Update ja wieder von vorne an.
Und bei einem Upgrade kann es zudem passieren, dass alte Modifikationen nicht mehr zum System passen...
Wie geht man also am besten mit solchen Sachen um?
Gruß,
Ayshe
Beste Lösung nehmen
am 10.07.2007 - 12:22 Uhr
Jede Lösung, die auch bei Updates problemlos erhalten bleibt, würde ich vorziehen, aber anscheinend gibt es in vielen Fällen solche Lösungen nicht oder sind mit vielen Dutzend Zeilen Code verbunden um eine winzige Änderung zu erreichen.
Daher nehme ich einfach die beste Lösung, egal ob Module dabei verändert werden oder nicht. Updates macht man nicht so oft. Ich behalte mir die Original-Dateien auf und kann man mit Windiff einen Dateivergleich machen, wenn ich ein Update mache. Dann sehe ich auf einen Blick, was ich alles verändert habe und baue das wieder ein.
DrupalFan wrote:
am 10.07.2007 - 14:07 Uhr
Aber wenn ich nur ein Element an eine andere Stelle (weiter nach unten oder in eine andere Kategorie) verschieben möchte, dann in so einem Fall mit phptemplate_user_edit all das jetzt schon voll ausprogrammiertet Verhalten nochmal neu hier zu "programmieren", ist schon weit übertrieben.
Ich glaube nicht, das Du mit der von mir vorgeschlagenen Lösung mehr als 5 oder 6 Zeilen Code benötigst. Du kannst quasi die kompletten Fieldsets ausgeben:
print drupal_render($form['account']);
print drupal_render($form['timezone']);
Etc. Alternativ dazu kannst Du das Formular auch per Modul und @hook_form_alter@ anpassen oder Du kannst versuchen das Location-Modul durch ein eigenes Modul zu erweitern.
Noch komfortabler ist es aber bestimmt, mit dem von mir bereits oben angesprochenen Modul: http://drupal.org/project/moduleweight
Solange das keine sonstigen Effekte auslöst.
--
bv - drupalcenter.de
Ist alles viel zu
am 10.07.2007 - 14:55 Uhr
Ist alles viel zu kompliziert, nur um ein Element zu verschieben.
Die Frage ist ja, warum diese Felder überhaupt an der falschen Stelle erscheinen, niemand wird sie dort haben wollen, trotzdem wurde es von den Programmieren so vorgesehen oder nicht geändert.
DrupalFan wrote: Die Frage
am 10.07.2007 - 15:14 Uhr
Die Frage ist ja, warum diese Felder überhaupt an der falschen Stelle erscheinen, niemand wird sie dort haben wollen, trotzdem wurde es von den Programmieren so vorgesehen oder nicht geändert.
Wieso hast Du dann diese Frage nicht direkt gestellt? Dann hätte man sich die Erläuterungen zur Lösung des Problems sparen können.
--
bv - drupalcenter.de
Ach geh, natürlich will ich
am 10.07.2007 - 15:31 Uhr
Ach geh, natürlich will ich eine Lösung, aber diese Frage ist auch berechtigt, zusätzlich!