Tu sei qui

Installare il plugin Eu Cookie Law di Diego La Monica su Drupal 7

  • Sharebar


Un cookie (biscottino :-)

Beh, se ancora non ne foste al corrente, sappiate che il "buon" Diego La Monica ha realizzato un plugin che vi permetterà di rendere conformi i vostri siti web alla normativa italiana ed europea sull'uso dei cookie. Il perchè lo leggete sulla pagina dedicata al suo plugin EUCookieLaw, che comunque riassumo qui citandolo.

Poichè le direttive europee hanno imposto che tutti i siti sotto l’ombrello Europa forniscano un’informativa chiara al navigatore sull’utilizzo dei cookie, essendo tecnicamente insoddisfatto delle soluzione proposte dagli altri ed infine sperando che qualcuno lo facesse al posto mio, qualche giorno fa mi sono dovuto sviluppare prima uno script stand-alone denominato EUCookieLaw poi (a grande richiesta) l’ho reso anche un plugin per WordPress

Diego mi ha chiesto di provarlo su Drupal e... Funziona! Seguendo le indicazioni riportate in questa pagina :-)

 

N.B.: dal 4 settembre 2015 è finalmente disponibile il modulo EU Cookie Law per Drupal 7. Ne consegue che le indicazioni che trovate in questa pagina, su come implementare il plugin su Drupal 7, sono ovviamente da considerare obsolete. Resta valido tutto il resto.

 

  1. Prima di tutto andate al repository del plugin su GitHub e scaricate il plugin facendo clic sul pulsante "Download ZIP".
  2. Scompattate l'archivio compresso.
  3. Fate un backup del vostro sito e database!
  4. Mettete il sito "in manutenzione"
  5. Individuate il file eucookielaw-header.php e caricatelo nella root di Drupal
  6. Nella directory del vostro tema create una cartella con il nome "eucookielaw" e copiateci i file
    1. eucookielaw.css
    2. EUCookieLaw.js
  7. Sempre nella directory principale del vostro tema trovate il file template.php
    1. Editatelo con un editor di solo testo
    2. Trovate la funzione MYTHEME_preprocess_page (Dove MYTHEME è un segnaposto per il nome reale del tema che utilizzate)
    3. Nel caso raro che non esista ancora createla copiando nel template.php le righe seguenti
      /**
       * Page preprocessing
       */
      function MYTHEME_preprocess_page(&$vars) {
      
      // Insert your code here
        
      }

       

    4. All'interno della funzione, cancellate la riga "// Insert your code here" ed al suo posto incollateci il codice seguente sostituendo MYTHEME con il nome macchina del vostro tema
      // Add css and js for Diego La Monica EUCookieLaw plugin	
        drupal_add_css(drupal_get_path('theme', 'MYTHEME') . '/eucookielaw/eucookielaw.css', array(
         'group' => CSS_THEME,
         'type' => 'file',)
         );
      
        drupal_add_js(drupal_get_path('theme', 'MYTHEME') .'/eucookielaw/EUCookieLaw.js', array(
          'type' => 'file',
      	'scope' => 'header',
      	'group' => JS_LIBRARY,
      	'every_page' => TRUE,
          'weight' => -30,)
          );
      	
        drupal_add_js('new EUCookieLaw({
          message: "La legge prevede l\'autorizzazione all\'utilizzo dei cookie. Me la vuoi dare per favore?",
          showBanner: true,
          bannerTitle: "Autorizzazione alla conservazione dei cookie",
          agreeLabel: "Do il mio consenso",
          disagreeLabel: "Nego il consenso",
          tag: "h1",
          fixOn: "bottom"
          });',
          array(
            'type' => 'inline',
      	  'scope' => 'header',
      	  'group' => JS_LIBRARY,
      	  'every_page' => TRUE,
      	  'weight' => -29,)
          );
      	

       

    5. Salvate il file.

  8. Modificate con un editor di solo testo il file index.php di Drupal e seguite dettagliatamente le istruzioni qui sotto altrimenti vi hackerate il sito :-)

    1. Sotto la riga
       

      /**
       * Root directory of Drupal installation.
       */
      define('DRUPAL_ROOT', getcwd());

       

    2. Incollate il codice seguente

      define('EUCOOKIELAW_DISALLOWED_DOMAINS', '.google.com; .google.it; .twitter.com; twitterfeed.com; platform.twitter.com; .facebook.net; .facebook.com; .facebook.it; .linkedin.com; ');  
      define('EUCOOKIELAW_LOOK_IN_SCRIPTS', true);  
      require 'eucookielaw-header.php';  

       

    3. Giusto a scanso di equivoci riporto qui sotto l'intero file modificato sul mio sito di prova
       

      <?php
      
      /**
       * @file
       * The PHP page that serves all page requests on a Drupal installation.
       *
       * The routines here dispatch control to the appropriate handler, which then
       * prints the appropriate page.
       *
       * All Drupal code is released under the GNU General Public License.
       * See COPYRIGHT.txt and LICENSE.txt.
       */
      
      /**
       * Root directory of Drupal installation.
       */
      define('DRUPAL_ROOT', getcwd());
      define('EUCOOKIELAW_DISALLOWED_DOMAINS', '.google.com; .google.it; .twitter.com; twitterfeed.com; platform.twitter.com; .facebook.net; .facebook.com; .facebook.it; .linkedin.com; ');  
      define('EUCOOKIELAW_LOOK_IN_SCRIPTS', true);  
      require 'eucookielaw-header.php';  
      require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
      drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
      menu_execute_active_handler();
      

       

    4. Salvate il file

  9. Pulite la cache di Drupal

  10. disattivate la "Modalità manutenzione" di Drupal

Alcune considerazioni e commenti

Utilizzando il codice "cos'ì com'è" state utilizzando il plugin nel modo più restrittivo possibile, impedendo l'installazione di numerosi cookie di terze parti, ovvero nel caso che il visitatore non accetti i cookie il vostro sito perderà tutte le funzionalità fornitevi dai servizi di Google (esempio: Google Analytics, Google Maps) e la possibilita di condivisione sui social network: Facebook, LinkedIn, Twitter, Google Plus. Questo a causa dei domini inseriti nella apposita riga del file index.php

define('EUCOOKIELAW_DISALLOWED_DOMAINS', '.google.com; .google.it; .twitter.com; twitterfeed.com; platform.twitter.com; .facebook.net; .facebook.com; .facebook.it; .linkedin.com; ');  

Potete ovviamente eliminare o aggiungere domini da bloccare a seconda delle vostre esigenze.

Il plugin è personalizzabile seguendo le indicazioni riportate su:

Sito di test del plugin su Drupal 7

A http://cookielaw.webdevsolutions.net/ è possibile vedere il plugin in azione nella modalità che ho definito "Cookie Killer", ovvero utilizzando esattamente il codice indicato in questa pagina.

Ho installato diversi moduli aggiuntivi di Drupal tipici di un'installazione standard di un sito di produzione, ma forse anche più. Ho permesso al visitatore di visualizzare un elenco dei moduli abilitati, tra i quali vedrete anche:

  • Google analytics
  • Easy Social
  • Ho anche incorporato una google map in una pagina

P.S.: l'unico cookie che non riesco a bloccare è quello di LinkedIn ma sono sicuro che il mitiko Diego La Monica riuscirà a risolvere il problema, come del resto ha già fatto quando abbiamo messo on line il sito di test, con le sue "five minutes patches" :-)

I vostri commenti e proposte di miglioramento

Il codice per Drupal 7 presente in questa pagina è ovviamente soggetto a qualsiasi vostra proposta di miglioramento, non fate gli orsi e inserite commenti in questa pagina.

Perchè non un modulo Drupal EUCookieLaw visto che esiste già per Wordpress?

E chi l'ha detto che non succederà? wink

 

Ritratto di Pietro Cappai

About the author

Vivo in Sardegna a Carloforte (CI) sull'Isola di San Pietro. Realizzo siti web dinamici, principalmente utilizzando il cms open source Drupal.