Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] menu z pętli, różne przed i po zalogowaniu
Forum PHP.pl > Forum > Przedszkole
lnn
Witam!

Mam sobie takie oto menu
  1. // elementy menu
  2. $menu = array( ''=>'Strona główna',
  3. 'add'=>'Dodaj obiekt',
  4. 'catalogue'=>'Przeglądaj katalog',
  5. 'search'=>'ZnajdĽ',
  6. 'register'=>'Zarejestruj się');
  7.  
  8. // tworzymy menu
  9. foreach($menu as $klucz => $element) {
  10. echo '<a class="link_menu" href="index.php?p='.$klucz.'">'.$element.'</a><br />';
  11. }


chciałem dodać link do Edytuj profil i najlepiej żeby pokazywał się zamiast Zarejestruj się po zalogowaniu i żeby menu nadal tworzyło się w pętli, dane z logowania zapamiętuję w sesji
  1. $_SESSION['logged']


jest coś takiego wykonalne?? jaki warunek tu stworzyć??
Dzięki za pomoc z góry
Blame
Tworzysz dwie tablice jedna dla normalnego gościa druga dla zalogowanego.
Dajesz coś w stylu:
  1. if($_SESSION['logged']=='1')
  2. $menu=$gosc; //$gosc to tablica dla gościa
  3. else
  4. $menu=$user;

i potem dajesz swoje foreach. Może można prościej no ale to tak na szybko.
lnn
no dzieki, a da sie pominac jakies elementy z tablicy np poprzez wskazanie ktorego ma nieuzywac w petli??
jakis np zlozony warunek??
darko
tak http://php.net/manual/en/function.array-filter.php albo http://php.net/manual/en/function.array-walk.php albo jeszcze prościej: usunąć konkretny klucz i przypisaną doń wartość.
lnn
zrobilem tak:
  1. // elementy menu dla wszystkich
  2. $menu = array( ''=>'Strona główna',
  3. 'add'=>'Dodaj obiekt',
  4. 'catalogue'=>'Przeglądaj katalog',
  5. 'search'=>'ZnajdĽ',
  6. 'register'=>'Zarejestruj się');
  7. // elementy menu dla zalogowanych
  8. $menu2 = array( ''=>'Strona główna',
  9. 'add'=>'Dodaj obiekt',
  10. 'catalogue'=>'Przeglądaj katalog',
  11. 'search'=>'ZnajdĽ',
  12. 'profile'=>'Edytuj profil');
  13.  
  14. // tworzymy menu
  15. if ($_SESSION['logged']==true) {
  16. foreach($menu2 as $klucz => $element)
  17. {
  18. echo '<a class="link_menu" href="index.php?p='.$klucz.'">'.$element.'</a><br />';
  19. }
  20. } else {
  21. foreach($menu as $klucz => $element)
  22. {
  23. echo '<a class="link_menu" href="index.php?p='.$klucz.'">'.$element.'</a><br />';
  24. }
  25. }

ale troche mi sie srednio to podoba smile.gif bo to tak naokolo,
musi byc jakis latwiejszy sposob na zaprzeczenie ktorych elementow z tablicy nie chce wczytywac...

Nie bardzo widze zastosowanie wskazanych funkcji.. chyba ze musze dokladniej przeczytac manuala snitch.gif

w kazdym badz razie- dzieki za pomoc
tokiano
  1. foreach($menu as $klucz => $element)
  2. {
  3.  
  4. if (($_SESSION['logged']==true) && ($klucz != 'register'){
  5.  
  6. echo '<a class="link_menu" href="index.php?p='.$klucz.'">'.$element.'</a><br />'; }
  7. }


wtedy nie wyswietli rejestracja
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.