diegolamonica / EUCookieLaw

A Javascript and PHP solution to the European Cookie Law Issue
GNU Lesser General Public License v3.0
48 stars 13 forks source link

new EUCookieLaw()).switchLanguage non sembra funzionare #92

Closed flapane closed 8 years ago

flapane commented 8 years ago

Prima di tutto auguri di buone feste, e complimenti per essere riuscito ad offrire una soluzione di questo genere, in modo da non disorientare i visitatori stranieri, che altrimenti vedrebbero solo il testo in lingua italiana. L'unico problema è che, nel mio caso, lo switcher non sembra produrre l'effettivo link per cambiare lingua.

Da Firebug leggo: `

`

A schermo (flapane.com), però, appare solo il testo non cliccabile: Italiano English

Ho attivato anche il debug, ma non sembra fornirmi un appiglio.

Il codice: http://pastebin.com/Zf0ubn1Z

diegolamonica commented 8 years ago

Ciao @flapane auguri di buone feste anche a te! Mi confermi che stai usando la modalità stand-alone?

flapane commented 8 years ago

Yep, anche su WP, per uniformità col resto del sito, uso solo la modalità stand-alone.

diegolamonica commented 8 years ago

Ciao @flapane scusa per il ritardo nella risposta. Il problema è nella definizione della stringa del messaggio. Precisamente nella definizione del link: <a href=\"/privacy_cookie_policy.html\" target=\"_blank\">In questa pagina<\/a> essendo definita la stringa con singolo apice (') non richiede l'escape dei caratteri ad eccezione dell'apice quindi la stringa dovrebbe essere così costruita: <a href="/privacy_cookie_policy.html" target="_blank">In questa pagina</a>

In questo modo il problema non si presenta.

flapane commented 8 years ago

Ciao @diegolamonica , grazie per la risposta. Provai, prima di aprire il ticket, a fare così, ma sembra che ciò pregiudichi la chiusura dei tag (in questo caso, a ed i), oltre a continuare a non far apparire i link su "italiano" ed "inglese". Sicuramente mi sfugge qualcosa, ma non riesco a capire cosa.

SOURCE: ` new EUCookieLaw({

    showBanner: true,
    reload: true,
    duration: 364,
    agreeOnScroll: true,
    agreeOnClick: true,
    languages: {
        Italiano: {
        title: 'Informativa sull\'utilizzo dei cookie',
        message: 'Questo sito utilizza cookie tecnici e di profilazione (di terze parti), per migliorare la tua esperienza di navigazione, ed inviarti pubblicità in linea con le tue preferenze. <a href="/privacy_cookie_policy.html" target="_blank">In questa pagina</a> puoi leggere l\'informativa estesa o negare il consenso a tutti o ad alcuni cookie.<br>Cliccando su <i>OK</i>, scrollando la pagina, o cliccando su un elemento, acconsenti all’uso di tali cookie.',
        agreeLabel: 'OK, Accetto',
        disagreeLabel: ''
        },
        English: {
        title: 'EU Cookie Policy',
        message: 'This website needs 3rd party profiling cookies for providing a better user experience. By clicking on <i>OK</i> or by scrolling the page, you accept such cookies. Click <a href="/privacy_cookie_policy.html" target="_blank">here</a> to read more or opt-out.',
        agreeLabel: 'OK, I accept',
        disagreeLabel: ''
        }
    }
    });

OUTPUT (puoi verificarlo andando su flapane.com):

`

diegolamonica commented 8 years ago

Infatti il problema è solo nella definizione dell'array associativo in PHP non nella parte Javascript.

flapane commented 8 years ago

Avevo editato anche tale parte:

$languages = array(
        'Italiano' => array(
            'title' => 'Informativa sull\'utilizzo dei cookie',
            'message' => 'Questo sito utilizza cookie tecnici e di profilazione (di terze parti), per migliorare la tua esperienza di navigazione, ed inviarti pubblicità in linea con le tue preferenze. <a href="/privacy_cookie_policy.html" target="_blank">In questa pagina</a> puoi leggere l\'informativa estesa o negare il consenso a tutti o ad alcuni cookie.<br>Cliccando su <i>OK</i>, scrollando la pagina, o cliccando su un elemento, acconsenti all’uso di tali cookie.',
            'agreeLabel' => 'OK, Accetto',
            'disagreeLabel' => ''
        ),
        'English' => array(
            'title' => 'EU Cookie Policy',
            'message' => 'This website needs 3rd party profiling cookies for providing a better user experience. By clicking on <i>OK</i> or by scrolling the page, you accept such cookies. Click <a href="/privacy_cookie_policy.html" target="_blank">here</a> to read more or opt-out.',
            'agreeLabel' => 'OK, I accept',
            'disagreeLabel' => ''
        )
    );
    define('EUCOOKIELAW_BANNER_LANGUAGES', json_encode($languages) );
diegolamonica commented 8 years ago

Ho creato una pagina di esempio e l'ho sistemata come necessario. Eccoti l'intero codice sorgente:

<?php

define('EUCOOKIELAW_DISALLOWED_DOMAINS', '.google.com;.google.it;.google-analytics.com;fonts.googleapis.com;.doubleclick.net;stats.g.doubleclick.net;doubleclick.net;.googlesyndication.com/pagead/;.twitter.com;www.youtube-nocookie.com;www.youtube.com;.facebook.net;.facebook.com;.facebook.it;.disqus.com');
define('EUCOOKIELAW_LOOK_IN_SCRIPTS', true);
define('EUCOOKIELAW_DEBUG', false);
define('EUCOOKIELAW_BANNER_AGREE_LINK', '?__eucookielaw=agree');
$languages = array(
    'Italiano' => array(
        'title' => 'Informativa sull\'utilizzo dei cookie',
        'message' => 'Questo sito utilizza cookie tecnici e di profilazione (di terze parti), per migliorare la tua esperienza di navigazione, ed inviarti pubblicità in linea con le tue preferenze. <a href=\"/privacy_cookie_policy.html\" target=\"_blank\">In questa pagina</a> puoi leggere l\'informativa estesa o negare il consenso a tutti o ad alcuni cookie.<br>Cliccando su <i>\"OK\"</i>, scrollando la pagina, o cliccando su un elemento, acconsenti all’uso di tali cookie.',
        'agreeLabel' => 'OK, Accetto',
        'disagreeLabel' => ''
    ),
    'English' => array(
        'title' => 'EU Cookie Policy',
        'message' => 'This website needs 3rd party profiling cookies for providing a better user experience. By clicking on <i>\"OK\"</i> or by scrolling the page, you accept such cookies. Click <a href=\"/privacy_cookie_policy.html\" target=\"_blank\">here</a> to read more or opt-out.',
        'agreeLabel' => 'OK, I accept',
        'disagreeLabel' => ''
    )
);
define('EUCOOKIELAW_BANNER_LANGUAGES', json_encode($languages) );
require_once ('path/to/eucookielaw-header.php'); // *** Indicare il percorso corretto ***
?>
<html>
<head>
<script type="text/javascript" src="path/to/EUCookieLaw.js"></script> <!-- *** Indicare il percorso corretto *** -->
<script type="text/javascript">
    new EUCookieLaw({
        showBanner: true,
        reload: true,
        duration: 364,
        agreeOnScroll: true,
        agreeOnClick: true,
        languages: {
            Italiano: {
                title: 'Informativa sull\'utilizzo dei cookie',
                message: 'Questo sito utilizza cookie tecnici e di profilazione (di terze parti), per migliorare la tua ' +
                            'esperienza di navigazione, ed inviarti pubblicità in linea con le tue preferenze.' +
                            '<a href=\"/privacy_cookie_policy.html\" target=\"_blank\">In questa pagina <\/a> ' +
                            'puoi leggere l\'informativa estesa o negare il consenso a tutti o ad alcuni cookie.' +
                            '<br>Cliccando su <i>\"OK\"<\/i>, scrollando la pagina, o cliccando su un elemento, ' +
                            'acconsenti all’uso di tali cookie.',
                agreeLabel: 'OK, Accetto',
                disagreeLabel: ''
            },
            English: {
                title: 'EU Cookie Policy',
                message:    'This website needs 3rd party profiling cookies for providing a better user experience. By ' +
                            'clicking on <i>\"OK\"<\/i> or by scrolling the page, you accept such cookies. Click ' +
                            '<a href=\"/privacy_cookie_policy.html\" target=\"_blank\">here<\/a> to read more or opt-out.',
                agreeLabel: 'OK, I accept',
                disagreeLabel: ''
            }
        }
    });
</script>
</head>
<body>

</body>
</html>