Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CSS][PHP]Aktywna zakładka PHP
devilangel
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.09.2009

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


Temat być może był poruszany już w wielu postach mimo wszystko nie mogę sobie z tym poradzić. Otóż mam plik index php w którym jest naglowek, menu, i tresc strony. Do treści strony zaincludowałem pliki php, które uruchamia się z menu więc chciałbym aby w menu były wyróżnione aktywne zakladki po zaincludowaniu treści strony. odsyłacze wyglądają następująco.
Kod
<ul id="button">

<li><a href="?id=glowna" title="Strona główna" id="current">Strona Główna</a></li>
<li><a href="?id=download" title="Download">Download</a></li>
<li><a href="?id=kontakt" title="Konakt">Kontakt</a></li>
<li><a href="?id=projekty" title="Projekty">Projekty</a></li>
<li><a href="index.php?glowna&id=kontakt" title="Konakt">Kontakt</a></li>
<li><a href="?id=allegro" title="FORUM">Allegro</a></li>
</ul>

Próbowałem już w css metodą class ale nie mogę nic zdziałać. Jeszcze staram się znaleźć coś na za granicznych stronach np.
Kod
<?php
$active[$current] = “class=aktywny”;
?>
<li <?php echo $active[1] ?>><?php if ($current != 1) { echo "<a href=\"index.php\">home</a>"; } else { echo "Glowna"; } ?></li>
<li <?php echo $active[2] ?>><?php if ($current != 2) { echo "<a href=\"?id=download\">web</a>"; } else { echo "Download"; } ?></li>

Ale coś tu nie działa. Może gdybym do każdego zaincludowanego pliku php dodał jakiś parametr, który po wczytaniu zamieniałby w menu aktywną zakładkę.
Oczywiście w pliku style.css mam dodaną klasę aktywny z odpowiednim parametrem zmieniającym.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Podobną rzecz sam niedawno robiłem w menu 2-poziomowym, tyle że we frameworku. Ustaliłem sobie, że kontroler strony otrzymuje z podstron numer. W kontrolerze strony głownej tylko sprawdzałem go i ustawiałem odpoweiedn element menu na aktywny. Na czystym php po prostu ustawiałbym jakąś zmienna GET i w zależności od niej dodawałbym klasę (IMG:style_emoticons/default/smile.gif)
  1. <ul>
  2. <li><a href="link" <?php echo ($_GET['id']==1 ? 'class="aktywna"' : ''; ) ?>>Link</a></li>
  3. <li><a href="link2" <?php echo ($_GET['id']==2 ? 'class="aktywna"' : ''; ) ?>>Link2</a></li>
  4. <li><a href="link3" <?php echo ($_GET['id']==3 ? 'class="aktywna"' : ''; ) ?>>Link3</a></li>
  5. </ul>
Coś w tyn stylu (IMG:style_emoticons/default/winksmiley.jpg)

EDIT: Oczywiście nie musisz tego przesyłać jako GET, możesz użyć sesji czy czego chcesz. Ważne tylko by strona otrzymała właściwy numer. No i oczywiście zmienna musi być chroniona przed XSS. Ja dałem taką składnię, bo domyślam się, że to jakiś szablon a nie, że każda podstrona jest napisana w całości jako osobny plik zawierający także menu. Pewnie masz szablon strony głównej z include'owanymi plikami treści podstron.

Ten post edytował thek 11.09.2009, 08:05:37
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Sprawdzone - działa:
  1. <style type="text/css">
  2. a.aktywny {
  3. font-weight: bold;
  4. }
  5. </style>
  6.  
  7. <?php
  8. $menu = array(
  9. 'glowna' => 'Strona główna',
  10. 'download' => 'Download',
  11. 'kontakt' => 'Kontakt'
  12. // ...itd
  13. );
  14.  
  15. $current = isset($_GET['id']) ? $_GET['id'] : NULL;
  16.  
  17. if (!isset($menu[$current])) {
  18. $current = 'glowna';
  19. }
  20. ?>
  21.  
  22. <ul id="button">
  23.  
  24. <?php foreach ($menu as $key => $item): ?>
  25. <li><a href="?id=<?php echo $key; ?>" title="<?php echo $item; ?>"<?php echo ($key == $current ? ' class="aktywny"' : ''); ?>><?php echo $item; ?></a></li>
  26. <?php endforeach; ?>
  27.  
  28. </ul>
Go to the top of the page
+Quote Post
devilangel
post
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.09.2009

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


To działa CUD (IMG:style_emoticons/default/smile.gif) a spędziłem przy tym kilka godzinek w pracy w wolnej chwili (IMG:style_emoticons/default/smile.gif) Pozdrawiam Serdecznie
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: 14.09.2025 - 18:54