nach frontend login automatisch bestimmte seite öffnen

Gesperrt
motionpixels
Beiträge: 3
Registriert: Do 12. Mär 2009, 12:10
Kontaktdaten:

nach frontend login automatisch bestimmte seite öffnen

Beitrag von motionpixels »

hallo!

ich hab auf einer Seite mehrere Passwortgeschützte Bereiche - jeweils mit unterschiedlichen Benutzern und Passwörtern.

Was muss ich einstellen, damit nach dem Login im Frontend jeweils direkt die entsprechende Seite (bzw. Kategorie) geöffnet wird?

Hab in der Suche nichts gefunden.

Danke für jede hilfreiche Anwort!
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: nach frontend login automatisch bestimmte seite öffnen

Beitrag von GaMbIt_ »

Ichhab mal vor längerer Zeit ein Modul gebastelt mit dem ich je Artikel bestimmen konnte wohin der Login weiterverbindet...

Vielleicht ist das ja ausbaubar...

Input:

Code: Alles auswählen

?><?php

$cms_redirect = "CMS_VALUE[1]";

$cms_logout = "CMS_VALUE[2]";

if($cms_redirect == ''){
  echo 'Login - Ziel nicht gesetzt</br>';
}
if($cms_logout == ''){
  echo 'Logout - Ziel nicht gesetzt</br>';
}
#Choose redirect after login
echo '<table cellpadding="0" cellspacing="0" border="0">
	<tr><td class="text_medium" style="padding:5px">'.mi18n("Set up the login and logout redirects. If no value is set no redirect will executed").'</td></tr>
	<tr><td class="text_medium" style="padding:5px">'.mi18n("Choose login redirect").': <input type="text" name="CMS_VAR[1]" value="'.$cms_redirect.'" /></td></tr>
	<tr><td class="text_medium" style="padding:5px">'.mi18n("Choose logout redirect").': <input type="text" name="CMS_VAR[2]" value="'.$cms_logout.'" /></td></tr>
      </table>';
?><?php
Output:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Loginbox
* Author(s)   :     Andreas Lindner
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     05.08.2005
************************************************/

#Includes
cInclude('classes', 'class.template.php');

# Login Redirect aus der Config holen
$cms_redirect = "CMS_VALUE[1]";

# Logout Redirect aus der Config holen
$cms_logout = "CMS_VALUE[2]";


#Redirect überprüfen - bleibt auf der selben id stehen wenn keine Config angegeben ist!
if($cms_redirect == ''){
  $cms_redirect = 'front_content.php?idcatart='.$idcatart;
}

# Logout Redirect überprüfen - Verweist auf die Startseite wenn kein Ziel angegeben ist
if($cms_logout == ''){
  $cms_logout = 'front_content.php?logout=yes';
}
else {
  $cms_logout = $cms_logout .'&logout=yes';
}

#DEBUG
#echo $cms_logout;

# Ende Änderungen GaMbIt


if ( !is_object($tpl) ) {
    $tpl = new Template;
}
$tpl->reset();

if ($auth->auth["uid"] == "nobody"){
	$template = 'login.html';

#	$tpl->set('s', 'FORM_ACTION', 'front_content.php?idcatart='.$idcatart);	
	$tpl->set('s', 'FORM_ACTION', $cms_redirect);	
	$tpl->set('s', 'USERNAME', mi18n("Username"));	
	$tpl->set('s', 'PASSWORD', mi18n("Passwort"));	
	$tpl->set('s', 'GO', mi18n("Go"));	
	$tpl->set('s', 'LOGIN', mi18n("Login"));	
} else {
	$template = 'logout.html';

	$tpl->set('s', 'CURRENT_USERNAME', mi18n("Sie sind angemeldet als"));	
	$tpl->set('s', 'USERNAME', $auth->auth["uname"]);	
#	$tpl->set('s', 'HREF', 'front_content.php?idcatart='.$idcatart.'&logout=yes');	
	$tpl->set('s', 'HREF', $cms_logout);	
	$tpl->set('s', 'LOGOUT', mi18n("Logout"));	
}


// Zusätzlicher Text im Login Modul oberhalb vom Formular wenn nicht eingeloggt
if ($edit) {
echo '   <div class="text_content">';
echo '      <div style="margin: 3px 29px 0px 26px; padding:0px 0px 10px 0px; width: 405px;">';
echo '<b>Textbereich wenn nicht angemeldet</b>';
echo ""."CMS_HTML[11]"."";
echo '      </div>';
echo '   </div>';
}
else {
  if ($auth->auth["uid"] == "nobody"){
    echo '   <div class="text_content">';
    echo '      <div style="margin: 3px 29px 0px 26px; padding:0px 0px 10px 0px; width: 405px;">';
    echo ""."CMS_HTML[11]"."";
    echo '      </div>';
    echo '   </div>';
  }
}

// Zusätzlicher Text im Login Modul oberhalb vom Formular wenn eingeloggt
if ($edit) {
echo '   <div class="text_content">';
echo '      <div style="margin: 3px 29px 0px 26px; padding:0px 0px 10px 0px; width: 405px;">';
echo '<b>Textbereich wenn angemeldet</b>';
echo ""."CMS_HTML[12]"."";
echo '      </div>';
echo '   </div>';
}
else {
  if ($auth->auth["uid"] != "nobody"){
    echo '   <div class="text_content">';
    echo '      <div style="margin: 3px 29px 0px 26px; padding:0px 0px 10px 0px; width: 405px;">';
    echo ""."CMS_HTML[12]"."";
    echo '      </div>';
    echo '   </div>';
  }
}
$tpl->generate('templates/'.$template);
?>

Nützliche Contenido Infos gibts hier: Contenido Wiki
motionpixels
Beiträge: 3
Registriert: Do 12. Mär 2009, 12:10
Kontaktdaten:

Re: nach frontend login automatisch bestimmte seite öffnen

Beitrag von motionpixels »

Hi und Danke schonmal für die schnelle Antwort!

Wenn man vorkonfiguert eingeben könnte, dass die zum Passwort gehörige Kategorie, bzw der Artikel aufgerufen werden soll, wäre das natürlich jetzt perfekt!
So könnte man einfach mehrere Login-Seiten anlegen - jeweils für den jeweiligen Artikel eine.
Ich hab allerdings ein bisschen Bedenken, dass mein Kunde leicht überfordert ist, wenn der für den redirect irgendwo ne URL eingeben soll ;)

Da das aber eh eher ein Gefallen, als ein bezahlter Auftrag ist, muss er da aber wohl durch.

Nochmal Danke - das hilft mir echt schon ne ganze Ecke weiter!
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: nach frontend login automatisch bestimmte seite öffnen

Beitrag von GaMbIt_ »

mach das doch ganz einfach anhand der Benutzergruppen Fest...
für jede Benutzergruppe gibts eine Loginseite... also eine Login-Zielseite...

Die kann man in den Mandanteneigenschaften festlegen... und anhand der gruppenmitgliedschaft des Users wird dann weitergeleitet...
Wobei das erst funktioniert wenn der User angemeldet ist... also brauchst Du eine zentrale Login-Zielzeite auf der ausgewählt wird wohin weitergesprungen wird...
Mit den Gruppen hast Du dann auch gleich die Berechtigungsfrage gelöst...

Mein Script ist da schon sehr primitiv :D
Nützliche Contenido Infos gibts hier: Contenido Wiki
motionpixels
Beiträge: 3
Registriert: Do 12. Mär 2009, 12:10
Kontaktdaten:

Re: nach frontend login automatisch bestimmte seite öffnen

Beitrag von motionpixels »

Okay - vielleicht hatte ich zu wenig Infos gegeben.

Um mal konkreter zu werden:

- es geht um eine Seite, auf der man verschiedene Motorradreisen buchen kann.
- zu jeder dieser Reisen gibt es "mehr Infos", die man lesen kann, wenn man diese Reise gebucht hat.
- Es wird also zu jeder neuen Reise eine Benutzergruppe angelegt, jeweils mit eigenem Passwort.
- Das Passwort (und Namen) erhält man per eMail - zusammen mit der Buchungsbestätigung...
- Wenn man sich mit Name und Passwort der jeweiligen Tour anmeldet, hat man nur Zugriff auf die entsprechende Seite (also der Navi-Punkt wird sichtbar)
- Das Login steckt als "linker Block" unter der Hauptnavi und ist auf jeder Seite sichtbar.

Soweit ist alles klar - und funktioniert auch wunderbar. Schön wäre es jetzt, wenn man nach dem Einloggen direkt auf die entsprechende Seite redirected würde und diese nicht erst durch klicken geöffnet wird...

Falls Du genau das meintest hab ich´s nicht richtig verstanden.

Gruß,
Daniel
idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: nach frontend login automatisch bestimmte seite öffnen

Beitrag von idea-tec »

das ist genau das was er meinte, denn:
woher bitte soll das Login-Formular VOR dem Login wissen auf welche Seite genau DIESER User geleitet werden soll -> er ist ja NICHT eingeloggt, also KEINER Gruppe zugeordnet

Um das Problem zu lösen benötigst du als 1 ZENTRALE Loginseite für das Verweisziel des Loginformulars
Für diese Login-Zielseite programmierst du dir ein Modul, das den User erst nett begrüßt und ihm mitteilt, dass er in wenigen Augenblicken direkt zu den Informationen seiner gebuchten Reise weiter geleitet wird.
Sollte sein Browser ihn nicht direkt weiter leiten: Klicke bitte hier
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Re: nach frontend login automatisch bestimmte seite öffnen

Beitrag von kummer »

so schwierig ist das nicht. das login erfolgt ja mit bordmitteln von contenido. man kann also irgendein formular verwenden, sofern die namen der felder der konvention entsprechen (username und password und die übertragung per post). man muss sich also nur ein modul erstellen, bei dem man die action auf basis eines get-parameters festlegen kann. z.b. so:

1. der link mit 'mehr infos' zeigt nicht auf den eigentlichen artikel, sondern auf das login-formular. als zusätzlichen parameter verendet man z.b. target und setzt den wert von target auf die idart des zielartikels.

2. die angesprochene seite mit dem login-formular prüft zunächst, ob der benutzer schon eingeloggt ist und über ausreichend rechte verfügt. ist das der fall, erfolgt eine weiterleitung auf die mit target bezeichnete idart.

3. verfügt der benutzer nicht über ausreichend rechte oder ist gar nicht eingeloggt, gibt das modul ein formular aus mit feldern für den benutzernamen und das passwort. als action wird dabei die idart gewählt, die mit dem get-parameter target ja bereit steht.

keine wirklich grosse sache also. damit allerdings eine weiterleitung aus einem modul heraus möglich ist, muss man die ausgabepufferung einschalten. sonst können keine headers gesendet werden. als behelfslösung kann man das natürlich auch mit javascript lösen. ist jedoch weniger elegant.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: nach frontend login automatisch bestimmte seite öffnen

Beitrag von GaMbIt_ »

YES... da war er.. mein Denkfehler :)
Nützliche Contenido Infos gibts hier: Contenido Wiki
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: nach frontend login automatisch bestimmte seite öffnen

Beitrag von rethus »

GaMbIt_ hat geschrieben:mach das doch ganz einfach anhand der Benutzergruppen Fest...
für jede Benutzergruppe gibts eine Loginseite... also eine Login-Zielseite...

Die kann man in den Mandanteneigenschaften festlegen... und anhand der gruppenmitgliedschaft des Users wird dann weitergeleitet...
Wo finde ich die Mandanteneinstellungen dazu? Suche auch schon überall die Möglichkeit, nach dem Login auf eine bestimmte Seite zu linken.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: nach frontend login automatisch bestimmte seite öffnen

Beitrag von GaMbIt_ »

Man kann in die Mandanteneigenschaften reinschreiben was man will....
Man muss nur dann später im Modul genau diese wieder auslesen...

Die Konfigurationsmöglichkeit ist in Contenido existenziell... gerade die Navigation wird so gesteuert ...
Nützliche Contenido Infos gibts hier: Contenido Wiki
Gesperrt