[Gelöst] Persönliches Kontaktformular: Modifikation der Seite/Meldung nach Versand
am 13.08.2010 - 20:51 Uhr in
Hallo!
Ich habe folgende Frage/folgendes Problem, von dem ich nicht glauben kann, daß es etwas spezielles ist - trotzdem hat mir die Suche im Forum noch keine Antwort geliefert... ;-)
Die generelle Frage wäre, ob und wie ich das Verhalten der Site nacht Absenden des persönlichen Kontaktformulars modifizieren kann.
- Formulare sind für registrierte Nutzer freigegeben, Versand funktioniert, Felder sind für meinen Zweck ausreichend - also von der Grundfunktion her alles ok.
- Auch die Bestätigungsmeldung "Die Nachricht wurde versendet" wird auf der dann aufgerufenen Seite angezeigt.
- "Unschön" ist lediglich, daß nach Absenden des Formulars (domain/users/[user]/contact) versucht wird, die Profilseite des Empfängers (domain/users/[user]) anzuzeigen, welche allerdings (gewünscht) für Dritte gesperrt ist.
Bedeutet im Ergebnis, ich bekomme die "Nachricht versendet" Meldung auf einer "Zugriff verweigert" Seite...
Lösungswünsche meinerseits:
a) am liebsten wäre es mir, wenn ich wieder an die Stelle zurückgeleitet würde, von der ich das Kontaktformular aufgerufen habe (also z.B. aus einer Unterseite des Forum heraus)
b) alternativ könnte ich mit einer separaten Seite leben, die ich um die "Nachricht versendet" Botschaft herum baue...
Lässt sich a) oder b) mit Rules abbilden? Das Modul habe ich installiert und auch schon mal eine Regel angelegt, für die ich eindeutig passende Conditions gefunden habe - für diesen Zweck habe ich aber nichts offensichtliches gefunden und möchte nicht alles durchprobieren...
Bin sehr dankbar für jeden Hinweis - auch für Workarounds, die vielleicht "nur" für den speziellen Foren-Usecase funktionieren.
- Anmelden oder Registrieren um Kommentare zu schreiben
Redirect
am 13.08.2010 - 22:40 Uhr
Hallo.
Zu Deinen Lösungswünschen:
a) "wieder zur aufrufenden Seite zurückleiten"
Das ist nicht ganz so einfach. Dazu müsstest Du den Links, mit denen man das Kontaktformular aufrufen kann, den Zusatz
?destination=pfad/zur/aufrufenden/seite
verpassen.Wenn die Links einfach nur Menüpunkte sind, geht das in der template.php Deines Themes über [api:hook_menu_link_alter] ungefähr so:
<?php
function MYTHEMENAME_menu_link_alter&$item, $menu) {
if ($item['link_path'] == 'contact') {
$item['link_path'] .= '?destination='. $_GET['q'];
}
}
?>
Das könnte funktionieren.
b) "andere Seite"
Dafür eignet sich eventuell das Modul [do:customdestination Custom Form Destination].
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Mit Customdestination funktioniert das ganz gut.
am 15.08.2010 - 14:10 Uhr
Hallo Stefan,
vielen Dank für deine Vorschläge! Ich habe mich jetzt für b) entschieden - das Modul ist schön schlank und ich kann es auch noch für weitere Formulare verwenden.
Macht jetzt genau das, was es soll.
Gruß
Mirko