/** * Lightbox */ ( function( $ ) { $.fn.powerkitLightbox = function( options ) { var settings = $.extend( { gallery : false, }, options); var objSelector = this; var imageSelector = null; var containerSelector = null; $( objSelector ).each( function() { if ( $( this ).is( 'img' ) ) { imageSelector = this; } else { imageSelector = $( this ).find( 'img' ); } $( imageSelector ).each( function() { var container = $( this ).parent(); if ( ! $( container ).is( 'a' ) ) { return; } var imagehref = $( container ).attr( 'href' ); if ( ! imagehref.match( /\.(gif|jpeg|jpg|png)/ ) ) { return; } if ( !( $( container ).closest( 'figure' ).length ) ) { $( container ).wrap( '
' ); } if ( !$( container ).closest( 'figure' ).hasClass( 'pk-lightbox-container' ) ) { $( container ).closest( 'figure' ).addClass( 'pk-lightbox-container' ); } // Img classes. var imgClasses = [ 'alignnone', 'aligncenter', 'alignleft', 'alignright' ]; imgClasses.forEach( function( el ) { if ( $( container ).find( 'img' ).hasClass( el ) ) { $( container ).find( 'img' ).removeClass( el ); $( container ).find( 'img' ).closest( 'figure' ).addClass( el ); // Add width to figure. var imgWidth = $( container ).find( 'img' ).attr( 'width' ); if ( parseInt( imgWidth ) !== 'NaN' ) { $( container ).find( 'img' ).closest( 'figure' ).width( imgWidth ); } } } ); container = $( container ).parent(); $( '> a', container ).not('.pk-pin-it').addClass( 'pk-image-popup' ); if ( powerkit_lightbox_localize.zoom_icon ) { $( '> a', container ).not('.pk-pin-it').addClass( 'pk-zoom-icon-popup' ); } if ( $( objSelector ).is( 'img' ) ) { containerSelector = container; } }); if ( ! $( objSelector ).is( 'img' ) ) { containerSelector = this; } $( containerSelector ).magnificPopup( { delegate: '.pk-image-popup', type: 'image', tClose: powerkit_lightbox_localize.text_close + '(Esc)', tLoading: powerkit_lightbox_localize.text_loading, gallery: { enabled: settings.gallery, tPrev: powerkit_lightbox_localize.text_previous, tNext: powerkit_lightbox_localize.text_next, tCounter: '%curr% ' + powerkit_lightbox_localize.text_counter + ' %total%' }, image: { titleSrc: function( item ) { return item.el.closest( 'figure' ).find( '.wp-caption-text' ).text(); } }, } ); } ); }; function initPowerkitLightbox() { var excludeSelectors = powerkit_lightbox_localize.exclude_selectors; var imageSelectors = powerkit_lightbox_localize.single_image_selectors; var gallerySelectors = powerkit_lightbox_localize.gallery_selectors // Exclude. var filterSelectors = null; var filterPowerkitLightbox = function() { if ( filterSelectors ) { if ( $( this ).closest( filterSelectors ).length > 0 ) { return false; } } return true; } // Single Init ----------------------------------- $( imageSelectors ).imagesLoaded( function() { var exSplit = excludeSelectors.split(','); var glSplit = gallerySelectors.split(','); // Join exclude selectors. filterSelectors = exSplit.concat( glSplit ).filter( function( value ) { return !! value; } ).filter( function( value ) { return ! this[ value ] && ( this[ value ] = true ); }, Object.create( null ) ).join( ',' ); // Init. $( imageSelectors ).filter( filterPowerkitLightbox ).powerkitLightbox(); } ); // Gallery Init ----------------------------------- $( gallerySelectors ).imagesLoaded( function() { filterSelectors = excludeSelectors; // Init. $( gallerySelectors ).filter( filterPowerkitLightbox ).powerkitLightbox( { gallery: true } ); } ); } $( document ).ready( function() { initPowerkitLightbox(); $( document.body ).on( 'post-load image-load', function() { initPowerkitLightbox(); } ); } ); } )( jQuery );