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:
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:
function myGallery($gal){ var self = this; this.$main = $gal; this.$galLine = this.$main.find('#galery_line'); this.number = 0; //przewijanie galerii this.$galLine.find('.leftButton').click(function(e){e.preventDefault();self.showPrevRow() }); this.$galLine.find('.rightButton').click(function(e){e.preventDefault();self.showNextRow() }); //obsługa powiększenia this.$main.find('#hiddenList a').fancybox(); this.$main.find('#gallery_window').click(function(e){e.preventDefault(); self.CBgallery();}); //obsługa midi this.$galLine.find('.images li').click(function(e){e.preventDefault(); self.showMidi( $(this) ); return false;}); //metody klasy this.CBgallery = function() { // var $gallery = $('#galery_line .images li a').colorbox({ // rel:'colorbox', // //onClosed: function(){$.colorbox.remove()} // }); //console.log(this.number); this.$main.find('#hiddenList a').eq(this.number).click(); // do a click event on the gallery to open Cbox } this.showMidi = function( $li ) { var midi = $li.find('img').first().attr('midi') ; //dodać preloading?? this.$main.find('#gallery_window img').attr('src', midi); // licznik this.number = $li.prevAll().length ; this.$main.find('#imagesCount').html(this.number +1); } this.currentRow = function() { var row = this.$galLine.find('li:visible').first().attr("class"); row = parseInt(row.replace('row_','')); return row; } this.showNextRow = function() { var currentRow = this.currentRow() var nextRow = currentRow + 1; var klasa = '.row_'+(nextRow); if( this.$main.find('li'+klasa).length > 0) { this.$main .find('li').hide(); this.$main .find(klasa).show(); } } this.showPrevRow = function() { var currentRow = this.currentRow() if( currentRow > 1) { var prevRow = currentRow - 1; var klasa = '.row_'+prevRow; this.$main .find('li').hide(); this.$main .find(klasa).show(); } } }
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ęć