Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Sortowanie zdjęć, pomocy!
Forum PHP.pl > Forum > Przedszkole
zurun
Witam, Mam w skrypcie CMSa swojej strony kod który odpowiada za wyświetlanie zdjęć w sliderze wszystko działa tylko mam problem z kolejnością w jakiej się wyświetlają. Który element kodu odpowiada za to w jakiej kolejności obrazki się wyświetlają na stronie? Jeśli numeruje obrazki 1.png,2.png,3.png,4.png itd. to nie wyświetla ich ani od najmniejszego do największego ani według daty dodania. Nie wyświetla też losowo za każdym odświeżeniem strony, jest stała kolejność ale nie wiem od czego ona zależy. Jestem początkujący a programista który to pisał miał wypadek i nie żyje ktoś może pomóc?

kod:
  1. <?php
  2.  
  3. $path_to_slides_catalogue = $MODULE_CONFIG['path_to_slides_catalogue'];
  4. ?>
  5.  
  6. <?php
  7. if(substr($path_to_slides_catalogue, mb_strlen($path_to_slides_catalogue)-1, 1) == '/')
  8. {
  9. $path_to_slides_catalogue = substr($path_to_slides_catalogue, 0, mb_strlen($path_to_slides_catalogue)-1);
  10. }
  11. else
  12. {}
  13.  
  14. $cat = "".$path_to_slides_catalogue;
  15. $handle = opendir($cat);
  16. while ($file = readdir($handle))
  17. {
  18. if((!is_dir($cat.$file)) && ($file != '.') && ($file != '..'))
  19. {
  20. #$ext = end(explode(".", $file));
  21. $files[] = $file;
  22. }
  23. }
  24. closedir($handle);
  25. #$random_nr = Rand(0, count($files)-1);
  26. $number = count($files);
  27. if( $MODULE_CONFIG['sort'] == 1 ) natsort($files);
  28. //echo '<!-- '. implode( ', ', $files ) .'-->';
  29. ?>
  30.  
  31. <script type="text/javascript">
  32. $(function() {
  33. $('#slideshow_<?php echo $MODULE_ID; ?>').crossSlide({
  34. sleep: 3,
  35. fade: 0.5
  36. }, [
  37. <?php
  38. $i = 0;
  39. foreach($files AS $file)
  40. {
  41. ?>
  42. { src: '<?php echo $path_to_slides_catalogue; ?>/<?php echo $file; ?>' }
  43. <?php
  44. $i++;
  45. if($i < $number)
  46. {
  47. echo ', ';
  48. }
  49. }
  50. ?>
  51. ])
  52. });
  53. </script>
  54.  
  55.  
  56. <div class="slideshow" id="slideshow_<?php echo $MODULE_ID; ?>">
  57. </div>
SmokAnalog
Cytat(zurun @ 10.01.2018, 10:03:38 ) *
Jestem początkujący a programista który to pisał miał wypadek i nie żyje ktoś może pomóc?

Pokój jego duszy.

Pliki są czytane z katalogu bez żadnej godnej zaufania kolejności, bo readdir czyta tak, jak są zapisane w systemie plików.

Ale ś.p. kolega dodał sortowanie z natsort, czyli 1.jpg będzie przed 3.jpg, który będzie przed 10.jpg, który będzie przed 100.jpg itd. Tylko że kod zakłada, że sortowanie odbywa się tylko z ustawionym $MODULE_CONFIG['sort'] na 1 (albo true czy cokolwiek, co miękko rzutuje się na 1).

Podsumowując, ustaw sort na 1 w konfiguracji modułu.
zurun
Dzięki SmokAnalog, było własnie w konfiguracji modułu path_to_slides_catalogue = images/ sort = 0, zmieniłem na sort=1 i działa smile.gif . Autor CMSa był bardzo dobrym programistą ale pisał bez CMS bez frameworków, bez jakiejś logicznie zrozumianej dokumentacji czegokolwiek co/gdzie/do czego i ciężko teraz połapać się w większości jego kodu jak się ma zbyt małą wiedzę jak ja.
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.