WBCE CMS – Way Better Content Editing.
You are not logged in.
Pages: 1
Beim droplet loginbox soll es die Möglichkeit geben, den Benutzer nach erfolgreicher Anmeldung auf eine andere Seite weiter zu leiten.
Wenn ich aber [[loginbox?url=zielseite.php]] oder auch [[loginbox?url=http://www.domain.tld/zielseite.php]] einfüge, wird zwar die Loginbox angezeigt und die Anmeldung funktioniert auch, nur verbleibt man trotz korrekter Zugriffsrechte auf der Seite und wird nicht weitergeleitet.
Woran könnte das liegen?
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Zum einen sollte der Aufruf ja lauten:
[[loginbox?redirect=zielseite.php]]
Damit klappts aber auch noch nicht. Wenn du allerdings im droplet die zeile änderst:
$return_value .= '<input type="hidden" name="redirect" value="'.$redirect_url.'" />'."\n";
funktioniert es.
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline
bodo
Danke! Ich hab's direkt mal ins Droplet-Verzeichnis im AOR mit aufgenommen.
redirect=zielseite.php funktioniert allerdings nicht, es muss die komplette URL sein. Also so:
[[loginbox?redirect=http://www.domain.tld/pages/zielseite.php]]
Dafür kann man dann aber auch redirect=[wblink42] schreiben.
Und weil es dann Probleme durch die drei eckigen Klammern gibt, braucht es noch einen Dummy-Parameter, also so:
[[loginbox?redirect=[wblink42]&foo=bar]]
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Ich wiederbelebe mal den sehr alten Thread, weil es eben hier am besten passt.
Die Weiterleitung zu einer bestimmten Zielseite ist klar, aber: Könnte diese auch gruppenbezogen sein? Mache grad für drei Klassen eine Lernumgebung und da wäre es charmant, wenn jedes Kind bein Einloggen mit dem Droplet gleich auf die Unterseite seiner Klasse gehievt würde. Das erspart das zusätzliche Klasse anklicken müssen (auch wenn die falschen Klassen eh versteckt sind).
Ich bin in PHP leider zu doof, um da eine if-Abfrage zum laufen zu kriegen.
Offline
Nach einigem Herumprobieren habe ich so etwas ähnliches wie einen Lösungsvorschlag:
1) Eine Kopie des loginbox-Droplets anlege und dieses umbenennen, zB loginbox_redirect
2) In selbigem die Zeile ~79
$return_value .= '<input type="hidden" name="redirect" value="'.$redirect_url.'" />'."\n";
auskommentieren, also so
//$return_value .= '<input type="hidden" name="redirect" value="'.$redirect_url.'" />'."\n";
3) Nach Zeile 97
(is_numeric($wb->get_session('USER_ID')))) {
ungefähr das hier einfügen:
$usersgroups = explode(',',$_SESSION['GROUPS_ID']);
for ($i=0;$i<=sizeof($usersgroups);$i++) {
switch ($usersgroups[$i]) {
case '2':
$redirect_to = 'http://deinedomain.tld/pages/fuer-gruppe-2.php';
break;
case '3':
$redirect_to = 'http://deinedomain.tld/pages/fuer-gruppe-3.php';
break;
}
header('Location: '.$redirect_to);
}
Anzupassen:
case '2', case '3' usw => gemäß den tatsächlich existierenden Gruppen anpassen
$redirect_to ='...' => absolute URL der jeweiligen gruppenspezifischen Zielseite
Fallstricke:
a) Der Droplet-Aufruf darf selbst nicht auf der Zielseite (im obigen Beispiel: auf der SEite "Für Gruppe 2", "Für Gruppe 3") stehen, weil sonst eine Endlosweiterleitung entsteht.
b) Wenn ein angemeldetes Nutzy die Login-Seite aufruft, wird es sofort wieder auf seine Zielseite weitergeleitet, d.h. auf dieser (oder irgendwo anders) muss ein Abmeldelink oder das "normale" Loginbox-Droplet sein.
c) Wenn ein Nutzy in mehreren Gruppen Mitglied ist, wird es trotzdem immer nur zur Zielseite für die Gruppe mit der höchsten ID weitergeleitet..
d) Das ganze ist so flexibel wie ein Ziegelstein, nämlich genau gar nicht, weil Gruppen/Zielseiten im Droplet fest verdrahtet sind.
Vielleicht hat wer noch eine bessere Idee, wie man das eleganter umsetzen kann.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
pfreud01
Pages: 1