Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP]Sortowanie zdjęć, pomocy!, Sortowanie wgrywanych zdjęć według kolejności
zurun
post 10.01.2018, 10:03:38
Post #1





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

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


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>
Go to the top of the page
+Quote Post
SmokAnalog
post 10.01.2018, 12:11:47
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


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.
Go to the top of the page
+Quote Post
zurun
post 10.01.2018, 14:20:11
Post #3





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

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


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 17:33