Advertisement
cesco82design

soluzione PHP cookie law

Jun 8th, 2015
604
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.60 KB | None | 0 0
  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' );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement