On rajoute encore quelques modules
This commit is contained in:
33
modules/ppbrandslider/views/js/index.php
Normal file
33
modules/ppbrandslider/views/js/index.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2017 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/osl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2016 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
|
||||
header("Cache-Control: no-store, no-cache, must-revalidate");
|
||||
header("Cache-Control: post-check=0, pre-check=0", false);
|
||||
header("Pragma: no-cache");
|
||||
header("Location: ../");
|
||||
exit;
|
||||
416
modules/ppbrandslider/views/js/jquery.flexisel.js
Normal file
416
modules/ppbrandslider/views/js/jquery.flexisel.js
Normal file
@@ -0,0 +1,416 @@
|
||||
/*
|
||||
* File: jquery.flexisel.js
|
||||
* Version: 2.2.2
|
||||
* Description: Responsive carousel jQuery plugin
|
||||
* Author: 9bit Studios
|
||||
* Copyright 2016, 9bit Studios
|
||||
* http://www.9bitstudios.com
|
||||
* Free to use and abuse under the MIT license.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
$.fn.flexisel = function (options) {
|
||||
|
||||
var defaults = $.extend({
|
||||
visibleItems: 4,
|
||||
itemsToScroll: 3,
|
||||
animationSpeed: 400,
|
||||
infinite: true,
|
||||
navigationTargetSelector: null,
|
||||
autoPlay: {
|
||||
enable: false,
|
||||
interval: 5000,
|
||||
pauseOnHover: true
|
||||
},
|
||||
responsiveBreakpoints: {
|
||||
portrait: {
|
||||
changePoint:480,
|
||||
visibleItems: 1,
|
||||
itemsToScroll: 1
|
||||
},
|
||||
landscape: {
|
||||
changePoint:640,
|
||||
visibleItems: 2,
|
||||
itemsToScroll: 2
|
||||
},
|
||||
tablet: {
|
||||
changePoint:768,
|
||||
visibleItems: 3,
|
||||
itemsToScroll: 3
|
||||
}
|
||||
},
|
||||
loaded: function(){ },
|
||||
before: function(){ },
|
||||
after: function(){ },
|
||||
resize: function(){ }
|
||||
}, options);
|
||||
|
||||
/******************************
|
||||
Private Variables
|
||||
*******************************/
|
||||
|
||||
var object = $(this);
|
||||
var settings = $.extend(defaults, options);
|
||||
var itemsWidth;
|
||||
var canNavigate = true;
|
||||
var itemCount;
|
||||
var itemsVisible = settings.visibleItems;
|
||||
var itemsToScroll = settings.itemsToScroll;
|
||||
var responsivePoints = [];
|
||||
var resizeTimeout;
|
||||
var autoPlayInterval;
|
||||
|
||||
/******************************
|
||||
Public Methods
|
||||
*******************************/
|
||||
|
||||
var methods = {
|
||||
|
||||
init: function() {
|
||||
return this.each(function () {
|
||||
methods.appendHTML();
|
||||
methods.setEventHandlers();
|
||||
methods.initializeItems();
|
||||
});
|
||||
},
|
||||
|
||||
/******************************
|
||||
Initialize Items
|
||||
*******************************/
|
||||
|
||||
initializeItems: function() {
|
||||
|
||||
var obj = settings.responsiveBreakpoints;
|
||||
for(var i in obj) { responsivePoints.push(obj[i]); }
|
||||
responsivePoints.sort(function(a, b) { return a.changePoint - b.changePoint; });
|
||||
var childSet = object.children();
|
||||
childSet.first().addClass("index");
|
||||
itemsWidth = methods.getCurrentItemWidth();
|
||||
itemCount = childSet.length;
|
||||
childSet.width(itemsWidth);
|
||||
if(settings.infinite) {
|
||||
methods.offsetItemsToBeginning(Math.floor(childSet.length / 2));
|
||||
object.css({
|
||||
'left': -itemsWidth * Math.floor(childSet.length / 2)
|
||||
});
|
||||
}
|
||||
$(window).trigger('resize');
|
||||
object.fadeIn();
|
||||
settings.loaded.call(this, object);
|
||||
|
||||
},
|
||||
|
||||
/******************************
|
||||
Append HTML
|
||||
*******************************/
|
||||
|
||||
appendHTML: function() {
|
||||
|
||||
object.addClass("nbs-flexisel-ul");
|
||||
object.wrap("<div class='nbs-flexisel-container'><div class='nbs-flexisel-inner'></div></div>");
|
||||
object.find("li").addClass("nbs-flexisel-item");
|
||||
|
||||
if(settings.navigationTargetSelector && $(settings.navigationTargetSelector).length > 0) {
|
||||
$("<div class='nbs-flexisel-nav-left'></div><div class='nbs-flexisel-nav-right'></div>").appendTo(settings.navigationTargetSelector);
|
||||
} else {
|
||||
settings.navigationTargetSelector = object.parent();
|
||||
$("<div class='nbs-flexisel-nav-left'></div><div class='nbs-flexisel-nav-right'></div>").insertAfter(object);
|
||||
}
|
||||
|
||||
if(settings.infinite) {
|
||||
var childSet = object.children();
|
||||
var cloneContentBefore = childSet.clone();
|
||||
var cloneContentAfter = childSet.clone();
|
||||
object.prepend(cloneContentBefore);
|
||||
object.append(cloneContentAfter);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
||||
/******************************
|
||||
Set Event Handlers
|
||||
*******************************/
|
||||
setEventHandlers: function() {
|
||||
var self = this;
|
||||
var childSet = object.children();
|
||||
|
||||
$(window).on("resize", function(event){
|
||||
canNavigate = false;
|
||||
clearTimeout(resizeTimeout);
|
||||
resizeTimeout = setTimeout(function(){
|
||||
canNavigate = true;
|
||||
methods.calculateDisplay();
|
||||
itemsWidth = methods.getCurrentItemWidth();
|
||||
childSet.width(itemsWidth);
|
||||
|
||||
if(settings.infinite) {
|
||||
object.css({
|
||||
'left': -itemsWidth * Math.floor(childSet.length / 2)
|
||||
});
|
||||
} else {
|
||||
methods.clearDisabled();
|
||||
$(settings.navigationTargetSelector).find(".nbs-flexisel-nav-left").addClass('disabled');
|
||||
object.css({
|
||||
'left': 0
|
||||
});
|
||||
}
|
||||
|
||||
settings.resize.call(self, object);
|
||||
|
||||
}, 100);
|
||||
|
||||
});
|
||||
|
||||
$(settings.navigationTargetSelector).find(".nbs-flexisel-nav-left").on("click", function (event) {
|
||||
methods.scroll(true);
|
||||
});
|
||||
|
||||
$(settings.navigationTargetSelector).find(".nbs-flexisel-nav-right").on("click", function (event) {
|
||||
methods.scroll(false);
|
||||
});
|
||||
|
||||
if(settings.autoPlay.enable) {
|
||||
|
||||
methods.setAutoplayInterval();
|
||||
|
||||
if (settings.autoPlay.pauseOnHover === true) {
|
||||
object.on({
|
||||
mouseenter : function() {
|
||||
canNavigate = false;
|
||||
},
|
||||
mouseleave : function() {
|
||||
canNavigate = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
object[0].addEventListener('touchstart', methods.touchHandler.handleTouchStart, false);
|
||||
object[0].addEventListener('touchmove', methods.touchHandler.handleTouchMove, false);
|
||||
|
||||
},
|
||||
|
||||
/******************************
|
||||
Calculate Display
|
||||
*******************************/
|
||||
|
||||
calculateDisplay: function() {
|
||||
var contentWidth = $('html').width();
|
||||
var largestCustom = responsivePoints[responsivePoints.length-1].changePoint; // sorted array
|
||||
|
||||
for(var i in responsivePoints) {
|
||||
|
||||
if(contentWidth >= largestCustom) { // set to default if width greater than largest custom responsiveBreakpoint
|
||||
itemsVisible = settings.visibleItems;
|
||||
itemsToScroll = settings.itemsToScroll;
|
||||
break;
|
||||
}
|
||||
else { // determine custom responsiveBreakpoint to use
|
||||
|
||||
if(contentWidth < responsivePoints[i].changePoint) {
|
||||
itemsVisible = responsivePoints[i].visibleItems;
|
||||
itemsToScroll = responsivePoints[i].itemsToScroll;
|
||||
break;
|
||||
}
|
||||
else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/******************************
|
||||
Scroll
|
||||
*******************************/
|
||||
|
||||
scroll: function(reverse) {
|
||||
|
||||
if(typeof reverse === 'undefined') { reverse = true }
|
||||
|
||||
if(canNavigate == true) {
|
||||
canNavigate = false;
|
||||
settings.before.call(this, object);
|
||||
itemsWidth = methods.getCurrentItemWidth();
|
||||
|
||||
if(settings.autoPlay.enable) {
|
||||
clearInterval(autoPlayInterval);
|
||||
}
|
||||
|
||||
if(!settings.infinite) {
|
||||
|
||||
var scrollDistance = itemsWidth * itemsToScroll;
|
||||
|
||||
if(reverse) {
|
||||
object.animate({
|
||||
'left': methods.calculateNonInfiniteLeftScroll(scrollDistance)
|
||||
}, settings.animationSpeed, function(){
|
||||
settings.after.call(this, object);
|
||||
canNavigate = true;
|
||||
});
|
||||
|
||||
} else {
|
||||
object.animate({
|
||||
'left': methods.calculateNonInfiniteRightScroll(scrollDistance)
|
||||
},settings.animationSpeed, function(){
|
||||
settings.after.call(this, object);
|
||||
canNavigate = true;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
object.animate({
|
||||
'left' : reverse ? "+=" + itemsWidth * itemsToScroll : "-=" + itemsWidth * itemsToScroll
|
||||
}, settings.animationSpeed, function() {
|
||||
settings.after.call(this, object);
|
||||
canNavigate = true;
|
||||
|
||||
if(reverse) {
|
||||
methods.offsetItemsToBeginning(itemsToScroll);
|
||||
} else {
|
||||
methods.offsetItemsToEnd(itemsToScroll);
|
||||
}
|
||||
methods.offsetSliderPosition(reverse);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
if(settings.autoPlay.enable) {
|
||||
methods.setAutoplayInterval();
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
touchHandler: {
|
||||
|
||||
xDown: null,
|
||||
yDown: null,
|
||||
handleTouchStart: function(evt) {
|
||||
this.xDown = evt.touches[0].clientX;
|
||||
this.yDown = evt.touches[0].clientY;
|
||||
},
|
||||
handleTouchMove: function (evt) {
|
||||
if (!this.xDown || !this.yDown) {
|
||||
return;
|
||||
}
|
||||
|
||||
var xUp = evt.touches[0].clientX;
|
||||
var yUp = evt.touches[0].clientY;
|
||||
|
||||
var xDiff = this.xDown - xUp;
|
||||
var yDiff = this.yDown - yUp;
|
||||
|
||||
// only comparing xDiff
|
||||
// compare which is greater against yDiff to determine whether left/right or up/down e.g. if (Math.abs( xDiff ) > Math.abs( yDiff ))
|
||||
if (Math.abs( xDiff ) > 0) {
|
||||
if ( xDiff > 0 ) {
|
||||
// swipe left
|
||||
methods.scroll(false);
|
||||
} else {
|
||||
//swipe right
|
||||
methods.scroll(true);
|
||||
}
|
||||
}
|
||||
|
||||
/* reset values */
|
||||
this.xDown = null;
|
||||
this.yDown = null;
|
||||
canNavigate = true;
|
||||
}
|
||||
},
|
||||
|
||||
/******************************
|
||||
Utility Functions
|
||||
*******************************/
|
||||
|
||||
getCurrentItemWidth: function() {
|
||||
return (object.parent().width())/itemsVisible;
|
||||
},
|
||||
|
||||
offsetItemsToBeginning: function(number) {
|
||||
if(typeof number === 'undefined') { number = 1 }
|
||||
for(var i = 0; i < number; i++) {
|
||||
object.children().last().insertBefore(object.children().first());
|
||||
}
|
||||
},
|
||||
|
||||
offsetItemsToEnd: function(number) {
|
||||
if(typeof number === 'undefined') { number = 1 }
|
||||
for(var i = 0; i < number; i++) {
|
||||
object.children().first().insertAfter(object.children().last());
|
||||
}
|
||||
},
|
||||
|
||||
offsetSliderPosition: function(reverse) {
|
||||
var left = parseInt(object.css('left').replace('px', ''));
|
||||
if (reverse) {
|
||||
left = left - itemsWidth * itemsToScroll;
|
||||
} else {
|
||||
left = left + itemsWidth * itemsToScroll;
|
||||
}
|
||||
object.css({
|
||||
'left': left
|
||||
});
|
||||
},
|
||||
|
||||
getOffsetPosition: function() {
|
||||
return parseInt(object.css('left').replace('px', ''));
|
||||
},
|
||||
|
||||
calculateNonInfiniteLeftScroll: function(toScroll) {
|
||||
|
||||
methods.clearDisabled();
|
||||
if(methods.getOffsetPosition() + toScroll >= 0) {
|
||||
$(settings.navigationTargetSelector).find(".nbs-flexisel-nav-left").addClass('disabled');
|
||||
return 0;
|
||||
} else {
|
||||
return methods.getOffsetPosition() + toScroll;
|
||||
}
|
||||
},
|
||||
|
||||
calculateNonInfiniteRightScroll: function(toScroll){
|
||||
|
||||
methods.clearDisabled();
|
||||
var negativeOffsetLimit = (itemCount * itemsWidth) - (itemsVisible * itemsWidth);
|
||||
|
||||
if(methods.getOffsetPosition() - toScroll <= -negativeOffsetLimit) {
|
||||
$(settings.navigationTargetSelector).find(".nbs-flexisel-nav-right").addClass('disabled');
|
||||
return -negativeOffsetLimit;
|
||||
} else {
|
||||
return methods.getOffsetPosition() - toScroll;
|
||||
}
|
||||
},
|
||||
|
||||
setAutoplayInterval: function(){
|
||||
autoPlayInterval = setInterval(function() {
|
||||
if (canNavigate) {
|
||||
methods.scroll(false);
|
||||
}
|
||||
}, settings.autoPlay.interval);
|
||||
},
|
||||
|
||||
clearDisabled: function() {
|
||||
var parent = $(settings.navigationTargetSelector);
|
||||
parent.find(".nbs-flexisel-nav-left").removeClass('disabled');
|
||||
parent.find(".nbs-flexisel-nav-right").removeClass('disabled');
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
if (methods[options]) { // $("#element").pluginName('methodName', 'arg1', 'arg2');
|
||||
return methods[options].apply(this, Array.prototype.slice.call(arguments, 1));
|
||||
} else if (typeof options === 'object' || !options) { // $("#element").pluginName({ option: 1, option:2 });
|
||||
return methods.init.apply(this);
|
||||
} else {
|
||||
$.error( 'Method "' + method + '" does not exist in flexisel plugin!');
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
73
modules/ppbrandslider/views/js/ppbrandslider.js
Normal file
73
modules/ppbrandslider/views/js/ppbrandslider.js
Normal file
@@ -0,0 +1,73 @@
|
||||
$(window).load(function() {
|
||||
if (autoplay_slider == "1") {
|
||||
autoplay_slider = true;
|
||||
} else if (autoplay_slider == "0") {
|
||||
autoplay_slider = false;
|
||||
}
|
||||
|
||||
if (show_arrows == "1") {
|
||||
show_arrows = true;
|
||||
} else if (show_arrows == "0") {
|
||||
show_arrows = false;
|
||||
}
|
||||
|
||||
if (mouse_hover == "1") {
|
||||
mouse_hover = true;
|
||||
} else if (mouse_hover == "0") {
|
||||
mouse_hover = false;
|
||||
}
|
||||
|
||||
$("#logo-slider").flexisel({
|
||||
visibleItems: visible_items,
|
||||
itemsToScroll: scroll_items,
|
||||
animationSpeed: animation_speed,
|
||||
infinite: true,
|
||||
navigationTargetSelector: null,
|
||||
autoPlay: {
|
||||
enable: autoplay_slider,
|
||||
interval: 5000,
|
||||
pauseOnHover: mouse_hover
|
||||
},
|
||||
responsiveBreakpoints: {
|
||||
portrait: {
|
||||
changePoint:480,
|
||||
visibleItems: 1,
|
||||
itemsToScroll: 1
|
||||
},
|
||||
landscape: {
|
||||
changePoint:640,
|
||||
visibleItems: 2,
|
||||
itemsToScroll: 2
|
||||
},
|
||||
tablet: {
|
||||
changePoint:768,
|
||||
visibleItems: 3,
|
||||
itemsToScroll: 3
|
||||
}
|
||||
},
|
||||
loaded: function(object) {
|
||||
console.log('Slider loaded...');
|
||||
},
|
||||
before: function(object){
|
||||
console.log('Before transition...');
|
||||
},
|
||||
after: function(object) {
|
||||
console.log('After transition...');
|
||||
},
|
||||
resize: function(object){
|
||||
console.log('After resize...');
|
||||
}
|
||||
});
|
||||
|
||||
$("#brand-slider").flexisel({
|
||||
visibleItems: 2,
|
||||
itemsToScroll: 1,
|
||||
autoPlay: {
|
||||
enable: true,
|
||||
interval: 5000,
|
||||
pauseOnHover: true
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user