Moin moin,
gibt es eine Möglichkeit, für jede Gruppe ein eigenes Menü zu erstellen, so das das öffentliche Menü nach dem Login nicht mehr angezeigt wird?
Gruss
Nordflyer
Gruppen-Menü
(8 posts) (2 voices)-
vor 1 year veröffentlicht #
-
Hallo,
ja, gibt es.
Schau mal hier, da steht wie Du mehrere Menüs verwenden kannst.
Wenn Du Dir dann noch z.B. das Standard-Template Round ansiehst, dort gibt es einen Login/Logout Bereich. Verwende die else-Abfrage vom Logout als if-Abfrage für das 2. Menü, dann wird es nur angezeigt wenn der Besucher auch angemeldet ist.
Viele Grüße,
Danielvor 1 year veröffentlicht # -
... das war ja eine schnelle Antwort :-))
Die info.php hatte ich schon geändert, nur die Auswahl habe ich nicht hin bekommen.
Danke, Gruss Nordflyervor 1 year veröffentlicht # -
Ja, toll, oder?
Dank dank Android und dem Motorola Milestone kann ich auch vom Handy aus Fragen beantworten.
Was meinsr Du mit auswahl?
Wenn Du nur ein Menü hast, muss es nicht in der info.php stehen. Wenn Du aber zwei Menüs verwenden möchtest, müssen beide in der info.php definiert sein.
In den erweiterten Optionen musst Du dann noch mehrere Menüs einschalten.
Dann kannst Du einzelne Seiten (in den Seiteneinstellungen jeder Seite) dem 2. Menü zuweisen.vor 1 year veröffentlicht # -
ja, klasse
Android habe ich auch, nur meins tickt im G1.
In der info.php steht folgendes:
$menu[1] = 'Hauptnav';
$menu[2] = 'Kundennav';
Und in der index.php:
< ?php
if(FRONTEND_LOGIN AND !$wb->is_authenticated()) {
?>
<h3>< ?php echo $TEXT['LOGIN']; ?></h3>
<form name="login" action="<?php echo LOGIN_URL; ?>" method="post">
<p class="searchform">
< ?php echo $TEXT['USERNAME']; ?>:
<input type="text" name="username" class="searchbox"/>
< ?php echo $TEXT['PASSWORD']; ?>:
<input type="password" name="password" class="searchbox"/>
<input type="submit" name="submit" value="<?php echo $TEXT['LOGIN']; ?/>" class="searchbutton" />
< ?php echo $TEXT['FORGOT_DETAILS']; ?>
< ?php if(is_numeric(FRONTEND_SIGNUP)) { ?>
< ?php echo $TEXT['SIGNUP']; ?>
< ?php } ?>
</form>
< ?php
} elseif(FRONTEND_LOGIN AND $wb->is_authenticated()) {
?>
<h3>< ?php echo $TEXT['LOGGED_IN']; ?></h3>
<form name="logout" action="<?php echo LOGOUT_URL; ?>" method="post">
<p class="searchform">
< ?php echo $wb->get_display_name(); ?>
<input type="submit" name="submit" value="<?php echo $MENU['LOGOUT']; ?/>" class="searchbutton" />
</form>
< ?php
}
?>
Vielleicht kannst Du mir noch einen Tipp geben, was ich wo ändern muss, denn php ist nicht mein Steckenpferd.
Gruss Nordflyervor 1 year veröffentlicht # -
Upps...
<?php if(FRONTEND_LOGIN AND !$wb->is_authenticated()) { ?> <h3><?php echo $TEXT['LOGIN']; ?></h3> <form name="login" action="<?php echo LOGIN_URL; ?>" method="post"> <p class="searchform"> <?php echo $TEXT['USERNAME']; ?>: <input type="text" name="username" class="searchbox"/> <?php echo $TEXT['PASSWORD']; ?>: <input type="password" name="password" class="searchbox"/> <input type="submit" name="submit" value="<?php echo $TEXT['LOGIN']; ?/>" class="searchbutton" /> <a href="<?php echo FORGOT_URL; ?>"><?php echo $TEXT['FORGOT_DETAILS']; ?></a> <?php if(is_numeric(FRONTEND_SIGNUP)) { ?> <a href="<?php echo SIGNUP_URL; ?>"><?php echo $TEXT['SIGNUP']; ?></a> <?php } ?> </p> </form> <?php } elseif(FRONTEND_LOGIN AND $wb->is_authenticated()) { ?> <h3><?php echo $TEXT['LOGGED_IN']; ?></h3> <form name="logout" action="<?php echo LOGOUT_URL; ?>" method="post"> <p class="searchform"> <a href="<?php echo PREFERENCES_URL; ?>"> <?php echo $wb->get_display_name(); ?></a> <input type="submit" name="submit" value="<?php echo $MENU['LOGOUT']; ?/>" class="searchbutton" /> </p> </form> <?php } ?>
So sollte es besser gehen...vor 1 year veröffentlicht # -
Ja, ich habe den Ausgabepuffer des Forums immer noch nicht ganz fertig, sorry.
Man muss für Code leider immer den Code-Block verwenden. Aber ich arbeite daran.
Ich weiss nicht ob Du show_menu oder show_menu verwendest. Ich gehe aber mal von show_menu aus.
Im Template wäre dann der Aufruf für
Hauptnav
<?php show_menu(1); ?>
und für
Kundennav
<?php show_menu(2); ?>
Bei Login steht ja
if(FRONTEND_LOGIN AND !$wb->is_authenticated()) {
Das bedeutet so viel wie: Wenn Frontendlogin in den Optionen eingeschaltet ist und gleichzeitig der Benutzer nich angemeldet ist, dann mache irgend etwas.
Du brauchst ja jetzt das Gegenteil. Das Menü soll ja nur angezeigt werden wenn der Benutzer angemeldet ist. Weil dazu auch das Loginfeld vorhandensein muss, kann die Abfrage ob dieses in den Optionen überhaupt auch aktiviert ist bleiben.
Lediglich das ! in der Abfrage muss weg. Dieses steht sozusagen für nicht.
Dein Aufruf für das Kundenmneü könnte dann etwa so aussehen:
< ?php if(FRONTEND_LOGIN AND $wb->is_authenticated()) { ?>
<?php show_menu(2); ?>
< ?php } ?>
Zwischen den geschweiften Klammern wird das ausgeführt, was auf die if-Bedingung zutrifft.
Die spitzen Klammern gefolgt von einem Fragezeichen und php leiten einen PHP-Bereich ein. Dieser wird mit einem Fragezeichen und einer geschlossenen spitzen Klammer wieder beendet.
So könntest Du das Menü noch mit z.B. einem DIV verfeinern, etwa so:
< ?php if(FRONTEND_LOGIN AND $wb->is_authenticated()) { ?>
<div>
<?php show_menu(2); ?>
</div>
< ?php } ?>
Auch das DIV wird dann nur angezeigt wenn die IF-Bedingung erfüllt ist (also Login ist eingeschaltet und Benutzer ist angemeldet)
Oder wenn Du das nicht brauchst, kannst du auch alles in einen einzigen PHP-Bereich packen, etwa so:
<?php if(FRONTEND_LOGIN AND $wb->is_authenticated()) { show_menu(2); } ?>
Getestet habe ich den Code jetzt nicht, der sollte aber gehen.
Viele Grüße,
Danielvor 1 year veröffentlicht # -
Moin moin,
danke für Deine Hilfe, habe es hinbekommen. Und damit auch andere etwas davon haben, hier die Lösung:
info.php:
$menu[1] = 'Hauptnav';
$menu[2] = 'Kundennav';
index.php:
<div id="nav"> <?php if(FRONTEND_LOGIN AND !$wb->is_authenticated()) { show_menu(1); } elseif(FRONTEND_LOGIN AND $wb->is_authenticated()) { show_menu(2); } ?> </div>
In der Seitenverwaltung müssen die Seiten dem Menü zugeordnet werden und unter Optionen "Mehrere Menüs: Einschalten".
Gruss
Nordflyervor 1 year veröffentlicht #
Antwort
Du musst angemeldet sein, um einen Beitrag zu schreiben.
