Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zbudowac takie menu ...
Forum PHP.pl > Forum > PHP
B3T0N
ok, mamy strone z zawartoscia, gdzie zawartosc jest wyswietlana przez funkcje include()

  1. <?php
  2. if (!isset ($action)){
  3. $action = 'main';
  4. }
  5. if (!preg_match (&#092;"([^0-9a-zA-Z]+)\", $action)){
  6. include (&#092;"$action.php\");
  7. }
  8. else {
  9. include ('main.php');
  10. }
  11. ?>


z boku znajduje sie menu jak na rysunku 1 :




chcialbym, aby po kliknieciu w np. menu1 przenioslo mnie do zadanej zawartosci na stronie glownej, oraz aby rozwinelo mi sie podmenu (obrazek 2)

takze chcialbym aby to nie zwijalo mi sie, gdy nawiguje po zawartosci strony glownej - zrobilem juz takie na includach, ale niestety zwija mi sie

moze ktos mi pomoze ?

rysunek 2:
kubatron
A może by tak pomogł artykuł o drzewkach?? http://www.php.pl/index.php/phppl/artykuly...a/drzewka_w_php
donpablo
hmm, ja to zrobiłem tak:
utworzyłem plik tekstowy o nazwie menu.txt i nadałem mu charakter bazy danych w sposób nstepujacy:
id|dzial|poziom|opis|kat_php|plik_php|katalog|plik_tresci||
nie ma przeszkód aby zamiast pliku zrobić baze danych
id - to identyfikator
dzial - to dział
poziom - poziom menu itp: np.:
abt01|abt|1|O firmie||index.php|o_firmie/|o_firmie.html|
jeśli w polu poziom wpiszesz 2 to menu sie rozwinie
a kod realizujący działanie tego menu jest taki:
  1. [php]<table border=\"0\" rules=\"none\" width=\"170\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#006699\">
  2.  <tr>
  3.  <td class=\"tabmenu\"><sup>&nbsp;</sup><font color=\"yellow\">Menu główne<sub>&nbsp;</sub>
  4.  
  5.  
  6. <table width=\"170\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"rgb(149,210,240)\">
  7. <tr>
  8.  
  9. <td width=\"17\" height=\"1\" border=\"0\"><img src=\"<? echo $pixadr; ?>\" ></td>
  10. <td width=\"17\" height=\"1\" border=\"0\"><img src=\"<? echo $pixadr; ?>\" ></td>
  11. <td width=\"16\" height=\"1\" border=\"0\"><img src=\"<? echo $pixadr; ?>\" ></td>
  12. <td width=\"120\" height=\"1\" border=\"0\"><img src=\"<? echo $pixadr; ?>\" ></td> 
  13. </tr>
  14. <!-- Odczytanie pliku menu -->
  15.  
  16. <?
  17.  
  18. // otwarcie pliku w biez&plusmn;cym katalogu
  19. if(!($menu=@fopen(&#092;"menu.txt\",\"r\"))) {
  20. echo &#092;"Bł&plusmn;d otwarcia pliku\";
  21. }
  22. $next=&#092;"3\";
  23. while(!@feof($menu)) {
  24. $aktualny = 0;
  25. $i=0;
  26.  
  27. // odczyt pojedynczej linii pliku menu.txt
  28. $linia = @fgets($menu,255);
  29. if(ereg(&#092;"^[a-z0-9]\",$linia)){
  30. $rekord = split(&#092;"|\",$linia,10);
  31.  
  32.  
  33. // czy podswietlic menu
  34. if($id==$rekord[0]){
  35. $aktualny = 1;
  36. //je&para;li id jest takie jak warto&para;ć pierwszego rekordu to komletujemy &para;cieżkę do pliku skojarzonego z warto&para;ci&plusmn; id
  37. $texturl = $nawi[&#092;"lpath\"].$rekord[6].$rekord[7];
  38.  
  39. } else {
  40.  $aktualny = 0;
  41. }
  42.  
  43. if(substr($id,0,5)==$rekord[1]) $i++;
  44. else $i--;
  45.  
  46. /*komletujemy teraz adresik do odno&para;ników po zmiennej id*/ 
  47.  
  48. if(isset($_SESSION[&#092;"login\"]) && isset($_SESSION[\"haslo\"]))
  49. {
  50. $sessid = SID;
  51. $adres = $nawi[&#092;"adres\"].$rekord[4].$rekord[5].\"?id=\".$rekord[0].\"&\".$rekord[8].$sessid;  
  52. }
  53. else
  54. {  
  55. $sessid = &#092;"no_sess\";
  56. $adres = $nawi[&#092;"adres\"].$rekord[4].$rekord[5].\"?id=\".$rekord[0].\"&\".$rekord[8].\"user=anymous\".\"&\".$sessid;
  57. } 
  58.  
  59. // otwarcie pliku
  60. if($path_dir==&#092;"\"){
  61.  $url= $actual_path;
  62. }
  63. else {
  64.  $url= $adres.&#092;" \".$path_dir;
  65. }
  66. //grafiki dla poszczególnych zdarzeń
  67. if(($aktualny==&& $rekord[2]==1) || ($aktualny==&& $rekord[2]==2))
  68. {
  69. $gif = $pic[&#092;"on\"]; 
  70. } 
  71. else 
  72. {
  73.  
  74.  if($rekord[2]==1)
  75.  {
  76. $gif = $pic[&#092;"arrow\"];
  77.  }
  78.  else if($rekord[2]==2)
  79.  {
  80. $gif = $pic[&#092;"okrag\"];
  81.  }
  82.  }
  83. // czy rowin&plusmn;ć menu ?
  84. if(substr($id,0,3)==$rekord[1])
  85. {
  86.  $rozwin=true;
  87. }
  88. else 
  89. {
  90.  $rozwin = false ;
  91. }
  92. //wyswietlenie poszczególnych odno&para;ników
  93.  if($rekord[2]==0) {
  94. echo &#092;"<tr><td height=\"22\">\".$gif.\"</td>n\";
  95. echo &#092;"<td colspan=\"3\">\";
  96. echo &#092;"<A class=\"php1\" href=\"\".$adres.\"\">\";
  97. echo $rekord[&#092;"3\"];
  98. echo &#092;"</A></td></tr>n\";
  99.  
  100.  
  101.  } 
  102.  else if($rekord[2]==1) {
  103. echo &#092;"<tr><td height=\"22\">\".$gif.\"</td>n\";
  104. echo &#092;"<td colspan=\"3\" >\";
  105. echo &#092;"<A href=\"\".$adres.\"\" class=\"menulink\" class=&{ns4class};>\";
  106. echo $rekord[&#092;"3\"];
  107. echo &#092;"</A></td></tr>n\";
  108.  }
  109.  else if($rekord[2]==&& $rozwin) {
  110. echo &#092;"<tr><td>&nbsp;</td><td height=\"20\">\".$gif.\"</td>\";
  111. echo &#092;"<td colspan=\"3\">\";
  112. echo &#092;"<A class=\"php2\" href=\"\".$adres.\"\">\";
  113. echo $rekord[&#092;"3\"];
  114. echo &#092;"</A></td></tr>\";
  115.  }
  116.  
  117.  }//koniec ifa
  118. } // end while() 
  119. fclose($menu);
  120. ?>
  121. </table>
  122. </td>
  123. </tr>
  124. </table>
[php]
zapisujesz to jako np. menu.php i includujesz do pliku głównego, zmienne $gif zawierają ścieżki do plików .gif które musisz sobie zrobić i to na tyle , reszta nie wymaga chyba komentarza
B3T0N
dzieki, przestudiuje artykul o drzewach , oraz ten skrypt - jeszcze raz wielkie dzieki za pomoc

pozdrawiam!
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.