WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 11.04.2016 10:25:25

florian
Administrator

Droplet loginbox redirect

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?


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#2 11.04.2016 17:00:28

bernd
Developer

Re: Droplet loginbox redirect

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 $ ...

Online

Liked by:

bodo

#3 12.04.2016 08:55:12

florian
Administrator

Re: Droplet loginbox redirect

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]]


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#4 13.09.2023 18:27:35

pfreud01
Mitglied

Re: Droplet loginbox redirect

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

#5 13.09.2023 20:40:42

florian
Administrator

Re: Droplet loginbox redirect

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.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Liked by:

pfreud01

Fußzeile des Forums

up