SHARE
TWEET

soluzione PHP cookie law

cesco82design Jun 8th, 2015 450 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php    //check PHP per esistenza o meno dei cookie necessari
  2.     if($_COOKIE['system_cookie']=='yes') //controllo se è stato dato il consenso
  3.     {  
  4.             if(!$_COOKIE['terzi_cookie']) //questo cookie vien generato dalla pagina dell'informativa ESTESA dove do la possibilità di scelta chiaro che se questa riga blocca/sblocca quelli di terze parti
  5.     //  if (!$_COOKIE['analytics_cookie']) IN QUESTO CASO INVECE BLOCCHEREI QUELLI ANALITICI.... in base al nome del cookie puoi scegliere cosa bloccare/sbloccare
  6.                 { ?>
  7.                         <div>
  8.                 qualsiasi div o script da bloccare/sbloccare
  9.             </div>
  10.             <?php
  11.                 } //chiudo la condizione che mi verifica se ho avuto blocchi "singoli" delle diverse categorie analitici o di terze parti
  12.         } // chiudo la condizione di verifica se è stato dato o meno il consenso (ovvero se esiste o meno il cookie del consenso)
  13. ?>
  14.  
  15. <!-- Banner (da inserire in tutte le pagine o nella parte che gestisce l'header) -->
  16. <div id="cookiediv">
  17.         <div>
  18.             Il sito utilizza cookie per migliorare la navigazione e il sito stesso, per fini statistici e per condividere argomenti sui social network.
  19.             Proseguendo, l’utente accetta l’utilizzo dei suddetti cookie. Potrà sempre cambiare le proprie scelte nelle
  20.             <a href="cookies-policy/#settings_cookie" title="Informativa estesa sui Cookies">Impostazioni dei cookie</a>
  21.             presenti nell’Informativa Estesa
  22.         </div>
  23.         <a href="javascript:void(0)" id="closecookie">ACCETTO</a>
  24.         <a href="javascript:void(0)" id="denycookie">Nego il consenso</a>
  25.         <a href="http://www.lucadlux.it//cookies-policy/" title="Leggi l&rsquo;informativa completa sui Cookie" class="cookiepolicy">Maggiori Informazioni</a>
  26.     </div>
  27. <!-- Fine Banner -->
  28.  
  29.  
  30. <script type="text/javascript">
  31. //consiglio di utilizzare e richiamare prima jquery.cookie.js, questo consiglio di metterlo in tutte le pagine o nella parte relativa all'header
  32. jQuery(document).ready(
  33.     function($)
  34.     {
  35.         $(window).scroll(function ()
  36.         {
  37.             if ($(this).scrollTop() > 1)    // dove 1 è inteso come 1 px di scroll
  38.             {
  39.                 $("#cookiediv").hide().slideUp(500); // nascondo il banner
  40.                 $.cookie("system_cookie", "yes", { expires: 365,path: '/' ,domain: +document.domain}); //creo il cookie di consenso per nascondere il banner
  41.                 $("tuaclasseoID").append("<div class='test'>funziona</div>");
  42.             }
  43.             else
  44.             {
  45.                 if (($.cookie('system_cookie') == null) && ($.cookie('system_cookie_deny') == null)) //se non sono presenti i cookie di consenso o negazione a rilasciare i cookie
  46.                 {  
  47.                      $("#cookiediv").show(); //mostro il banner
  48.                      $('#page').animate({marginTop:'100'}); //io ad esempio abbasso il pagina pen non essere troppo invasivo e nascondere l'header
  49.                 }
  50.                 else
  51.                 {
  52.                     $("#cookiediv").hide(); // nascondo il banner
  53.                 }
  54.                 $("#closecookie").click( //se do il consenso
  55.                     function()
  56.                     {
  57.                         $("#cookiediv").slideUp(500); //faccio sparire il banner
  58.                         $.cookie("system_cookie", "yes", { expires: 365,path: '/' ,domain: +document.domain}); //creo il cookie di consenso per nascondere il banner
  59.                         $('#page').animate({marginTop:'0'}); //faccio tornare la pagina in alto
  60.                         setTimeout(function(){
  61.                                // window.location.href = window.location.href; //refresh della pagina per abilitare tutti i cookie
  62.                                 window.location.reload();
  63.                         },1000)
  64.                     }
  65.                 );
  66.                 $("#denycookie").click( //se nego il consenso
  67.                     function()
  68.                     {
  69.                         $("#cookiediv").slideUp(500);
  70.                         $.cookie("system_cookie_deny", "deny", { expires: 365,path: '/' ,domain: +document.domain}); // creo il cookie di negazione per nascondere il banner
  71.                         $('#page').animate({marginTop:'0'}); //faccio tornare la pagina in alto
  72.                         setTimeout(function(){
  73.                         },1000)
  74.                              // window.location.href = window.location.href; //refresh della pagina per abilitare tutti i cookie
  75.                                 window.location.reload();
  76.                         }
  77.                 );
  78.             }
  79.         }
  80.     }
  81. );
  82. </script>
  83. <!-- questa parte va inserita in alto alla pagina dell'informativa ESTESA in modo che poi nel div in basso per la scelta i checkbox risultano flaggati o meno in base alla presenza dei cookie -->
  84. <?php
  85. if (!$_COOKIE['terzi_cookie']) {
  86.     $cookie3th='checked="checked"';
  87. } else {
  88.         $cookie3th='';
  89. }
  90. if (!$_COOKIE['analytics_cookie']) {
  91.         $cookieanalitici='checked="checked"';
  92. } else {
  93.         $cookieanalitici='';
  94. }
  95. ?>
  96. <!--fine degli attributi per i checkbox -->
  97.  
  98. <!-- scelta dei vari cookie da inserire infondo all'Informativa ESTESA -->
  99. <h2>Impostazioni Cookie</h2>
  100. <div id="setting_cookies">
  101.  
  102. <p><input type="checkbox" name="cookietecnici" id="cookietecnici" class="cookiecheck" disabled checked="checked" /> cookie tecnici</p>
  103.     <p><input type="checkbox" name="cookieanalitici" id="cookieanalitici" class="cookiecheck" <?php echo $cookieanalitici; ?> /> cookie di analisi</p>
  104.         <p><input type="checkbox" name="cookie3th" id="cookie3th" class="cookiecheck" <?php echo $cookie3th; ?> /> cookie di terze parti </p>
  105.         <p>(<i>Tramite le impostazioni dei cookie si può far evitare che compaia la porzione di pagina che ospita i servizi/pulsanti/widget di terze parti, ma qualora si fosse dato inizialmente il consenso e le Terze Parti avessero generato i cookie rimandiamo alla rimozione singola</i>)</p>
  106.  
  107. <button id="save" >Salva le modifiche</button>
  108. </div>
  109. <!-- FINE scelta dei vari cookie da inserire infondo all'Informativa ESTESA -->
  110.  
  111. <script type="text/javascript">
  112. //consiglio di farlo caricare SOLO nella pagina dell'informativa
  113.         jQuery(document).ready(function($){
  114.                 $('#save').on('click', function(){ //verifico al click di salvare le modifiche
  115.                         if ($.cookie('system_cookie') == null) //se non è stato dato il consenso, lo do
  116.                 {
  117.                         $.cookie("system_cookie", "yes", { expires: 365,path: '/' ,domain: +document.domain}); //creo il cookie del consenso che nasconde il banner
  118.                 }
  119.                         if ( $([name=cookieanalitici]).is(':checked') ) { //se sono selezionati i cookie di analisi
  120.                                 $.removeCookie('analytics_cookie', {path:'/'}); //rimuovo un eventuale cookie che blocca i cookie analitici
  121.                         } else {
  122.                                 $.cookie("analytics_cookie", "disable_analytics", { expires: 365,path: '/' ,domain: +document.domain}); //altrimenti se non selezionato, creo il cookie per bloccare i cookie analitici
  123.                         }
  124.                         if ( $([name=cookie3th]).is(':checked') ) { //se sono selezionati i cookie di terze parti
  125.                                 $.removeCookie('terzi_cookie', {path:'/'});//rimuovo un eventuale cookie che blocca i cookie di terze parti
  126.                         } else {
  127.                                 $.cookie("terzi_cookie", "disable_3th_cookie", { expires: 365,path: '/' ,domain: +document.domain});//altrimenti se non selezionato, creo il cookie per bloccare i cookie di terze parti
  128.                         }
  129.                         $("#cookiediv").slideUp(500); //nascondo il banner
  130.                 $('#page').animate({paddingTop:'0'});  //rimando in alto la pagina
  131.                         $("#setting_cookies").append("<div class='alert alert-success successsave'>Modifiche Salvate con successo.</div>"); //mostro un messaggio di salvataggio delle impostazioni scelte
  132.                         setTimeout(function(){
  133.                                                 $('.successsave').hide(300).fadeOut(); //faccio sparire il messaggio di salvataggio effettuato
  134.  
  135.                                                 window.location.reload();
  136.            
  137.                                                         },4000)
  138.  
  139.                 });
  140.         });
  141. </script>
  142.  
  143.  
  144. <?php
  145. // per chi utilizza WP e sa crearsi gli shortcode, ecco a voi la funzione per creare il check:
  146. function cookie_shortcode( $atts, $content= null ) {
  147.     $atts = shortcode_atts( array(
  148.     'attributo' => 1
  149.   ), $atts );
  150.  
  151.  if($_COOKIE['system_cookie']) {  
  152.     if(!$_COOKIE['terzi_cookie']) {
  153.         $output = do_shortcode( $content );
  154.     } else {
  155.           $ouput = 'Mi spiace, ma per fruire del contenuto è necessario abilitare i cookie di terze parti'; //non so perchè non mi mostra la segnalazione
  156.     }
  157.   } else {
  158.         $ouput = 'Mi spiace, ma per fruire del contenuto è necessario abilitare i cookie';//non so perchè non mi mostra la segnalazione
  159.   }
  160.  
  161.   return $output;
  162. }
  163. ?>
  164.  
  165. add_shortcode( 'cookie', 'cookie_shortcode' );
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top