Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Fancybox implementacja w drupalu
Wilu88
post 26.09.2017, 20:45:51
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

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


Witam

Od dwóch dni walczę z implementacją fancybox'a na stronie postawionej w drupalu.Niestety to nie ja robiłem stronę a do programisty który tworzył ją nie mma kontaktu. Problem polega na tym że nie mogę za chiny ludowe obsłużyć obsługi kilku zdjęć w fancyboxie tak by pojawiły się strzałki nawigacyjne.

po stronie php wygląda to tak:
  1.  
  2. <div id="gallery_window">
  3. <img
  4. alt=""
  5. src="<?php echo thumbnail_src($photos[0]['mini'], 450, 320, FasThumbnail::MODE_CENTER) ?>"
  6. class="userImg"
  7. width="450"
  8. height="320"
  9. />
  10. </div>
  11.  
  12. <div id="hiddenList">
  13. <?php foreach ($photos as $id => $photo): ?>
  14. <a class="galeria" href="<?php echo $photo['large'] ?>" rel="fancybox"></a>
  15. <?php endforeach; ?>
  16. </div>


Problem w tym że kod galerii został tak napisany że kliknięcie na któryś z linków ma nie wywoływać odrazu fancyboxa tylko powiększyć zdjęcie w innym divie a dopiero kliknięcie w to powiększone zdjęcie powinno wywołać fanbcyboxa już całą galerią. Udało mi się do tego momentu spowodować ze fancybox ładnie się ukazuje ale jako pojedyncze zdjęcie bez możliwości nawigowania. Po stronie js wygląda to tak:


  1. function myGallery($gal){
  2. var self = this;
  3. this.$main = $gal;
  4. this.$galLine = this.$main.find('#galery_line');
  5. this.number = 0;
  6.  
  7. //przewijanie galerii
  8. this.$galLine.find('.leftButton').click(function(e){e.preventDefault();self.showPrevRow() });
  9. this.$galLine.find('.rightButton').click(function(e){e.preventDefault();self.showNextRow() });
  10.  
  11.  
  12. //obsługa powiększenia
  13. this.$main.find('#hiddenList a').fancybox();
  14. this.$main.find('#gallery_window').click(function(e){e.preventDefault(); self.CBgallery();});
  15.  
  16. //obsługa midi
  17. this.$galLine.find('.images li').click(function(e){e.preventDefault(); self.showMidi( $(this) ); return false;});
  18.  
  19.  
  20. //metody klasy
  21. this.CBgallery = function()
  22. {
  23. // var $gallery = $('#galery_line .images li a').colorbox({
  24. // rel:'colorbox',
  25. // //onClosed: function(){$.colorbox.remove()}
  26. // });
  27.  
  28. //console.log(this.number);
  29. this.$main.find('#hiddenList a').eq(this.number).click(); // do a click event on the gallery to open Cbox
  30. }
  31.  
  32. this.showMidi = function( $li )
  33. {
  34. var midi = $li.find('img').first().attr('midi') ;
  35.  
  36. //dodać preloading??
  37. this.$main.find('#gallery_window img').attr('src', midi);
  38.  
  39. // licznik
  40. this.number = $li.prevAll().length ;
  41. this.$main.find('#imagesCount').html(this.number +1);
  42. }
  43.  
  44. this.currentRow = function()
  45. {
  46. var row = this.$galLine.find('li:visible').first().attr("class");
  47. row = parseInt(row.replace('row_',''));
  48. return row;
  49. }
  50.  
  51. this.showNextRow = function()
  52. {
  53. var currentRow = this.currentRow()
  54. var nextRow = currentRow + 1;
  55. var klasa = '.row_'+(nextRow);
  56. if( this.$main.find('li'+klasa).length > 0)
  57. {
  58. this.$main
  59. .find('li').hide();
  60. this.$main
  61. .find(klasa).show();
  62. }
  63. }
  64.  
  65. this.showPrevRow = function()
  66. {
  67. var currentRow = this.currentRow()
  68. if( currentRow > 1)
  69. {
  70. var prevRow = currentRow - 1;
  71. var klasa = '.row_'+prevRow;
  72. this.$main
  73. .find('li').hide();
  74. this.$main
  75. .find(klasa).show();
  76. }
  77. }
  78.  
  79.  
  80. }


Jeszcze jedno warto nadmienić że nie jestem w stanie w pliku js ustawić parametrów dla metody fancybox. Co bym nei zmienił w parametrach to i tak zawsze przyjmuje domyślne ustawienia z pliku jquery.fancybox.js

Będę ogromnie wdzięczny za jakaś pomoc

Problem rozwiązany należało użyć innej opcji grupowania zdjęć

Ten post edytował Wilu88 26.09.2017, 21:29:52
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: 19.06.2025 - 14:26