Sindbad~EG File Manager
/**
* WP Featherlight - Loader and helpers for the Featherlight WordPress plugin
*
* @copyright Copyright (c) 2018, Cipher Development, LLC
* @license MIT
*/
(function( window, $, undefined ) {
'use strict';
var $body = $( document.body );
/**
* Checks href targets to see if a given anchor is linking to an image.
*
* @since 0.1.0
* @return mixed
*/
function testImages( index, element ) {
return /(.png|.jpg|.jpeg|.gif|.tiff|.bmp)$/.test(
$( element ).attr( 'href' ).toLowerCase().split( '?' )[0].split( '#' )[0]
);
}
/**
* Filters all href elements on a page to add Featherlight's data attribute.
* When a match is found, the data attribute is added so Featherlight will
* open it normally.
*
* @since 0.1.0
* @return void
*/
function findImages() {
$body.find( 'a[href]' ).filter( testImages ).attr( 'data-featherlight', 'image' );
}
/**
* Callback function to initialize Featherlight galleries when they contain
* items that are able to be opened in a light box.
*
* @since 0.1.0
* @return void
*/
function buildGalleries( index, element ) {
var $galleryObj = $( element ),
$galleryItems = $galleryObj.find( 'a[data-featherlight]' );
if ( $galleryItems.attr( 'data-featherlight' ) ) {
$galleryItems.featherlightGallery({
previousIcon: '',
nextIcon: ''
});
}
}
/**
* Finds and creates Featherlight galleries for WordPress image galleries.
*
* @since 0.1.0
* @return void
*/
function findGalleries() {
var $gallery = $body.find( '[class*="gallery"]' );
if ( 0 !== $gallery.length ) {
$.each( $gallery, buildGalleries );
}
}
/**
* Attempt to Find image captions using common WordPress caption markup.
*
* @since 1.3.0
* @return void
*/
function findCaption( target ) {
var caption = target.parent().find( '.wp-caption-text' );
if ( 0 !== caption.length ) {
return caption;
}
var gutCaption = target.parent().find( 'figcaption' );
if ( 0 !== gutCaption.length ) {
return gutCaption;
}
var galParent = target.parents( '.gallery-item' );
if ( 0 !== galParent.length ) {
return galParent.find( '.wp-caption-text' );
}
var gutParent = target.parents( '.blocks-gallery-item' );
if ( 0 !== gutParent.length ) {
return gutParent.find( 'figcaption' );
}
var jetParent = target.parents( '.tiled-gallery-item' );
if ( 0 !== jetParent.length ) {
return jetParent.find( '.tiled-gallery-caption' );
}
return '';
}
/**
* Append image captions to the Featherlight content <div>.
*
* @since 0.3.0
* @return void
*/
function addCaptions() {
$.featherlight.prototype.afterContent = function() {
var object = this.$instance,
caption = findCaption( this.$currentTarget );
object.find( '.caption' ).remove();
if ( 0 !== caption.length ) {
var $captionElm = $( '<div class="caption">' ).appendTo( object.find( '.featherlight-content' ) );
$captionElm[0].innerHTML = caption.html();
}
};
}
/**
* Fires all of our helper methods to load featherlight.
*
* @since 0.1.0
* @return void
*/
function wpFeatherlightInit() {
$.featherlight.defaults.closeIcon = '';
findImages();
findGalleries();
if ( $body.hasClass( 'wp-featherlight-captions' ) ) {
addCaptions();
}
}
$( document ).ready(function() {
wpFeatherlightInit();
});
})( this, jQuery );
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists