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:
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}
Hoffe das hilft Dir weiter.