Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]FileManager
Forum PHP.pl > Forum > PHP
lDoran
  1. <?php
  2. class mFileManager
  3. {
  4. private $_currentCatalog; //Aktualny katalog
  5. private $_currenFiles; //Aktualny plik
  6. private $_counter = 0; //Licznik
  7.  
  8. public $_arFiles = array(); //Tablica wszystkich plików
  9.  
  10.  
  11. //Ustawia ścieżkę aktualnego katalogu
  12. public function __construct($catalog)
  13. {
  14. $this -> _currentCatalog = $catalog;
  15. $this -> getData();
  16. }
  17.  
  18. //Zwraca tablicę plików w katalogu
  19. public function getData()
  20. {
  21. $this -> _currentCatalog = opendir($this -> _currentCatalog);
  22.  
  23. while($this -> _currentFiles = readdir($this -> _currentCatalog))
  24. {
  25. $this -> _arFiles[$_counter] = $this -> _currentFiles;
  26. $this -> _counter++;
  27. }
  28. closedir($this -> _currentCatalog);
  29.  
  30. return $this -> _arFiles;
  31. }
  32. }
  33. ?>


  1. <?php
  2. class cFileManager
  3. {
  4. //Dane
  5. private $_arFiles = array();
  6.  
  7. //Obiekty
  8. private $_model;
  9. private $_view;
  10.  
  11.  
  12. //Uruchamia model
  13. public function __construct()
  14. {
  15. $this -> runModel();
  16. $this -> setData();
  17. $this -> runView();
  18. }
  19.  
  20. //Przekazuje do modelu ściężkę katalogu
  21. private function runModel()
  22. {
  23. $this -> _model = new mFileManager('web/gallery/');
  24. }
  25.  
  26. //Ustawia tablicę dla _arFiles klasy cFileManager
  27. private function setData()
  28. {
  29. $this -> _arFiles = ($this -> _model -> _arFiles);
  30. }
  31.  
  32. //Uruchamia widok
  33. private function runView()
  34. {
  35. $this -> _view = new vFileManager($this -> _arFiles);
  36. }
  37. }
  38. ?>


  1. <?php
  2. class vFileManager
  3. {
  4. //Dane
  5. private $_arFiles = array(); //Tablica plików
  6.  
  7.  
  8. public function __construct($arFiles)
  9. {
  10. $this -> _arFiles = $arFiles;
  11. $this -> viewPage();
  12. }
  13.  
  14. //Metoda odopowiedzialna za formatowanie wyników
  15. private function viewPage()
  16. {
  17. echo '<ul>';
  18. for($i = 0; $i < count($this -> _arFiles); $i++)
  19. {
  20. echo '<li>' . $this -> _arFiles[$i] .'</li>';
  21. }
  22. echo '</ul>';
  23. }
  24. }
  25. ?>


Efekt jaki dostaję po stronie przeglądarki:
  1. <ul><li></li></ul>

Ciągle szukam błędu ale coś go nie mogę dostr sciana.gif zec
Fixus
zrób banalne debugowanie.

w konstruktorze vFileManager daj print_r na tablicę
jak jest pusta to idź tam gdzie konstruktor jest wywołany i sprawdź czy parametr (czyli ta tablica ma dane)

po nitce do kłębku zobaczysz gdzie się wartości ci gubią
lDoran
Heh błąd banalny, poniżej podaję klasy do zmodyfikowania
  1. <?php
  2. class mFileManager
  3. {
  4. private $_currentCatalog; //Aktualny katalog
  5. private $_currenFiles; //Aktualny plik
  6. private $_counter = 0; //Licznik
  7. private $_arFiles = array(); //Tablica wszystkich plików
  8.  
  9.  
  10. //Ustawia ścieżkę aktualnego katalogu
  11. public function __construct($catalog)
  12. {
  13. $this -> _currentCatalog = $catalog;
  14. }
  15.  
  16. //Zwraca tablicę plików w katalogu
  17. public function getData()
  18. {
  19. $this -> _currentCatalog = opendir($this -> _currentCatalog);
  20.  
  21. while($this -> _currentFiles = readdir($this -> _currentCatalog))
  22. {
  23. $this -> _arFiles[$this -> _counter] = $this -> _currentFiles;
  24. $this -> _counter++;
  25. }
  26. closedir($this -> _currentCatalog);
  27.  
  28. return $this -> _arFiles;
  29. }
  30. }
  31. ?>

  1. <?php
  2. class cFileManager
  3. {
  4. //Dane
  5. private $_arFiles = array();
  6.  
  7. //Obiekty
  8. private $_model;
  9. private $_view;
  10.  
  11.  
  12. //Uruchamia model
  13. public function __construct()
  14. {
  15. $this -> runModel();
  16. $this -> setData();
  17. $this -> runView();
  18. }
  19.  
  20. //Przekazuje do modelu ściężkę katalogu
  21. private function runModel()
  22. {
  23. $this -> _model = new mFileManager('web/gallery/');
  24. }
  25.  
  26. //Ustawia tablicę dla _arFiles klasy cFileManager
  27. private function setData()
  28. {
  29. $this -> _arFiles = ($this -> _model -> getData());
  30. }
  31.  
  32. //Uruchamia widok
  33. private function runView()
  34. {
  35. $this -> _view = new vFileManager($this -> _arFiles);
  36. }
  37. }
  38. ?>
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.