Wenn ein Gast keine Berechtigung hat eine Node zu editieren muß er sich Registrieren. Wie gelangt er nach Registration automatis
am 11.07.2010 - 19:08 Uhr in
Hallo,
ich hab zu folgendem Problem nach längerem suchen im Forum nichts gefunden und daher die Bitte um Hilfe.
Ein Gast oder User bekommt per Rules eine E-Mail mit einem edit Link zu einer Node.
Wenn der User nicht eingeloged ist bekommt er das login Formular zu sehen und wird nach dem Login zu der Node geleitet.
Der Gast muß sich erst registrieren. Wie bekomme ich es nun automatisch hin das der neu registrierte Gast zu dieser Node weitergeleitet wird.
Ich denke das das über Rules oder Trigger gelöst werden kann, aber mir fehlt da das Verständniss was ich als Weiterleitungs URL angeben muss.
Gruß
Tom
- Anmelden oder Registrieren um Kommentare zu schreiben

Schau mal, ob dir das Modul
am 11.07.2010 - 19:23 Uhr
Schau mal, ob dir das Modul Login Destination weiterhilft.
Login Destination ist nur für Login interessant nicht für Regist
am 11.07.2010 - 20:06 Uhr
Hallo Exterior,
hab mir das Modul Login Destination angesehen. Das geht dort auch nur fürs Login nicht aber für die Registration.
Wie gesagt ich suche nach der Möglichkeit das ein Gast der sich Registriert, nach der Registration zu der Seite zurück gelangt von wo aus er die Fehlermeldung das er nicht Berechtigt ist die Seite zu bearbeiten, zurück geleitet wird.
Gruß
Tom
LoginToboggan: Redirect path on registration:
am 11.07.2010 - 20:56 Uhr
Hallo,
ich habe auch das Modul LogginToboggan ausprobiert. Hier gibt es die Möglichkeit eines
Redirect path on registration.
Mein Pfad zur node lautet: www meinedomain/node/nid/edit Was muss ich für nid angeben damit zur Node vor der Registration zurück geleitet wird?
Ich hoffe das ich das Problem verständlich beschrieben habe.
Gruß
Tom
Mit Module inline registration weitergekommen
am 11.07.2010 - 23:15 Uhr
Hallo
ich habe das Module inline registration gefunden und bin damit weitergekommen das ein Gast sich registrieren kann und gleichzeitig die Node bearbeiten kann. Nun stehe ich vor dem Problem das ein nichtangemeldeter user zwar einen Login Link bekommt aber wenn er sich einloged kommt er nicht zurück zur Node um sie zu bearbeiten.
Ich denke das ich da im Modul Inlineregistration ein wenig PHP ändern muß. Nur bin ich da leider noch nicht so firm drin. Kann mir da jemand helfen?
Dies ist der PHP Code wo ich glaube eingreifen zu müsssen um auch das Login innerhalb der Node zu ermöglichen
<?php$form['register'] = array(
'#type' => 'fieldset',
'#title' => t('Login or Register as a New User'),
'#description' => t('You are not currently logged in. In order to post this item please !login or provide the following details to register.', array('!login' => l(t('login now'), 'user/login', array('destination='. $_GET['q'])))),
'#weight' => variable_get('inline_registration_weight_'. $form['#node']->type, 0),
);
?>
Hat jemand eine Idee was ich da umschreiben bzw zufügen muß um zu meinem Ziel zu gelangen.
Gruß
Tom
Hoppla, hatte mich da vertan,
am 12.07.2010 - 00:30 Uhr
Hoppla, hatte mich da vertan, dachte, es geht nur um den Login.
Zu deinem Code:
Vermutlich musst du bei array('destination'=... einen entsprechenden Pfad angeben. Weiß nicht genau, wie das Modul funktioniert.
Aber ich rate an dieser Stelle gleich mal davon ab, jetzt die Modul-Datei zu öffnen und diese Stelle zu ändern. "Never touch the Core" lautet die Devise. Und ein Modul-Update und deine Änderung ist weg.
Wenn du damit herumprobieren willst, schreibe ein eigenes kleines Modul, welches hook_form_alter implementiert und ändere damit den Abschnitt.
Alternativ... Wäre es nicht möglich, LoginToboggan (für die weiterleitung nach der Registrierung) mit Login Destination (für Weiterleitung nach Login) zu kombinieren?
LoginToboggan: Redirect path on registration:
am 12.07.2010 - 10:44 Uhr
Danke für die Antwort,
zu Thema LoginToboggan: Redirect path on registration: ich hatte oben schon geschrieben das ich nicht weiß, wie ich den Pfad angeben muß damit man zu der Node zurück gelangt.
Mein Pfad zur node lautet: www meinedomain/node/nid/edit
Was muß ich da für nid eingeben?
Zum Thema Inline Registrationsmodul: Ich hatte vor das Modul umzuschreiben bzw nur meinen gewünschten Part dazuzuschreiben und es dann umzubenennen. Darf man das nicht?
Das hook_form_alter() ist bereits in dem Modu enthalten. Insofern müsste ich nur wissen wo und wie ich den Pfad angeben kann damit zur editierbaren Node geleitet wird, bzw ich die Felder Benutzer und Passwort genau wie die Registrierungsfelder angezeigt bekomme und durch speichern der Node der Benutzer angemeldet ist.
Gruß
Tom
Zitat: zu Thema
am 12.07.2010 - 13:15 Uhr
zu Thema LoginToboggan: Redirect path on registration: ich hatte oben schon geschrieben das ich nicht weiß, wie ich den Pfad angeben muß damit man zu der Node zurück gelangt.
Mein Pfad zur node lautet: www meinedomain/node/nid/edit
Was muß ich da für nid eingeben?
Mmmh, leider hat LoginToboggan keine Token-Integration, sonst könnte man das vielleicht irgendwie damit machen. Aber so wird das wohl eher nichts...
Ich hatte vor das Modul umzuschreiben bzw nur meinen gewünschten Part dazuzuschreiben und es dann umzubenennen. Darf man das nicht?
Wir leben in einem freien Land, du darfst machen, was du willst. Aber wenn du so fragst: Nein, darfst du nicht, ich verbiete es dir hiermit ;-)
So ziemlich jeder hier im Forum wird dir sicherlich davon abraten, einfach so im Modul herumzuschreiben. Denn wenn du jetzt etwas an der Modul-Datei änderst, wird die mit dem nächsten Update überschrieben und deine Änderungen sind weg. Außerdem gehört es sich einfach nicht, in dem Modul herumzuschreiben, dafür ist Drupal ja extra so aufgebaut, dass man sich mit den alter-hooks an allen möglichen Stellen einklinken und ändern kann.
Das hook_form_alter() ist bereits in dem Modu enthalten
Das ist völlig egal, das ist der hook_form_alter von Inline Registration, dafür gilt das gleiche wie oben --> da wird nichts angefasst.
Du kannst ein eigenes Modul schreiben, welches selbst hook_form_alter implementiert, dann kannst du das Formular von Inline Registration abfangen und dort den entsprechenden Teil ändern. Das bleibt dann auch bestehen, wenn das Inline Registration-Modul ein Update bekommt und außerdem ist diese Variante wesentlich sauberer und vor allem ist diese Variante so, wie im System "Drupal" die Behandlung solcher Fälle gedacht ist.
Puh, momentan fällt mir kein Modul für deine Zwecke ein. Entweder, du änderst per hook_form_alter in deinem eigenen Modul das Formular von Inline-Registration oder aber du änderst per hook_form_alter in deinem eigenen Modul das normale Registrierungs-Formular und änderst davon die Destination. Wäre evtl. sogar besser, das musst du entscheiden.
Übrigens hatte ich mich im letzten Post vertan. Ich hatte gemeint, ob du nicht Inline Registration (mit dem ja das Registrieren und dann zu dem gewünschten Node leiten zu klappen scheint) mit Login Destination (mit dem man die Weiterleitung auf den Login-Ursprung, also den Node, setzen kann) kombinieren kannst.
PS: Nimm nächstes mal einen kurzen und pregnanten Titel für ein Thema, aus diesem Titel, der auch noch mittendrin aufhört, kann man sich nichts nehmen.
Danke für die Antwort
am 12.07.2010 - 14:03 Uhr
Vielen Dank für die ausführliche Antwort. Leider kenne ich mich im Modulschreiben noch nicht aus, insofern kann ich nicht ein eigenes Modul schreiben ;-). Naja aber Drupalcenter und drupal org bieten ja genügend Möglichkeiten auch das noch zu lernen.
Danke auch für Deine Hinweise bezüglich Titel und umgang mit fremden Modulen. Werde es mir zu Herzen nehmen
Gruß
Tom
Ich kann dir diese
am 12.07.2010 - 14:16 Uhr
Ich kann dir diese Handbuchseite ans Herz legen, damit findet man einen guten Einstieg in die Modul-Entwicklung. Das Modul in deinem Fall wäre auch ziemlich klein, ergo machbar. Mal ein oder zwei Nachmittage opfern und dann könnte man so eine kleine hook_form_alter-Sache implementieren ;-)
Danke für die Seite
am 12.07.2010 - 16:05 Uhr
Ich werde mich da mal ran machen obwohl ich die Vorraussetzungen die dort auf der Anfangsseite beschrieben werden nicht mitbringe. In PHP, Tabellen, Syntax usw kenne ich mich noch nicht aus, aber ich denke das das auch erlernbar ist.