Hoi zämä
Verlässt ein FEU den internen Bereich und will wieder da hin, kommt er/sie über die Login-Seite nicht mehr automatisch auf die "internen" Seiten (bei der Anmeldung aber schon).
Wie müsste der Code sein, der in der Login-Seite herausfindet, ob die Anmeldung schon gemacht (und dann auf die internen Seiten weiterleitet)?
Ich habe lange gesucht, aber bin nicht fündig geworden. Irgendwie müsste etwas zwischen {if $ccuser->loggedin()} und {/if} stehen.
Merci ür Antworten!
tinu
[Gelöst] FrontEndUser - Weiterleitung auf interne Seite
[Gelöst] FrontEndUser - Weiterleitung auf interne Seite
Last edited by tinu on Wed Oct 07, 2009 8:14 pm, edited 1 time in total.
Re: FrontEndUser - Weiterleitung auf interne Seite
Puh.
Jetzt muss ich das erstmal aufdröseln.
Ich vermute mal die internen Seiten sind nicht im Menü sichtbar.
Wenn sie das nämlich wären, wäre das alles kein Problem.
Wie sieht denn die Seitenstruktur aus?
Ich persönlich habe es letztens folgendermaßen realisiert...
Seitenstruktur:
1 Home (Startseite)
2 My Home (User-Seite mit Profil, Seitenalias beginnt z.B. mit "member_")
2.1 weitere interne Seiten (Seitenalias beginnt ebenfalls immer mit "member_")
2.2 ...
2.3 ...
3 Contact
4 Impressum
Im Template müssen zunächst ganz oben die Module FrontendUsers und CustomContent aufgerufen werden.
Somit haben wir alle nötigen Variablen, um den Login-Status zu prüfen.
Dabei muss aber der Zwischenspeicher für alle Seiten deaktiviert werden.
Aus Sicherheitsgründen prüfe ich im Template zunächst, ob der User angemeldet/nicht angelemdet ist und ob er zufällig auf eine interne Seite zugreift oder nicht. Das mache ich gleich ganz oben nach FrontendUsers und CustomContent.
Ist er nicht angemeldet und greift auf eine interne Seite zu, wird umgeleitet auf z.B. die Startseite (oder irgendeine Login-Seite).
Edit: Dafür gibts bereits ein Plugin. Bsp: {redirect_page page="home"}. Macht genau das gleiche :)
Weiterhin wird je nach Login-Status das Menu mit dem Parameter exlcude_prefix="member_" aufgerufen.
Somit werden interne Seiten nur im Menü angezeigt, wenn man eingeloggt ist, wodurch der User sehr leicht wieder auf seine interne Seite findet, ohne über irgendeine Login-Seite umgeleitet werden zu müssen.
Bsp:
Template:
Hoffe das hilft Dir weiter.
Jetzt muss ich das erstmal aufdröseln.
Ich vermute mal die internen Seiten sind nicht im Menü sichtbar.
Wenn sie das nämlich wären, wäre das alles kein Problem.
Wie sieht denn die Seitenstruktur aus?
Ich persönlich habe es letztens folgendermaßen realisiert...
Seitenstruktur:
1 Home (Startseite)
2 My Home (User-Seite mit Profil, Seitenalias beginnt z.B. mit "member_")
2.1 weitere interne Seiten (Seitenalias beginnt ebenfalls immer mit "member_")
2.2 ...
2.3 ...
3 Contact
4 Impressum
Im Template müssen zunächst ganz oben die Module FrontendUsers und CustomContent aufgerufen werden.
Somit haben wir alle nötigen Variablen, um den Login-Status zu prüfen.
Dabei muss aber der Zwischenspeicher für alle Seiten deaktiviert werden.
Aus Sicherheitsgründen prüfe ich im Template zunächst, ob der User angemeldet/nicht angelemdet ist und ob er zufällig auf eine interne Seite zugreift oder nicht. Das mache ich gleich ganz oben nach FrontendUsers und CustomContent.
Ist er nicht angemeldet und greift auf eine interne Seite zu, wird umgeleitet auf z.B. die Startseite (oder irgendeine Login-Seite).
Edit: Dafür gibts bereits ein Plugin. Bsp: {redirect_page page="home"}. Macht genau das gleiche :)
Weiterhin wird je nach Login-Status das Menu mit dem Parameter exlcude_prefix="member_" aufgerufen.
Somit werden interne Seiten nur im Menü angezeigt, wenn man eingeloggt ist, wodurch der User sehr leicht wieder auf seine interne Seite findet, ohne über irgendeine Login-Seite umgeleitet werden zu müssen.
Bsp:
Template:
Code: Select all
{* FrontendUsers und CustomContent *}
{cms_module module="FrontEndUsers" form="silent"}
{cms_module module="CustomContent"}
{* prefix des seitenalias auslesen und der variable $alias_prefix zuweisen
der Modifikator truncate:7:'' bewrikt, dass nach der 7. Stelle des Seitenalias der Text abgeschnitten wird
somit hat man als Wert für die Variable $alias_prefix z.B. nur die ersten 7 Zeichen
(7 deshalb, weil als Besipielprefix für die internen seiten "member_" verwendet wurde) *}
{assign var="alias_prefix" value=$page_alias|truncate:7:''}
{* alle nicht angemeldeten user, die auf einer interne seite zugreifen umleiten *}
{if $alias_prefix=="member_" && !$ccuser->loggedin()}
{redirect_page page="home"}
{/if}
{* interne Seiten im Menü für nicht angelemdete User ausblenden *}
{if !$ccuser->loggedin()}
{menu ... excludeprefix="member_"}
{else}
{menu ... }
{/if}
Last edited by NaN on Wed Oct 07, 2009 11:15 am, edited 1 time in total.
Re: FrontEndUser - Weiterleitung auf interne Seite
Evtl. hilft dir das Plugin {redirect_page} weiter.
Alternativ könntest du den Aufruf des MenüManagers entsprechend modifizieren, dass nur nach einem Login die vollständige Menü-Struktur angezeigt wird, in etwa so
wobei der Seiten-Alias der internen Seiten mit "intern_" beginnen muss.
Alternativ könntest du den Aufruf des MenüManagers entsprechend modifizieren, dass nur nach einem Login die vollständige Menü-Struktur angezeigt wird, in etwa so
Code: Select all
{if $ccuser->loggedin()}
{menu}
{else}
{menu excludeprefix='intern_'}
{/if}
Re: FrontEndUser - Weiterleitung auf interne Seite
Upps, diesmal warst du schneller
...

Re: FrontEndUser - Weiterleitung auf interne Seite
Ach da gibts schon ein Plugin für?cyberman wrote: Evtl. hilft dir das Plugin {redirect_page} weiter.

cyberman wrote: Upps, diesmal warst du schneller...

[Gelöst] FrontEndUser - Weiterleitung auf interne Seite
Yep NaN und cyberman, supi, genau das suchte ich! Und glaubt mir, wer von Euch schneller war, ist mir ziemlich wurscht - ich bedank mich bei beiden!
Ich hab jetzt 4 cmsms laufen, da wird's wieder einmal eine Frage geben ...
villi gruess
tinu
Ich hab jetzt 4 cmsms laufen, da wird's wieder einmal eine Frage geben ...
villi gruess
tinu