Contact - Einstellung im Profil entfernen
![](https://www.drupalcenter.de/files/imagecache/upic_mini/pictures/picture-5283.jpg)
am 28.12.2008 - 19:42 Uhr in
Hey, ich verwende das Modul contact um ein allgemeines Kontaktformular bereitzustellen. Nun möchte ich aber nicht, dass jeder User ein Kontaktformular hat oder die Möglichkeit hat, kontaktiert zu werden...kann mir jemand sagen wie ich das einstellen kann? Eben auch so, dass die User auch nicht im Profil einstellen können ob sie solch ein Formular sehen möchten oder nicht...Gibt es da eine Möglichkeit?
- Anmelden oder Registrieren um Kommentare zu schreiben
mit hook_menu_alter kannste
am 28.12.2008 - 20:18 Uhr
mit hook_menu_alter kannste user/%user/contact verändern
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Bist du sicher, dass ich
am 31.12.2008 - 11:01 Uhr
Bist du sicher, dass ich damit erreiche, dass im Profil die Checkbox "Personal Contact Form" verschwindet?
Es gibt ein Modul dafür ->
am 31.12.2008 - 11:04 Uhr
Es gibt ein Modul dafür -> http://drupal.org/project/user_readonly
----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/
aber das kann, so wie ich
am 31.12.2008 - 12:38 Uhr
aber das kann, so wie ich das sehe, nicht die Einstellung ausblende, die ich wollte.
Mittels Minimodul
am 31.12.2008 - 14:44 Uhr
Unter Drupal 5 habe ich ein Minimodul mit folgender Methode erstellt und die Option Kontaktformular ausgeblendet.
function nosignature_form_alter($form_id, &$form) {
if ($form_id == 'user_edit') {
unset($form['comment_settings']); // Keine Signatur
unset($form['contact']); // Kein Kontaktformular
unset($form['og_settings']); // Keine Organic Groups
}
}
für Drupal6 geht das
am 31.12.2008 - 19:01 Uhr
für Drupal6 geht das entsprechend
<?php
/**
* Implementation of hook_form_user_edit_alter().
*/
function nosignature_form_user_edit_alter(&$form, $form_state) {
unset($form['contact']); // Kein Kontaktformular
}
?>
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
danke, mit einem "minimodul"
am 02.01.2009 - 11:12 Uhr
danke, mit einem "minimodul" hätte ich es auch als nächstes gelöst. allerdings funktioniert es nicht hook_form_user_edit_alter (habe ich in der API nicht gefunden) Ich habe es nun wie folgt gelöst:
/**
* Implementation of hook_form_user_edit_alter().
*/
function bsnousercontact_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'user_profile_form')
unset($form['contact']); // Kein Kontaktformular
}
Das ist ein Trick der Seit
am 02.01.2009 - 11:30 Uhr
Das ist ein Trick der Seit Version6 gibt
Außer der klassischem hook_form_alter gibt es auch ein hook_form_{$form_id}_alter
Dies hat den Vorteil, dass es Performance sparrt, da es seltener / nur bei Bedarf aufgerufen wird
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Ah das ist gut zu wissen,
am 02.01.2009 - 11:48 Uhr
Ah das ist gut zu wissen, vielen Dank. Allerdings hat es bei einem ersten Versuch nicht geklappt, daher habe ich mich für die andere Lösung entschienden, die aber nun super funktioniert
Danke trotzdem und im Übrigen ein frohes neues Jahr.