Blog

Cookie Law parte seconda – Il Plugin

Dopo aver visto cosa richiede la legge, vediamo ora come abbiamo implementato queste richieste nel plugin.

Questa non è una guida tecnica all’installazione o upgrade del plugin, per la quale rimandiamo alla documentazione apposita, quanto un’analisi delle impostazioni e funzionalità del plugin evidenziando i punti in relazione agli obblighi di legge.

Una volta installato il plugin, nel menù di amministrazione, alla voce Configurazione troveremo la nuova voce Configura Cookie Law.

In questa pagina avremo 4 elementi di configurazione

  • Attiva Cookie Law
  • Condizioni impostazione cookie consenso
  • Nome cookie tecnico
  • Durata cookie tecnico

Il primo è banale è serve per accendere / spegnere il plugin. Di default è attivo.

Il secondo elemento è fondamentale e serve per impostare la modalità di espressione del consenso generale da parte dell’utente, ovvero la creazione del cookie tecnico di conservazione del consenso dell’utente.

I possibili valori sono

  • second_page è l’impostazione di default e significa che il cookie contenente il consenso dell’utente verrà impostato solo alla seconda pagina vista dall’utente. Ovviamente se l’utente clicca sul pulsante “accetto” presente nell’informativa breve, il cookie verrà impostato subito, senza attendere il caricamento della seconda pagina (ma chiaramente la prima pagina verrà visualizzata sempre senza cookie e quindi senza consenso). Attenzione: impostando il cookie alla seconda pagina, significa che tutti gli elementi che sono influiti dalla presenza del cookie di accettazione, come il banner e i cookie/servizi soggetti a consenso, anche nella seconda pagina saranno trattati in assenza di cookie, perchè il cookie può essere letto effettivamente solo successivamente. Questa situazione è voluta per ulteriore ‘sicurezza’ a garanzia che l’utente si sia accorto del banner. Si potrebbe bypassare il problema con un refresh forzato, ma al momento abbiamo preferito non adottare una soluzione del genere che potrebbe comportare problemi proprio in relazione al tracking delle visite.
  • third_page funziona come second_page solo che aggiunge una pagina in più prima di ottenere il consenso.
  • onclick rappresenta la modalità più sicura (dal punto di vista del rispetto dello spirito della norma). Con questa soluzione, il cookie (e quindi il consenso) verrà impostato solo quando l’utente clicca sul pulsante di accettazione contenuto nel banner stesso e visto che la visualizzazione del banner dipende dalla presenza del cookie di consenso, il banner sarà sempre visibile fino a quando l’utente non clicca sul pulsante ivi contentuo.
  • immediately rappresenta la soluzione meno invasiva per il sito perchè il cookie viene impostato immediatamente e quindi si attribuisce l’espressione del consenso subito. Questa soluzione potrebbe non essere considerata conforme alla norma, perchè attribuisce il consenso anche in quei casi in cui l’utente ha caricato la pagina ma non ha fatto in tempo a vedere nulla (ad esempio per un crash), ma ormai ha il cookie salvato.

Il terzo elemento configurabile è il nome da dare al cookie tecnico. Abbiamo introdotto questa possibilità per dare un modo estremamente semplice al gestore del sito per resettare le preferenze degli utenti. Per ottenere ciò, basta cambiare il nome al cookie tecnico che conserva le preferenze sui cookie. Ma perchè si dovrebbe fare questo reset?
Se modifichiamo l’informativa o modifichiamo i cookie (o ne aggiungiamo), all’utente dobbiamo nuovamente presentare il banner e dobbiamo nuovamente acquisire il consenso. Per essere conformi, basta cambiare il nome del cookie tecnico (non abbiamo messo un controllo sui nomi utilizzati, è compito del titolare del sito assicurarsi di non usare lo stesso nome).

Il quarto elemento è la durate del cookie tecnico. Abbiamo impostato la durata del cookie di default in 365 giorni, ognuno può modificare tale valore qui. La durata del cookie viene estesa del periodo indicato ad ogni visita dell’utente.

Una volta effettuate le configurazioni appena descritte, si può procedere con la gestione vera e propria.

Nel menù Strumenti è ora presente la nuova voce Gestione Cookie Law

In questa pagina è possibile inserire i testi che andranno a comporre il banner e l’informativa estesa (rappresentata da una nuova pagina, di cui è possibile vedere un’anteprima con apposito pulsante in modo da verificare man mano come si compone la pagina), nonché le categorie di cookie e i cookie stessi.
Ovviamente intendo la descrizione dei cookie che comparirà nell’informativa estesa, non gli script relativi alla creazione del cookie o embed dei servizi terze parti.

zw_cookie_law_configurazione

I testi gestibili (ovviamente multilingua, a seconda delle lingue presenti nel sito) sono i seguenti:

  • Testo informativa breve (banner)
  • Testo introduttivo informativa estesa
  • Testo introduttivo sezione cookies informativa estesa
  • Testo sui browsers informativa estesa
  • Testo conclusivo informativa estesa

Sono tutti autoesplicativi, in caso di dubbi è comunque sufficiente scrivere qualcosa e guardare l’anteprima per vedere come si compone la pagina.

Con categorie si intende le diverse tipologie di cookie presenti nel sito. Ad essere sinceri non mi è chiarissimo come debbano essere suddivisi i cookie, pertanto mediante questo strumento è possibile creare un numero indefinito di categorie. Quelle attive saranno elencate nella pagina dell’informativa estesa.

Una volta create le categorie, queste saranno disponibili durante la creazione dei cookie. Infatti per creare un cookie, oltre a nome e descrizione, dovremo scegliere a quale categoria appartiene e definire se è un cookie (o servizio) per il quale si desidera che l’utente possa esprimere il consenso o meno.

Nella pagina dell’informativa estesa, dopo l’elenco delle categorie di cookie, viene costruito l’elenco dei cookie, raggruppati per categoria e secondo l’ordinamento impostato, ovviamente stampando a video il nome, la descrizione e in caso sia un cookie soggetto al consenso (se così lo abbiamo impostato come descritto sopra), compare la possibilità di impostazione del consenso per l’utente mediante radio button SI / NO e pulsante SALVA (questo per ogni cookie per i quali si è scelto che siano soggetti a consenso).

In questo modo credo che si possa rispettare esattamente ciò che chiede la legge, tuttavia perchè sia effettivamente così manca ancora una parte, che purtroppo deve essere fatta manualmente, intervenendo sul codice.

Affinché i consensi sui cookie siano effettivamente rispettati bisogna fare in modo che in assenza del consenso (quindi sempre per la prima pagina visitata da un utente privo di cookie), i cookie / servizi soggetti a consenso non entrino in funzione.

Abbiamo fatto il possibile per semplificare gli interventi necessari e il tutto si riduce all’inglobare la porzione di codice che crea il cookie o effettua l’embed del servizio, in un if.

Esempio:

Supponiamo di avere una chiamata ad un servizio di terze parti che stabiliamo debba essere soggetto a consenso.

Supponiamo che il codice che effettua la chiamata sia questo:

CODICE_LUNGO_E_COMPLESSO_ANCHE_SU_50_RIGHE_CHE_QUI_SEMPLIFICHIAMO_COSI’

Per fare in modo che il sistema gestisca il consenso, quindi sia blocco preventivo sia successive accettazioni / negazioni del consenso da parte di qualunque utente, sarà sufficiente includerlo nel seguente if:

if(zw_cookie_law_check_consent($cookie_id)) {

CODICE_LUNGO_E_COMPLESSO_ANCHE_SU_50_RIGHE_CHE_QUI_SEMPLIFICHIAMO_COSI'

}

dove $cookie_id è l’ID del cookie così come lo abbiamo inserito nella pagina di amministrazione.

Mi pare ci sia tutto, rimane da ricordare, per essere conformi alla norma, di inserire un link nel footer che punti direttamente alla pagina dell’informativa estesa.

ATTENZIONE: il presente plugin è distribuito con licenza GNU GPL2, in particolare non ci possiamo assumere alcun tipo di responsabilità in merito all’efficacia del plugin nell’assicurare il rispetto delle norme in vigore. L’utente comprende quanto sopra e decide di utilizzarlo a suo rischio e pericolo, esentando gli autori e i distributori da qualsiasi rivalsa in caso di danni derivanti dal suo utilizzo.

Tag: , , ,

Condividi questo post con il mondo!

Paolo De Dionigi

L'autore: Paolo De Dionigi

Ingegnere ambientale, finita l'università fonda con altri due soci una società che si occupa di realizzazione di siti internet e nel contempo effettua consulenze in ambito sicurezza sul lavoro e ambiente. Dopo alcuni anni si dedica completamente al web… Dal 2006 è responsabile tecnico di Zen Cart Italia.

52 COMMENTI

  1. Pingback: Cookie Law parte prima – La legge

  2. Grazie infinite per la vostra disponibilità.

    Ho un problema che non riesco a capire dove sbaglio.

    Una volta installata la path e caricati i file via FTP mi trovo tutto come da guida, l’unica cosa strana che se attivo il modulo su “true” non vedo nulla mentre se lo metto su “false” appare in alto la banda con la dicitura e il pulsante accetto.

    Dove sbaglio? Grazie ancore per la vostra disponibilità. Maurizo

    • Ciao, è molto strano il tuo problema.
      L’attivazione del modulo imposta a true il seguente parametro: ZW_COOKIE_LAW_ENABLED
      Nel frontend, l’unico punto in cui compare quel parametro è:

      if ((ZW_COOKIE_LAW_ENABLED == 'true') && $session_started) {
      

      in files/includes/init_includes/init_zw_cookie_law.php riga 14.

      Questo è il file di inizializzazione che attiva tutto il funzionamento del modulo o lo lascia spento.
      Controlla che effettivamente se impostato a true, nel db ti inserisca true e che il codice del tuo file di init sia come quello sopra riportato, anche se non vedo come potrebbero essere diversamente.
      Mi risulta incomprensibile che a te possa funzionare al contrario, ma se non sperimenti altri malfunzionamenti, lascialo in modo che a te funzioni.

    • Potresti inviarmi l’url del sito?

  3. Buonasera,
    ringrazio per la disponibilita del modulo, Devo comfermare che mi trovo nelle identica situazione del Sig. Maurizio.
    Attivato il modulo su “true” non vedo nulla mentre su “false” appare in alto la banda con il pulsante accetto.
    Verificato il in files/includes/init_includes/init_zw_cookie_law.php riga 14.ed e’ su “true”
    Non so dove sbaglio, grazie.

    Alfredo

    • Non so cosa dire. E’ come se nel vostro caso, true valesse false e viceversa. E’ da notare che il controllo è su ‘true’, quindi stringa ‘true’, non valore booleano true, quindi non dovrebbero esserci malintesi su altri valori che danno risultato vero o falso. Inoltre non avrebbe senso la restituzione a vero in caso di valore falso (essendo stringhe). Pertanto non rimane che la funzione che imposta i valori lato admin imposti i valori al contrario: quando si sceglie true, nel db viene scritto false e viceversa.
      Controllare è abbastanza semplice, basta guardare nel db il valore della chiave ZW_COOKIE_LAW_ENABLED quando si attiva il modulo e quando lo si disattiva. Se effettivamente sono al contrario, poi si tratta di capire perchè e soprattutto perchè solo a voi.

    • Potresti inviarmi l’url del sito?

  4. Buongiorno e grazie mille per il modulo, che ho provato oggi su zc 1.3.9.
    Purtroppo anche io ho lo stesso problema segnalato, se imposto il modulo su true il banner non appare. Mentre se lo imposto su false, il banner appare correttamente.
    Ho controllato il db ed i valori della chiave vengono impostati correttamente sia quando il modulo è attivato che disattivato.
    Inoltre, impostando il modulo su false e quindi con il banner attivo, cliccando il pulsante Accetta il banner rimane visibile.

    Sabrina

  5. Buongiorno e grazie per la disponibilità, il mio problema invece è che dopo aver seguito alla lettera tutta la procedura di installazione non mi compare ne il menù nella pagina Admin e nemmeno alcun tipo di banner nel sito… 🙁 qualcuno mi può aiutare?

  6. Buongiorno e complimenti per il modulo.

    Penso ci sia un errore nella funziona che gestisce l’if per assoggettare al consenso del codice nella pagina:

    la funzione zw_cookie_law_check_consent ritorna TRUE nel caso che la variabile $zw_cookie_content->id_del_cookie sia uguale ad 1. Invece il valore corretto presente è OK.

    Quindi ho modificato if($zw_cookie_content->{$cookie_id}==’1′) return true; con if($zw_cookie_content->{$cookie_id}==’OK’) return true;

    Non so se occorrono modifiche anche altrove.

    Marco.

    • Buongiorno, la funzione zw_cookie_law_check_consent serve per verificare se ci sia o meno il consenso sui cookie soggetti a consenso, non sul cookie tecnico di consenso generale.

      E’ il cookie di consenso generale ad essere valorizzato con OK, mentre il consenso dei cookie di profilazione è valorizzato a 1.

      Il setting del consenso a uno specifico cookie di profilazione, è attuato mediante la funzione zw_cookie_law_set_cookie_consent($cookie_id,$consent) che prende come parametri il cookie_id e il valore del consenso.
      Il valore del consenso è passato via POST dal form di espressione del consenso e i valori possibili sono 0 e 1

      Infatti per visualizzare il banner, il check non è fatto con quella funzione ma con questo codice:

      if(!isset($_COOKIE[ZW_COOKIE_LAW_COOKIE_NAME]) || ($zw_cookie_content->{ZW_COOKIE_LAW_COOKIE_NAME}!='OK')) {

      D’altronde se fai un test con il codice originale, vedrai che funziona, mentre se usi la tua modifica, non funzionerà l’espressione del consenso per i cookie specifici.

      • Nel readme:

        ——————————————-
        if(zw_cookie_law_check_consent($cookie_id)) {
        CODICE DA ASSOGGETTARE AL CONSENSO
        }

        Dove $cookie_id è l’ID del cookie così come lo abbiamo inserito nella pagina di amministrazione.
        ————————–

        A me questo codice risulta sempre FALSE anche quando il cookie è stato accettato.

        Facendo un print_r di $zw_cookie_content, quando accettato il cookie, ho: stdClass Object ( [zw_cookie_law] => OK )

        Per questo ho pensato di cambiare da 1 a OK.

        • Dici che il codice ti risulta sempre false, ma quale cookie_id gli fornisci?

          Ribadisco: non devi usarla per testare il consenso al cookie tecnico, ma ai cookie per i quali vuoi chiedere il consenso.

          Esempio: supponiamo nel tuo sito ci sia un servizio, chessò CRITEO, per il quale hai stabilito che deve essere bloccato senza consenso e debba essere data facoltà all’utente di esprimere / negare il consenso.

          Per ottenere questo risultato, devi aver inserito nel backend una categoria di cookies (ad esempio cookie di profilazione terze parti, ma il nome può essere ovviamente qualsiasi cosa), devi poi aver creato, sempre nel backend un cookie (in questo caso un servizio ma la procedura è la medesima), denominandolo ad esempio CRITEO, selezionando alla voce consenso ‘SI’.
          Questo cookie avrà un ID, nell’esempio poichè ne abbiamo inserito uno solo, sarà ‘1’.

          Dopodiché vai nel codice del frontend dove è inserito il blocco di codice che effettua la chiamata a CRITEO. Chiamiamolo BLOCCO_CRITEO per semplicità.

          Dovrai impostare questo codice:

          if(zw_cookie_law_check_consent('1')) {
          BLOCCO_CRITEO
          }
          

          Se il cookie / servizio che vuoi gestire, quando lo inserisci in admin si ritrova come ID 37, allora il codice per gestirlo nel frontend sarà:

          if(zw_cookie_law_check_consent('37')) {

          Il fatto che il print_r di $zw_cookie_content restituisca stdClass Object ( [zw_cookie_law] => OK ), significa che contiene il consenso al solo cookie generale (che ha come nome zw_cookie_law (così come creato di default).

          Se tu crei altri cookie in backend e li assoggetti al consenso (fai un test, creane 5 e assoggettane 3) e poi fai un print_r nel frontend (dopo aver preventivamente eliminato il cookie altrimenti non vedi le modifiche (è per questo che ho scritto che in caso di modifiche di questo tipo, in produzione, bisogna cambiare il nome al cookie (dalla pagina di configurazione), così la procedura di consenso viene ripetuta (per un cookiename diverso a questo punto, che rimarrà il cookie di gestione del consenso fino a ulteriore modifica), dunque facendo il print_r, troverai non solo zw_cookie_law (o meglio il nuovo nome usato) => OK, ma altri 3 elementi, ovvero i 3 cookie soggetti a consenso , ciascuno con il nome che hai scelto e il valore 1. Perchè? Perchè all’acquisizione del consenso generale, vengono accettati tutti i cookie e quindi il plugin recuperare tutti i cookie soggetti a consenso (che sono stati descritti da te) e attribuisce loro il consenso e lo inserisce nel cookie tecnico che abbiamo creato per questo scopo.

          • Ok ora mi è tutto chiaro.

            Leggendo la documentazione non ho visto la parte dove si parla della gestione degli id dei cookies da admin e pensavo che $cookie_id facesse riferimento al nome del cookie generale (zw_cookie_law).

            Ora funziona correttamente.

            Grazie mille.

            Marco.

  7. Ciao Paolo,
    ho provato ad installare il modulo, ma non mi si installa correttamente su Zencart 1.5.1, perche’ i 4 insert sulla tabella configuration non mi vanno a buon fine e danno l’errore:
    Errore Failed: 1
    Errore ERROR: Impossibile inserire configuration_key “” in quanto già esistente
    Vado a vedere in tabella, ma non ci sono quei valori della configuration_key.
    Mi puoi aiutare?
    Saluti.

  8. Eccomi di nuovo. Il problema precedente l’ho risolto. Avevo una record con configuration_key = “” sulla tabella configuration…. Non so perche’.
    Adesso il modulo si è installato bene, ma viene presentato il banner solo se la ZW_COOKIE_LAW_ENABLED è false, mentre non viene visualizzato quando è true, come dovrebbe essere. Inoltre se clicco su Accetta non va via il banner. Ho visto che è successo anche ad altri, come si risolve questo problema?
    Grazie di tutto. Saluti.

    • Ho individuato il problema! Nel codice di esempio da utilizzare per far comparire il banner, nel file tpl_main_page, non ho inserito il controllo sull’enabled e quindi eseguiva sempre gli altri controlli, il banner risultava visibile anche se il modulo era disattivato ma il resto non funzionava (pulsante incluso) perchè appunto disattivato.
      La soluzione consiste nel correggere il codice da inserire nel file tpl_main_page.php

      // BEGIN ZW_COOKIE_LAW 1 of 1
      if((ZW_COOKIE_LAW_ENABLED == 'true') && ((!isset($_COOKIE[ZW_COOKIE_LAW_COOKIE_NAME]) || ($zw_cookie_content->{ZW_COOKIE_LAW_COOKIE_NAME}!='OK')))) {
        require($template->get_template_dir('zw_cookie_law.php',DIR_WS_TEMPLATE, $current_page_base,'common'). '/zw_cookie_law.php');
      }
      // END ZW_COOKIE_LAW 1 of 1
      

      Più tardi correggerò anche il file readme. In ogni caso, si tratta di un bug presente a modulo disattivato. A modulo attivo tutto funziona correttamente. Lisa, se a modulo attivo non vedi più il banner, è per via del fatto che ti si è settato il cookie di consenso e quindi il banner sparisce. Se elimini i cookie, vedrai ricomparire il banner, per poi sparire nuovamente (dopo due pagine viste se il plugin è settato come di default in modalità second_page).

  9. Buongiorno,
    ho installato il plugin seguendo le istruzioni (uso zen cart 1.5.1) ma anch’io come altri utenti ho riscontrato il problema per cui se tengo settato il parametro di attivazione su “false” vedo la barra, mentre su “true” non mi compare nulla.
    Di per se sarebbe anche una situazione aggirabile, unitamente a questo però avviene che quando clicco sul pulsante “ACCETTO” la barra colorata non scompare.
    Da cosa può dipendere?
    L’url del mio sito è http://grossich.stokker.it/
    Grazie se mi può essere d’aiuto.

  10. C S

    Non capisco dove ho commesso l’errore, nell’home page mi visualizza:

    // BEGIN ZW_COOKIE_LAW 1 of 1 if((ZW_COOKIE_LAW_ENABLED == ‘true’) && ((!isset($_COOKIE[ZW_COOKIE_LAW_COOKIE_NAME]) || ($zw_cookie_content->{ZW_COOKIE_LAW_COOKIE_NAME}!=’OK’)))) { require($template->get_template_dir(‘zw_cookie_law.php’,DIR_WS_TEMPLATE, $current_page_base,’common’). ‘/zw_cookie_law.php’); } // END ZW_COOKIE_LAW 1 of 1

    • Il codice in questione è php, quindi va messo all’interno dei tag php. Se questa risposta non ti chiarisce l’errore commesso e la soluzione, allora è meglio se ti rivolgi a qualcuno che conosca la differenza tra php e html, altrimenti rischi di combinare guai.

  11. Salve, uso zencart 1.3.9h ho copiato i file nell’ftp e poi ho proceduto ad installare il file sql (quello per la versione 1.3.9), senza fare la modifica nel file tpl_main_page.php sono andato a vedere se il sito lato client era visibile e mi è preso il panico, non si apriva nulla di nulla pagina bianca senza errori, allora ho installato il file uninstall.sql ed è tornato visibile.
    Per evitare ulteriori problemi e sopratutto danni da parte mia chiedo se devo fare anche la modifica sul file tpl_main_page.php prima di vedere qualcosa a video?
    Grazie

    • Ciao, come descritto nel file readme, la procedura di installazione prevede come primo passo l’esecuzione delle query sql, poi il caricamento dei files. A questo punto non dovrebbe verificarsi nessun errore, anche senza aver modificato il file tpl_main_page.php, quindi presumo ci sia un problema specifico con la tua installazione, che però non ho modo di dirti quale possa essere. Controlla nella cartella cache se c’è qualche file myDebug-xxxxxx.log e verifica cosa contiene quello creato quando hai ottenuto pagina bianca. Se non lo trovi, ripeti l’installazione e se ottieni pagina bianca, vai a controllare in questa cartella e verifica l’ultimo file creato (ovviamente nel frattempo non devi fare altro e si spera non arrivino altri visitatori che facciano creare altri files (per altri motivi)). Qui trovi ulteriori informazioni sul tool di debug: http://www.zen-cart.com/content.php?124-blank-page

      • Ciao Paolo, ho fatto ciò che mi hai detto ed ottengo 3 file del tipo che mi hai detto ma credo che interessi solo quello che ci sta nel terzo di tali 3 file che è:

        [19-Jun-2015 17:07:12] PHP Fatal error: Call to undefined function: json_encode() in /web/htdocs/www.magazzinomusicale.com/home/includes/functions/extra_functions/zw_cookie_law.php on line 85

        Mi sai dare indicazioni a tal proposito, grazie.

  12. Carissimo Paolo,

    Ho riscontrato 2 volte lo stesso errore con 2 siti diversi,
    mi capita, installando la pach install.sql del plugin zw cookie law di ricevere un errore che dice

    “ERROR: impossibile inserire configuration_key “” in quanto già esistente

    È successo su http://www.gustodisicilia.com zc 1.5.1 e su http://www.dilegami.it zc 1.5.4 entrambi con template stilissimo modificato solo nel css e in alcuni file di lingua.

    Alla fine, caricando tutti i file specifici, li pannello configurazione >configura cookie law è vuoto mentre su strumenti > gestione cookie law mi fa caricare tutte le sezioni dell’informativa. Poi so frontend appare il banner (su fondo trasparente) e il pulsante accetta non fa nulla.

    Su gustodisicilia.com ho installato:
    • Simple Google Analytics
    • Minorderamount
    • login_box_1.5_it
    • ckeditor-for-zencart

    sull’altro soltanto
    • ckeditor-for-zencart
    potrebbe essere un conflitto con quest’ultimo modulo?

    Rimango in attesa.
    Buona domenica
    Luigi Mario Torti

    • L’errore in questione dipende dalla presenza nel db, nella tabella di configurazione, di uno o più record in cui il campo configuration_key è vuoto. Ciò non dovrebbe accadere e quindi bisogna cercare di capire da cosa dipenda (non dal plugin dei cookie, era già presente in precedenza (è possibile che ci sia data e ora di creazione del record e quindi si può provare a risalire)).

      Esistono due soluzioni:
      1) Eliminare tutti i record che hanno quel campo vuoto, ma ovviamente bisogna assicurarsi che non ci siano effetti negativi
      2) Eseguire le query di installazione direttamente tramite phpmyadmin (o qualunque altra interfaccia di gestione del db), ovviamente provvedendo ad aggiungere a tutti i nomi delle tabelle il prefisso nel caso la propria installazione di Zen Cart ne usi uno. Se si procede manualmente, via phpmyadmin o simile, è comunque necessario eseguire le query tutte contemporaneamente perchè sono scritte in modo tale che alcuni valori inseriti dipendono dalle query eseguite in precedenza e quindi se si eseguono separatamente i valori in questione non saranno disponibili per le query successive.

      Ricordo che eseguendo le query contenute in install.sql vengono eliminate e re-inserite le tabelle e i record necessari, quindi eventuali dati inseriti in admin (solo quelli in relazione al plugin ovviamente) vengono eliminati.

      • Risolto!!!

        Buongiorno Paolo,

        Sono andato nella tabella db configuration > configuration_key
        al suo interno tutta la configurazione del sito, a questo punto sono andato all’ultimo record (ce ne sono quasi 700) ed era in effetti “VUOTO”, l’ho eliminato e poi install.sql di cookie_law si e installata perfettamente.
        lavoro di 3 minuti.
        Grazie e complimenti per il pacchetto… davvero potente e accurato.
        Luigi Mario Torti

  13. Salve
    a me funziona tutto alla perfezione. Ora mi chiedo quale sia il modo di inserire il link “Informativa sui cookies” nel box laterale link importanti?
    grazie a chiunque saprà essermi d’aiuto 😉
    il mio sito è questo lerbavogliogiocattoli.it

    • Ciao, i link nel box informazioni sono gestibili nel file /includes/modules/sideboxes/information.php. Se il tuo template si chiama MIOTEMPLATE, controlla se per caso esiste già il file /includes/modules/sideboxes/MIOTEMPLATE/information.php. Se c’è, allora devi intervenire su questo, se invece non c’è, allora copia il primo e mettilo nel secondo percorso e poi modifica quest’ultimo.

      Per inserire il link, basta aggiungere il seguente codice dove ritieni più opportuno:

      $information[] = '<a href="index.php?main_page=zw_cookie_law" rel="nofollow">Cookie Policy</a>';
      

      Non ho usato una define al posto di Cookie Policy perchè potrebbe anche andare bene scritta così in più lingue. Se si preferisce diversamente basta usare una define e tradurla come meglio si ritiene.

  14. CIao a me non funziona. Nel back end quando inserisco o modifico il testo non lo mantiene (Quello in inglese si)
    Sul sito compare solo il tasto “Accetto” Senza nessun testo.

    Cosa ho sbagliato?
    Grazie

    • Ciao, ma hai installato normalmente e ti sei ritrovato in questa situazione? Perchè questo problema è dovuto al fatto che nella tabella dove sono contenuti i valori che non ti salva, il record relativo all’italiano non è presente. Poichè il sistema lavora su update e non su insert, non salva ciò che immetti perchè l’update non trova il record da aggiornare.
      Come mai non ci sia questo record, non so dirtelo, forse non hai fatto una normale installazione? Perchè in una normale installazione, il plugin rileva le lingue presenti e crea un record di default per ciascuna di esse.
      In effetti questo è un bug che risolverò, perchè in caso si installi una nuova lingua dopo aver installato questo plugin, ci si troverebbe nella situazione che descrivi.
      Al momento, per risolvere puoi accedere alla tabella zw_cookie_law_texts e copiare il record della lingua inglese, inserendo come id_lingua l’id della lingua italiana.

  15. Ma questo plug in non funziona con la versione 1.3.7 di ZC?

    • Non ti so dire, non è stato testato, anche se dubito. La versione 1.3.7 è comunque troppo vecchia, dovresti valutare il passaggio all’ultima disponibile.

      • Ciao,

        ho provato ad installare il modulo sula versione 1.3.7 di Zen Cart ma mi da’ lo stesso problema di Salvo Branca cioe’ blank page della home page del sito.
        Ho visto il file di debug creato nella directory cache e’ mi da lo stesso errore cioe’:
        PHP Fatal error: Call to undefined function json_encode() in c:\programmi\apache group\Apache\htdocs\piu\includes\functions\extra_functions\zw_cookie_law.php on line 85

        Qualche suggerimento?

        Grazie

        • Aggiornamento:
          il problema dell’errore json_decode() dipende da una versione vecchia di php, dalla versione 5.2.0 in poi e’ incluso nel PHP e non da piu’ quell’errore e quindi la home page viene visualizzata.
          Cliccando pero’ sul tasto ok relativo al cookie ottengo un warning sulla funzione: json_decode() expects parameter 1 to be string, object given in ./home/includes/init_includes/init_zw_cookie_law.php on line 19

          Non capisco perche’ visto che il JSON dovrebbe essere installato.
          Suggerimenti?

          Grazie.

  16. Buonasera,
    ho installato il plugin seguendo le istruzioni (uso zen cart 1.5.1), mi capita, installando la pach install.sql ricevo un errore che dice
    “ERROR: impossibile inserire configuration_key “” in quanto già esistente.
    Andando nella tabella db configuration > configuration_key, non vedo nessun campo vuoto.
    Ho installato come componenti aggiuntivi “SITEMAP XML” e “CKEDITOR”
    Come posso risolvere?
    L’url del mio sito è:
    http://www.internetbazar.it

    Grazie in anticipo.
    Luca

    • Ciao Luca, guarda qualche commento qui sopra, quello di Luigi Mario e la mia risposta.

      • Grazie Paolo,
        cercavo nel posto sbagliato, comunque anche a me il problema era una riga con campo vuoto in configuration key.
        Grazie davvero per il Vostro lavoro e il supporto che date anche a persone non troppo esperte come me.

  17. Salve ho appena scaricato il suo plugin lo provato su un web che sto creando http://www.aziendaagricolacampanito.com
    funziona tutto tranne che il banner non scompare dopo che stato premuto il pulsante. Ho letto tutti commenti
    e ho inserito // BEGIN ZW_COOKIE_LAW 1 of 1
    if((ZW_COOKIE_LAW_ENABLED == ‘true’) && ((!isset($_COOKIE[ZW_COOKIE_LAW_COOKIE_NAME]) || ($zw_cookie_content->{ZW_COOKIE_LAW_COOKIE_NAME}!=’OK’)))) {
    require($template->get_template_dir(‘zw_cookie_law.php’,DIR_WS_TEMPLATE, $current_page_base,’common’). ‘/zw_cookie_law.php’);
    }
    // END ZW_COOKIE_LAW 1 of 1

    ma continua a non funzionare potrebbe darmi un aiuto

  18. Ciao a tutti, grazie per il lavoro fatto.
    Ho installato il componente zw-cookie-law su zen-cart v. 1.5.4
    Vi chiedo una cosa forse un pò banale:
    Cliccando sul tatto accetta dell’informativa breve sul footer del sito vengo reindirizzato su
    http://www.miosito/sito_zencart/sito_zencart/web3
    dovrebbe essere
    http://www.miosito/sito_zencart/web3
    Dove devo intervenire?

    • Ciao, quel pulsante è il submit di un form che invia ad un url che effettua le operazioni necessarie sui cookie e poi effettua il redirect.

      Il file in questione è (a partire dalla root di zen): zw_assets/zw_cookie_law/code/zw_cookie_consent_ajax.php

      Così su due piedi non saprei dirti quale sia il problema perchè non mi è mai stato segnalato da nessuno, la cosa migliore è fare del debug sul file in questione cercando di capire dove si verifichi l’errore. Sono pochissime le righe coinvolte:

      if (sizeof($_POST['zw_come_from']) > 0) {
      	$origin_href = (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . base64_decode($_POST['zw_come_from']);
      } else {
      	if(sizeof($_GET['cf']) > 0) {
      		$origin_href = (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . base64_decode($_GET['cf']);
      	}
      	else {
      		$origin_href = zen_href_link(FILENAME_DEFAULT);
      	}
      }
      zen_redirect($origin_href);
      • grazie per la risposta, il file in questione è diverso da quello postato da te, manca una parte
        0) {
        $origin_href = (($request_type == ‘SSL’) ? HTTPS_SERVER : HTTP_SERVER) . base64_decode($_POST[‘zw_come_from’]);
        } else {
        $origin_href = zen_href_link(FILENAME_DEFAULT);
        }
        zen_redirect($origin_href);

        ?>

        • Hai ragione scusa, ho inserito il codice di una versione successiva, mai arrivata ad una versione stabile per assenza di reale interesse, che prevedeva la gestione del consenso tramite scroll e quella parte in più era proprio relativo a quello.

          Il file è comunque quello e la parte ‘incriminata’ è questa:

          if (sizeof($_POST['zw_come_from']) > 0) {
            $origin_href = (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . base64_decode($_POST['zw_come_from']);
          } else {
            $origin_href = zen_href_link(FILENAME_DEFAULT);
          }
          zen_redirect($origin_href);
          
        • ho risolto il problema in questo modo
          if (sizeof($_POST['zw_come_from']) > 0) {
          // $origin_href = (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . base64_decode($_POST['zw_come_from']);
          $origin_href = zen_href_link(FILENAME_DEFAULT);
          } else {
          $origin_href = zen_href_link(FILENAME_DEFAULT);
          }
          zen_redirect($origin_href);

          Non so se è un metodo buono ma funziona nel mio caso.
          Grazie ancora per l’aiuto.
          P.S.: per inserire il codice in questi messaggi ho usato questo link che formatta il codice per essere inserito in un messaggio blog: http://www.blogcrowds.com/resources/parse_html.php

  19. Scusami, volevo inserire il codice del file ma viene troncato. 🙁

    • Sul server è attivo mod_security con regole iper restrittive e in effetti blocca molte cose.
      Nel caso ti servisse ancora, prova ad usare questo tag in cui wrappare il codice, che tra l’altro lo formatta come nei miei messaggi:

      parentesiquadraaperta php light=””true”” toolbar=””true”” parentesiquadrachiusa

      parentesiquadraaperta /php parentesiquadrachiusa

Lascia un commento

 

© Copyright 2016 ZenWired – Opzione.com V. Regina Margherita 33, 22070 INTIMIANO (CO) – P.Iva 02647740139