Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dynamiczne Menu oparte na strukturze plików
jaskooo
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 24.04.2004
Skąd: Warszawa

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


Witam,

Problem polega na tym, iż chciałbym aby na podstawie struktury na dysku tworzyło się menu katalogów w których są zdjęcia i po kliknięciu na link z danym folderem wyświetlała się jego zawartość.

Na razie zrobiłem i działa ale tylko na jednym poziomie czyli nie obsługuje zagnieżdżenia katalogów
oto kod
  1. <html>
  2. <head>
  3. <title>Obrazy</title>
  4. </head>
  5. <body style='background-color: #9a9a9a'>
  6.  
  7.  
  8. <div style='width: 100px; float:left; margin-top: 20px;'>
  9. <?php
  10.  
  11. $jaki = (!empty($_GET['kat']))$_GET['kat'] : 'lusowo';
  12.  
  13.  
  14. $folder = @opendir('.');
  15. if(!$folder){
  16. echo "Nie ma folderow:(";
  17. }
  18.  
  19.  
  20. while(($files = readdir($folder)) !== false){
  21.  
  22. if (is_dir($files) && $files != '.' && $files != '..'){
  23.  
  24. echo "<li style=' list-style-type: none;'><a style='text-decoration:none; border-bottom: 1px dashed gray; color: white;' href='index.php?kat=$files'>$files</a></li>";
  25. }
  26.  
  27. }
  28. echo "<br />";
  29.  
  30.  
  31. $bazazdj = @opendir($jaki);
  32. if(!$bazazdj){
  33. echo "Nie ma folderow:(";
  34. }
  35. ?>
  36. </div>
  37.  
  38. <div style='width: 1000px; margin-top: 20px; float: left; position: relative;'>
  39.  
  40. <?php
  41.  
  42. while(($file = readdir($bazazdj)) !== false){
  43.  
  44. if ($file != '.' && $file != '..' && $file != '.DS_Store' && !is_dir($file)){
  45.  
  46. echo "<a href='$jaki/$file'><img src='$jaki/$file' width='300px' style='border: 1px solid gray; margin-left: 10px; margin-bottom: 10px;'></img></a>";
  47. }
  48. }
  49.  
  50.  
  51.  
  52.  
  53.  
  54. ?>
  55. </div>
  56.  
  57. </body>
  58. </html>


Powyzsze skrypty powodują iż wyświetlają sie zdjęcia z danego folderu, ale chce żeby to było dynamiczne, czyli jak w katalogu stworze inny katalog to aby dodawał się do menu i tworzył się do niego automatycznie link do jego zawartości.

P.S. Na razie jest to napisane proceduralnie, ale jak mi sie uda tak to spróbuje obiektowo (jeszcze nic tak nie pisałem, ale trzeba zacząć).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jaskooo
post
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 24.04.2004
Skąd: Warszawa

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


Wziąłem sobie do serca, teraz listowanie plików wyglada tak:

  1. <?php
  2. $handle_dir = '.';
  3.  $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($handle_dir));
  4.  
  5.  foreach ($iterator as $fileInfo) {
  6.  
  7.  echo $fileInfo->getFileInfo() . "<br />n";
  8.  
  9.  }
  10. ?>


Zastanawiam się jeszcze jak wyświetlić same katalogi i jak znich zrobi drzewo (wizualnie).


Ale rozumiem, że powinienem trochę sam pogłówkować inaczej się nic nie naucze.

Nabyłem już 3 księgi z PHP z czego jedna jest stricte o OOP.

Obiecuje, że będę próbował obiektować gdzie tylko się da (oczywiście jak się nauczę)


P.S. Jak ktoś by miał pomysł na wizualizację drzewka katalogów to prosze o pomoc.


No i znowu zonk!

Kod wyglada tak:
  1. <?php
  2.  
  3.  
  4. $path = 'Gallery';
  5.  
  6. foreach (new DirectoryIterator($path) as $DirInfo) {
  7.  
  8. if ($DirInfo->isDir() && $DirInfo != '.' && $DirInfo != '..') {
  9.  
  10. echo $DirInfo->getFilename() . "<br />n";
  11.  
  12. }
  13. }
  14.  
  15.  
  16. ?>


Ale caly czas wyswietla tylko katalogi I rzedu w katalogu Gallery, natomiast nie chce wyswietlac katalogow zagniezdzonych czyli podkatalogow.

Co robie zle (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

DZIAŁA

Zrobiłem, oto kod:

  1. <?php
  2.  $path = 'Gallery';
  3.  
  4. $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
  5.  
  6. foreach ($iterator as $DirInfo) {
  7. if ($DirInfo->isDir() && $DirInfo != '.' && $DirInfo != '..') {
  8.  
  9. echo "<li><a href='index.php?kat=".$DirInfo->getPath()."/".$DirInfo->getFilename()."'>".$DirInfo->getFilename()."</a></li>";
  10.  
  11. }
  12. }
  13.  
  14.  
  15. ?>



Przede wszystkim wielkie dzieki dla @mike za pomoc i super artykuł na blogu (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !! Dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 12:18