PluginProbe
AdRotate Banner Manager / 5.18
AdRotate Banner Manager v5.18
5.19.2 5.19.1 5.19 5.18 5.17.8 5.17.7 trunk 4.0 4.1 4.10 4.11 4.11.1 4.11.2 4.12 4.12.1 4.12.2 4.12.3 4.13 4.13.1 4.13.2 4.13.3 4.13.4 4.13.5 4.14 4.15 All 133 releases
adrotate / library / jquery.groups.js

jquery.groups.js in AdRotate Banner Manager 5.18, at library/jquery.groups.js

80 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*
2 Dynamic advert rotation for AdRotate
3 Version: 1.0.2
4 Original code: Arnan de Gans
5 Copyright: (c) 2020-2026 Arnan de Gans
6 == Settings ==
7 groupid : PHP Group ID [integer, defaults to 0]
8 speed : Time each slide is shown [integer: milliseconds, defaults to 3000]
9 repeat_impressions : Stop counting impressions? [switch, defaults to Y]
10 */
11 (function($) {
12 $.fn.gslider = function(settings) {
13 var config = {groupid:0,speed:3000};
14 if(settings) $.extend(true, config, settings)
15
16 this.each(function(i) {
17 var $cont = $(this);
18 var gallery = $(this).children();
19 var length = gallery.length;
20 var timer = 0;
21 var counter = 1;
22
23 if(length == 1) {
24 // Impression tracker (Single ad)
25 var tracker = $cont.find(".c-1 a").attr("data-track");
26 if(typeof tracker !== 'undefined') {
27 impressiontracker(tracker);
28 }
29 }
30
31 if(length > 1) {
32 $cont.find(".c-1").show();
33 for(n = 2; n <= length; n++) {
34 $cont.find(".c-" + n).hide();
35 }
36
37 timer = setInterval(function(){ play(); }, config.speed);
38 }
39
40 function transitionTo(gallery, index) {
41 if((counter >= length) || (index >= length)) {
42 counter = 1;
43 } else {
44 counter++;
45 }
46 $cont.find(".c-" + counter).show();
47
48 // Impression tracker (Multiple ads)
49 var tracker = $cont.find(".c-" + counter + ' a').attr("data-track");
50 if(typeof tracker !== 'undefined') {
51 impressiontracker(tracker);
52 }
53 $cont.find(".c-" + index).hide();
54 }
55
56 function play() {
57 transitionTo(gallery, counter);
58 }
59
60 function impressiontracker(tracker) {
61 admeta = atob(tracker).split(',');
62 var name = escape('adrotate-'+admeta[0]);
63 var now = Math.round(Date.now()/1000);
64 var expired = now - admeta[2];
65 var session = sessionStorage.getItem(name); // Get session data
66
67 if(session == null) { // New session, no previous data
68 session = 0;
69 }
70
71 if(session <= expired) { // Count new impression?
72 $.post(impression_object.ajax_url, {'action': 'adrotate_impression','track': tracker});
73 sessionStorage.setItem(name, now);
74 delete tracker;
75 }
76 }
77 });
78 return this;
79 };
80 }(jQuery));