瀏覽代碼

New option: show a message if an adblocker is detected

Amauri CHAMPEAUX 10 年之前
父節點
當前提交
0d291e2a3c

+ 1 - 0
advertising.js

@@ -0,0 +1 @@
+tarteaucitronNoAdBlocker = true;

+ 3 - 0
lang/tarteaucitron.de.js

@@ -1,5 +1,8 @@
 /*global tarteaucitron */
 tarteaucitron.lang = {
+    "adblock": "Hallo! Diese Seite zu spielen Transparenz und gibt Ihnen die Wahl von Dritten als Service zu aktivieren.",
+    "adblock_call": "Bitte deaktivieren Sie Ihren adblocker zu starten Customizing.",
+    "reload": "Seite aktualisieren",
     "alertBig": "Wenn Sie diese Webseite benutzen, stimmen Sie der Benutzung von externen Diensten zu",
     "alertBigPrivacy": "Diese Webseite verwendet 'Cookies' und ermöglicht dadurch Kontrolle, welche Dienste benutzt werden dürfen",
     "alertSmall": "Service-Kontrolle",

+ 3 - 0
lang/tarteaucitron.en.js

@@ -1,5 +1,8 @@
 /*global tarteaucitron */
 tarteaucitron.lang = {
+    "adblock": "Hello! This site play transparency and gives you the choice of third party service to activate.",
+    "adblock_call": "Please disable your adblocker to start customizing.",
+    "reload": "Refresh the page",
     "alertBig": "If you continue to browse this website, you are allowing all third-party services",
     "alertBigPrivacy": "This site uses cookies and gives you control over what you want to activate",
     "alertSmall": "Manage services",

+ 3 - 0
lang/tarteaucitron.es.js

@@ -1,5 +1,8 @@
 /*global tarteaucitron */
 tarteaucitron.lang = {
+    "adblock": "Hola! Este sitio jugar transparencia y le da la opción de servicio de terceros para activar.",
+    "adblock_call": "Por favor deshabilite su AdBlocker para comenzar a personalizar.",
+    "reload": "Actualizar esta página",
     "alertBig": "Si continuas navegando por este sitio web, estar permitiendo servicios terceros",
     "alertBigPrivacy": "Este sitio web usa cookies y te permite controlar lo que deseas activar",
     "alertSmall": "Gestionar servicios",

+ 3 - 0
lang/tarteaucitron.fr.js

@@ -1,5 +1,8 @@
 /*global tarteaucitron */
 tarteaucitron.lang = {
+    "adblock": "Bonjour! Ce site joue la transparence et vous donne le choix des services tiers à activer.",
+    "adblock_call": "Merci de désactiver votre adblocker pour commencer la personnalisation.",
+    "reload": "Recharger la page",
     "alertBig": "En poursuivant votre navigation, vous acceptez l'utilisation de services tiers pouvant installer des cookies",
     "alertBigPrivacy": "Ce site utilise des cookies et vous donne le contrôle sur ce que vous souhaitez activer",
     "alertSmall": "Gestion des services",

+ 3 - 0
lang/tarteaucitron.it.js

@@ -1,5 +1,8 @@
 /*global tarteaucitron */
 tarteaucitron.lang = {
+    "adblock": "Ciao! Questo sito Gioca trasparenza e vi dà la scelta del servizio di terze parti per attivare.",
+    "adblock_call": "Prega di disattivare il adblocker per iniziare a personalizzare.",
+    "reload": "Aggiorna la pagina",
     "alertBig": "Continuando a navigare nel sito, autorizzi l’utilizzo dei cookies inviati da domini di terze parti",
     "alertBigPrivacy": "Questo sito fa uso di cookies e ti consente di decidere se accettarli o rifiutarli",
     "alertSmall": "Gestione dei servizi",

+ 3 - 0
lang/tarteaucitron.pl.js

@@ -1,5 +1,8 @@
 /*global tarteaucitron */
 tarteaucitron.lang = {
+    "adblock": "Witaj! Ta witryna grać przejrzystość i daje możliwość wyboru usług stron trzecich do aktywacji.",
+    "adblock_call": "Proszę wyłączyć AdBlocker na rozpoczęcie dostosowywania.",
+    "reload": "Odśwież",
     "alertBig": "Pozostajac na tej stronie zgadzasz sie na korzystanie ze wszystkich zewnetrzynych uslug",
     "alertBigPrivacy": "Ta witryna używa plików cookie i pozwala kontrolować ich aktywacje",
     "alertSmall": "Zarządzanie usługami",

+ 3 - 0
lang/tarteaucitron.pt.js

@@ -1,5 +1,8 @@
 /*global tarteaucitron */
 tarteaucitron.lang = {
+    "adblock": "Olá! Este site jogar transparência e lhe dá a opção de serviço de terceiros para ativar.",
+    "adblock_call": "Por favor, desative seu AdBlocker para começar a personalizar.",
+    "reload": "Atualizar esta página",
     "alertBig": "Se você continuar a navegaçao neste site, você estará aceitando todos os serviços terceiros",
     "alertBigPrivacy": "Esse site utiliza cookies and lhe dá controle sobre o que você quer ativar",
     "alertSmall": "Gerenciar serviços",

+ 58 - 30
tarteaucitron.js

@@ -6,7 +6,8 @@ var scripts = document.getElementsByTagName('script'),
     cdn = path.split('/').slice(0, -1).join('/') + '/',
     alreadyLaunch = (alreadyLaunch === undefined) ? 0 : alreadyLaunch,
     tarteaucitronForceLanguage = (tarteaucitronForceLanguage === undefined) ? '' : tarteaucitronForceLanguage,
-    tarteaucitronProLoadServices;
+    tarteaucitronProLoadServices,
+    tarteaucitronNoAdBlocker = false;
 
 var tarteaucitron = {
     "cdn": cdn,
@@ -90,6 +91,7 @@ var tarteaucitron = {
             pathToServices = cdn + 'tarteaucitron.services.js',
             linkElement = document.createElement('link'),
             defaults = {
+                "adblocker": true,
                 "hashtag": '#tarteaucitron',
                 "highPrivacy": false,
                 "orientation": "top",
@@ -215,42 +217,68 @@ var tarteaucitron = {
                     html += '   </div>';
                     html += '</div>';
                 }
-
-                div.id = 'tarteaucitronRoot';
-                body.appendChild(div, body);
-                div.innerHTML = html;
                 
-                if (tarteaucitron.job !== undefined) {
-                    tarteaucitron.job = tarteaucitron.cleanArray(tarteaucitron.job);
-                    for (index = 0; index < tarteaucitron.job.length; index += 1) {
-                        tarteaucitron.addService(tarteaucitron.job[index]);
-                    }
-                }
+                tarteaucitron.addScript(tarteaucitron.cdn + 'advertising.js', '', function () {
+                    if (tarteaucitronNoAdBlocker === true || defaults.adblocker === false) {
+                        div.id = 'tarteaucitronRoot';
+                        body.appendChild(div, body);
+                        div.innerHTML = html;
+                
+                        if (tarteaucitron.job !== undefined) {
+                            tarteaucitron.job = tarteaucitron.cleanArray(tarteaucitron.job);
+                            for (index = 0; index < tarteaucitron.job.length; index += 1) {
+                                tarteaucitron.addService(tarteaucitron.job[index]);
+                            }
+                        }
                 
-                tarteaucitron.isAjax = true;
-                tarteaucitron.job.push = function (id) {
+                        tarteaucitron.isAjax = true;
+                        tarteaucitron.job.push = function (id) {
                     
-                    // ie <9 hack
-                    if (typeof tarteaucitron.job.indexOf === 'undefined') {
-                        tarteaucitron.job.indexOf = function (obj, start) {
-                            var i,
-                                j = this.length;
-                            for (i = (start || 0); i < j; i += 1) {
-                                if (this[i] === obj) { return i; }
+                            // ie <9 hack
+                            if (typeof tarteaucitron.job.indexOf === 'undefined') {
+                                tarteaucitron.job.indexOf = function (obj, start) {
+                                    var i,
+                                        j = this.length;
+                                    for (i = (start || 0); i < j; i += 1) {
+                                        if (this[i] === obj) { return i; }
+                                    }
+                                    return -1;
+                                };
                             }
-                            return -1;
-                        };
-                    }
                     
-                    if (tarteaucitron.job.indexOf(id) === -1) {
-                        Array.prototype.push.call(this, id);
+                            if (tarteaucitron.job.indexOf(id) === -1) {
+                                Array.prototype.push.call(this, id);
+                            }
+                            tarteaucitron.launch[id] = false;
+                            tarteaucitron.addService(id);
+                        };
+                
+                        if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') {
+                            tarteaucitron.userInterface.openPanel();
+                        }
+                
+                        tarteaucitron.cookie.number();
+                        setInterval(tarteaucitron.cookie.number, 60000);
                     }
-                    tarteaucitron.launch[id] = false;
-                    tarteaucitron.addService(id);
-                };
+                });
                 
-                if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') {
-                    tarteaucitron.userInterface.openPanel();
+                if (defaults.adblocker === true) {
+                    setTimeout(function () {
+                        if (tarteaucitronNoAdBlocker === false) {
+                            html = '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '" style="display:block">';
+                            html += '   <span id="tarteaucitronDisclaimerAlert">';
+                            html += '       ' + tarteaucitron.lang.adblock + '<br/>';
+                            html += '       <b>' + tarteaucitron.lang.adblock_call + '</b>';
+                            html += '   </span>';
+                            html += '   <span id="tarteaucitronPersonalize" onclick="location.reload();">';
+                            html += '       ' + tarteaucitron.lang.reload;
+                            html += '   </span>';
+                            html += '</div>';
+                            div.id = 'tarteaucitronRoot';
+                            body.appendChild(div, body);
+                            div.innerHTML = html;
+                        }
+                    }, 1500);
                 }
             });
         });