%PDF- %PDF-
| Direktori : /home/lightco1/public_html/plugins/content/sigplus/engines/lightbox/ |
| Current File : /home/lightco1/public_html/plugins/content/sigplus/engines/lightbox/fancybox3.php |
<?php
/**
* @file
* @brief sigplus Image Gallery Plus Fancybox3 lightweight pop-up window engine
* @author Levente Hunyadi
* @version 1.5.0
* @remarks Copyright (C) 2009-2017 Levente Hunyadi
* @remarks Licensed under GNU/GPLv3, see http://www.gnu.org/licenses/gpl-3.0.html
* @see http://hunyadi.info.hu/projects/sigplus
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
/**
* Support class for jQuery-based Fancybox3 pop-up window engine.
* @see http://fancyapps.com/fancybox/3/
*/
class SigPlusNovoFancybox3LightboxEngine extends SigPlusNovoLightboxEngine {
public function getIdentifier() {
return 'fancybox3';
}
public function getLibrary() {
return 'jquery';
}
/**
* Adds style sheet references to the HTML head element.
* @param {string} $selector A CSS selector.
* @param $params Gallery parameters.
*/
public function addStyles($selector, SigPlusNovoGalleryParameters $params) {
$document = JFactory::getDocument();
$document->addStyleSheet('https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.3.5/jquery.fancybox.min.css');
}
/**
* Adds script references to the HTML head element.
* @param {string} $selector A CSS selector.
* @param $params Gallery parameters.
*/
public function addScripts($selector, SigPlusNovoGalleryParameters $params) {
$instance = SigPlusNovoEngineServices::instance();
$document = JFactory::getDocument();
$document->addScript('https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.3.5/jquery.fancybox.min.js', array(), array('defer' => true));
$jsparams = array();
$jsparams['loop'] = $params->loop;
$jsparams['protect'] = $params->protection;
if ($params->lightbox_slideshow) {
$slideshowparams = array();
$slideshowparams['speed'] = $params->lightbox_slideshow;
$slideshowparams['autoStart'] = $params->lightbox_autostart;
$jsparams['slideShow'] = $slideshowparams;
} else {
$jsparams['slideShow'] = false;
}
if ($params->lightbox_thumbs === false) {
$jsparams['thumbs'] = false;
}
$language = JFactory::getLanguage();
$languagecode = substr($language->getTag(), 0, 2);
$jsparams['lang'] = $languagecode;
switch ($languagecode) {
case 'en':
case 'de':
// English and German localization is included in the CDN-distributed Fancybox3 version
break;
default:
// import localization for all supported languages
$instance->addScript('/media/sigplus/engines/'.$this->getIdentifier().'/js/'.$this->getIdentifier().'.lang.js');
}
$buttons = array();
$buttons[] = 'zoom';
$user = JFactory::getUser();
if ($params->download !== false && in_array($params->download, $user->getAuthorisedViewLevels())) { // check if user is authorized to download image
$buttons[] = 'download';
}
$buttons[] = 'slideShow';
$buttons[] = 'fullScreen';
$buttons[] = 'thumbs';
$buttons[] = 'close';
$jsparams['buttons'] = $buttons;
$jsparams = array_merge($jsparams, $params->lightbox_params);
$script =
'jQuery('.json_encode($selector).')'.
'.attr("data-fancybox", '.json_encode($params->id).')'.
'.fancybox(jQuery.extend({'.
'caption: function(instance,item) {'.
'return caption = jQuery(this).data("summary") || "";'.
'}'.
'}, '.json_encode($jsparams, JSON_FORCE_OBJECT).'));';
$instance->addOnReadyScript($script);
}
}