Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/css] Menu
potreb
post
Post #1





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Chcę zrobić podobne menu jak w tym przykładzie. Jeżeli jestem na jakiejś podstronie to link ma background biały.

W jaki sposób można takie menu wykonać?

Takie menu już stosuje na jednej stronie, ale na innej już nie zdaje egzaminu, dlaczego? Ścieżkę pobieram z bazy i przeglądarki. Jeżeli np forum.html = forum.html to link ma biały background, ale jeżeli się zagłębiam dalej w forum i mam forum-id,2.html to już jest źle. No i właśnie nie wiem w jaki sposób wykonać takie menu, aby działało dla każdej z podstron.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Cezar708
post
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


To niestety trzeba znaleźć jakiś wspólny mianownik (część URL), która jest wspólna dla każdego z podstron. Nie wiem w jaki sposób definiujesz linki, ale można to zrobić na przykład tak (oczywiście wcale nie musi działać dla Twojego przykładu)

  1. <?php
  2. function isCurrentSubsite($link, $currentSite){
  3. return preg_match("/$currentSite/", $link);
  4. }
  5. ?>


  1. .active{
  2. background-color: white;
  3. }
  4. .deactive{
  5. background-color: silver; /*przyklad oczywiscie*/
  6. }
  7. <ul>
  8. <?php foreach( $aMenu as $aItem ): ?>
  9. <?php if ( isCurrentSubsite($aItem['link']) ): ?>
  10. <li class='active'>
  11. <?php else: ?>
  12. <li class='deactive'>
  13. <?php endif: ?>
  14. <a href='<?php echo $aItem['link'] ?>'><?php echo $aItem['name'] ?></a>
  15. </li>
  16. <?php endforeach; ?>
  17. </ul>


innym rozwiązaniem może być sztuczne dodanie zmiennej do URL i sprawdzanie dal każdej z podstron... ale to może być trochę kłopotliwe...
Go to the top of the page
+Quote Post
potreb
post
Post #3





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dzięki cezar, ja robiłem to w taki sposób, sprawdzałem czy np w adresie występuje jakiś wspólny mianownik:

  1. <?php
  2. if(eregi("forum", $link))
  3. ?>


Niestety ten sposób jest niezbyt poprawny, bo jeżeli mam jakiś inny moduł np pages, albo news gdzie wchodząc w podstronę otwieram stronę o id=5 to musiałbym tych regułek trochę napisać, stwierdziłem, że to jest nie uniwersalny sposób na takie menu.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 10:44