Menu
Multilingua EUCookieLaw di Diego La Monica in Joomla!

Multilingua EUCookieLaw di Diego La Monica in Joomla!

A giugno 2015 avevo realizzato una guida per l'installazione dello script realizzato del mio collega Diego La Monica EUCookieLaw in modalità stand-alone su CMS Joomla! per l'adeguamento dei siti web alla normativa sulla Privacy ed in particolare al Provvedimento del Garante della Privacy.

Su indicazione di alcuni utenti su come fare a gestire il banner in un sito multilingua realizzato in Joomla!, ho messo a punto una soluzione.

L’obiettivo quindi di questo articolo è di fornire delle istruzioni passo-passo per la configurazione di EUCookieLaw in modo da rendere possibile l'utilizzo dello script in quei siti che necessitano la presentazione del banner in diverse lingue.

Questo breve guida va ad integrare quanto già detto nella mia guida sopra citata e si applica alle versioni 2.5  e 3.x di Joomla!.

Step 1 – Copia dei file

Per comodità creiamo una cartella euCookie“ (o un nome di vostra scelta) nella cartella del template in uso nella quale bisogna trasferire i seguenti file: eucookielaw-header.php,  eucookielaw.css per il foglio di stile e lo script EUCookieLaw.js scaricati dal repository GitHub ai quali aggiungeremo un nuovo file php, dove andremo ad inserire un po' di codice per la gestione delle lingue, per semplicità ho chiamato il file: eucookielaw-language.php.

Step 2 - Contenuto del nuovo file php

All'interno del nuovo file eucookielaw-language.php che creeremo digitiamo il seguente codice:

PHP Code:
  1. <script src="/<?php echo $this->baseurl . '/templates/' . $this->template ?>/euCookie/EUCookieLaw.js"></script>
  2. <link rel="stylesheet" type="text/css" href="/<?php echo $this->baseurl . '/templates/' . $this->template ?>/euCookie/eucookielaw.css" />
  3. <?php
  4. $message = JText::_('EU_COOKIE_MESSAGE');
  5. $bannerTitle = JText::_('EU_COOKIE_BANNER_TITLE');
  6. $agreeLabel = JText::_('EU_COOKIE_AGREE_LABEL');
  7. $disagreeLabel = JText::_('EU_COOKIE_DISAGREE_LABEL');
  8. $tag = JText::_('EU_COOKIE_TAG');
  9. ?>
  10. <script>
  11. new EUCookieLaw({
  12. message : '<?php echo $message;?>',
  13. showBanner: true,
  14. bannerTitle: '<?php echo $bannerTitle;?>',
  15. agreeLabel: '<?php echo $agreeLabel;?>',
  16. disagreeLabel: '<?php echo $disagreeLabel;?>',
  17. tag: '<?php echo $tag;?>'
  18. });
  19. </script>

Dove assegniamo ai nomi delle variabili il valore assumeranno per la funzione Joomla! "JText" per la gestione delle traduzioni che definiremo in un file di lingua (in override).

Nella parte script, dopo l'ultimo elemento è possibile inserire altre istruzioni disponibili come ad esempio: 

Javascript Code:
  1. <script>
  2. new EUCookieLaw({
  3. message : '<?php echo $message;?>',
  4. showBanner: true,
  5. bannerTitle: '<?php echo $bannerTitle;?>',
  6. agreeLabel: '<?php echo $agreeLabel;?>',
  7. disagreeLabel: '<?php echo $disagreeLabel;?>',
  8. tag: '<?php echo $tag;?>',
  9. reload: true,
  10. agreeOnScroll: false,
  11. duration: 365
  12. });
  13. </script>

 

Nota: All'interno del file sono state inserite anche le prime due righe che richiamano rispettivamente il percorso del file di script e del file CSS (eventualmente correggere con il nome della cartella da voi assegnato se non usate quello proposto "euCookie").

Step 3 – Modifiche al template

La modifica al template è diversa e migliorata rispetto alla precedente guida, quindi aprendo il file index.php del template o, in alcuni casi il file principale del template potrebbe trovarsi in altra posizione (a titolo di esempio: /templates/vostrotemplate/layouts/default.php), procederemo ad inserire oltre all'inclusione del file eucookielaw-language.php creato prededentemente, ovvero all’interno del tag <head> il seguente snippet:

PHP Code:
  1. >define('EUCOOKIELAW_DISALLOWED_DOMAINS',
  2. '.google.com;.google.it;html5shim.googlecode.com;.googleanalytics.com;.googleapis.com;.doubleclick.net;'.
  3. '.twitter.com;twitterfeed.com;.youtube-nocookie.com;.youtube.com;.vimeo.com;.facebook.net;.facebook.it;'.
  4. '.facebook.com;.linkedin.com;.instagram.com;.cdninstagram.com;.eventbrite.it;.eventbrite.com;.addtoany.com;'.
  5. '.mixpanel.com;.addthis.com');
  6.  
  7. define('EUCOOKIELAW_LOOK_IN_SCRIPTS', true);
  8. require_once dirname(__FILE__) . "/euCookie/eucookielaw-header.php";
  9. include_once dirname(__FILE__) . "/euCookie/eucookielaw-language.php";

 Note:

  • Nel caso di aggiornamento del template in uso, è importante ripristinare questo file, avendo cura di provvedere ad una copia per il ripristino dello snippet.
  • Non tutti i domini elencati in EUCOOKIELAW_DISALLOWED_DOMAINS devono essere riportati, ma indicare solo quelli che sul proprio sito producono cookie. Un elenco completo dei domini è presente nella guida alla configurazione ottimale di EUCookieLaw.

Step 4 – Configurare l’aspetto del banner

Per vostre necessità potete decidere di modificare direttamente il CSS per poter aderire meglio allo stile del vostro sito oppure creare un nuovo CSS ed includerlo allo stesso modo, come visto nello Step 1, e con le regole da voi personalizzate. In un caso mi si è reso necessario, a titolo di esempio aggiungere, dopo la linea 44 del file CSS la seguente regola:

CSS Code:
  1. h1.banner-title {
  2. color: #fff;}

Step 5 - Uso del multilingua

Per poter disporre delle versioni in qualsiasi altra lingua sfrutteremo la funzionalità Override di Joomla! in Gestione Lingua.

override italianoProcediamo con le impostazioni dell'override della lingua e come prima operazione impostamo la lingua italiana.

Apriamo la Gestione Lingua da Estensioni e dal menu di sinistra scegliamo Override Lingua selezionando come Filtro dal menu a tendina la voce Italian (IT) - Sito.

Inizialmente la pagina apparirà vuota, a meno che non abbiamo, in passato, già inserito nuove voci di Override.

In ogni caso dobbiamo aggiungere le nuove voci per l'Override per ciascuna lingua di cui avessimo necessità.

modifica override inglese smallPremendo il pulsante nuovo verrà aperto un form che presenterà i seguenti campi da compilare:

  • Costante Lingua *
  • Testo

* Come Costante Lingua, useremo quelle viste nello Step 2 e utilizzate dalla funzione Joomla! JText es: EU_COOKIE_MESSAGE mentre nell'area di testo (Testo) andremo ad inserire il testo che vogliamo adottare per la lingua selezionata (nell'immagine per la lingua Inglese).
Essendo il testo inserito in questi campi destinato ad essere interpretato da JavaScript, è importante inserire il carattere di escape prima di ogni singolo apice (es. L\'infinito).

Salviamo il lavoro utilizzando Salva e Nuovo procedendo così per tutte le Costanti di Lingua e alla fine usiamo Salva e Chiudi, dopodichè possiamo procedere con l'Override di un'altra lingua selezionandola dal Filtro del menu di sinistra e assegnando per ciascuna Costante di Lingua il nuovo testo.

Al termine di questa procedura i nostri banner appariranno nella lingua predefinita dell'utente con delle visualizzazioni simili a queste:

Banner it Banner en small

 

 

La configurazione di EUCookieLaw in versione multilingua è quindi completa e totalmente funzionante in Joomla!.

Personalizzazione testo: Il testo del banner è puramente indicativo, pertanto consiglio vivamente di procedere con un testo idoneo al vostro sito, l'area di testo per l'informativa breve accetta codice html ove è possibile inerire anche il link alla vostra informativa estesa (ovviamente linkando la versione alla pagina della relativa lingua).

Nota Tecnica: Ho rilevato che lavorando in locale sul sito, accettando i Cookie il banner ricompare, mentre sul sito di produzione questo non si verifica.

2° Nota Tecnica: Su alcuni Server Web (tipo Aruba) viene richiesto anche il file: gzcompat.php disponibile sempre sul repository GitHub

3° Nota Tecnica: Su alcune installazioni di Joomla! 2.5 sono state riscontrate anomalie, entro breve sarà disponibile l'aggiornamento risolutivo.

Se ti è piaciuto aiutami a condividere l'articolo

Ultima modifica il %AM, %03 %452 %2016 %11:%Giu
Vota questo articolo
(1 Voto)