Andere Seite nach der registrierung
Eingetragen von Erbse (7)
am 04.12.2007 - 20:45 Uhr in
am 04.12.2007 - 20:45 Uhr in
Hallo Leute,
meine Drupal-Seite ist soweit fertig. Ich habe eine Startseite, die für die Öffentlichkeit (Seite A) gedacht ist und eine Startseite für registrierte User (Seite B). Ich habe es schon geschafft, dass die Leute nach dem Login auf die "Seite B" geleitet werden über das Modul: "Login Destination"
Leider kommen die User direkt nach der registrierung (die E-Mail wird nicht überprüft) auf die Startseite "A".
Also, meine Frage:
Wie kann ich einen User nach der Registrierung (NICHT! Login) auf eine beliebige Seite leiten?
Danke schonmal für eure Hilfe
gruß
erbse
- Anmelden oder Registrieren um Kommentare zu schreiben
Eventuell Modul "Workflow
am 04.12.2007 - 21:32 Uhr
Eventuell Modul "Workflow ng".
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Oder Login Destination
am 04.12.2007 - 21:57 Uhr
http://drupal.org/project/login_destination
--
bv - drupalcenter.de
Workflow evtl. zu kompliziert für mein Problem?
am 05.12.2007 - 11:41 Uhr
http://drupal.org/project/login_destination
--
bv - drupalcenter.de
Bitte erst lesen, dann antworten. ;-) Das benutze ich schon. Ist aber nur fürs Login, nicht für die registrierung...
@quiptime
Ja das werde ich mal ausprobieren. Hast du damit schon erfahrungen? Hört sich nämlich recht kompliziert an.
Oder weiß sonst jemand noch eine Lösung?
hook_form_alter
am 05.12.2007 - 12:55 Uhr
Ich würde die Destination nach der Registrierung via eigenem Modul zu ändern versuchen.
Im Drupal-User Modul steht innerhalb der Funktion user_register():
<?php
// Redirect back to page which initiated the create request; usually admin/user/user/create
$form['destination'] = array('#type' => 'hidden', '#value' => $_GET['q']);
?>
Du definierst also eine Funktion namens DEIN_MODULNAME_form_alter() und sagst innerhalb der gesetzten Bedingung des zutreffenden Formularnamens
<?php
$form['destination']['#value'] = 'meine/spezial/url';
?>
Mal so als Idee ...
Hört sich gut an, aber wie genau mach ich das?
am 05.12.2007 - 17:45 Uhr
Erstmal danke für die Antwort. Ich denke das hört sich sehr gut an. Jedoch habe ich leider keine Ahnung von php. Ich weiß zwar wo ich die Dateien finde, jedoch nicht wo ich jetzt was reinschreiben soll. Könntest du das vielleicht nochmal etwas genauer für einen NOOB erklären :-)
Erstellung eines Mini-Moduls
am 06.12.2007 - 00:12 Uhr
OK, also mal ganz easy: Du legst Dir lokal einen Ordner an mit zwei Dateien drinnen, den Ordner könntest Du nennen: "new_loc_after_reg". Die Dateien benennst Du analog: new_loc_after_reg.info und new_loc_after_reg.module - In diese Dateien schreibst Du folgendes hinein:
new_loc_after_reg.info:
<?php
; $Id$
name = New Location after Registration
description = Umleitung nach User-Neuregistrierung auf eine <strong>im Modul direkt</strong> definierte Seite.
version = "5.x-0.1"
?>
new_loc_after_reg.module:
<?php
function new_loc_after_reg_form_alter($form_id, &$form) {
if ($form_id == 'user_register') {
$form['destination'] = array('#type' => 'hidden', '#value' => 'meine/spezial/url');
}
}
?>
An das Ende der beiden Dateien bitte jeweils kein schließendes "?>" setzen. Den Ordner mit den beiden Dateien kopierst Du in Deinen sites/default/modules - Ordner, aktivierst das Modul in der Administration und, naja, "here we go" :)
Quick & dirty, weil die Destination eigtl. konfigurierbar sein sollte, aber das verstellt das hier einmal auf das Allereinfachste reduzierte Prinzip einer Modulerstellung.
Zitat: An das Ende der
am 06.12.2007 - 01:15 Uhr
An das Ende der beiden Dateien bitte jeweils kein schließendes "?>" setzen
Bei mir funktionieren Minimodule auch mit schliessendem PHP Tag in der Modul Datei. In die .info Datei gehoert gar kein PHP Tag - weder am Anfang noch am Ende.
Die Datei "new_loc_after_reg.info" wuerde dann so aussehen
; $Id: new_loc_after_reg.info,v 1.0 2007/12/06 20:55:34 Erbse Exp $
name = New Location after Registration
description = Umleitung nach User-Neuregistrierung auf eine im Modul direkt definierte Seite.
version = "5.x-0.1"
package = "Minimodule"
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
drupal coding standards
am 06.12.2007 - 01:45 Uhr
An das Ende der beiden Dateien bitte jeweils kein schließendes "?>" setzen
Bei mir funktionieren Minimodule auch mit schliessendem PHP Tag in der Modul Datei.
Mag sein. Nicht bei jedem. Siehe http://drupal.org/node/545
In die .info Datei gehoert gar kein PHP Tag - weder am Anfang noch am Ende.
Stimmt!
und für die 6.x??
am 17.01.2009 - 05:37 Uhr
... wie macht mans da?