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ęć