[plugin] CookieMessage

DjbWebmasterDjbWebmaster Member
septembre 2016 modifié dans Plugins
Bonjour,


Mise en ligne d'un plugin pour informer les visiteurs sur l'utilisation des cookies

visible sur mon site: test

Les paramètres configurables sont les suivants:

bouton accepter, bouton refuser
durée pour conserver le cookie
texte d'information
texte pour le lien vers une page 'plus d'info'
....


pulgin dispo à cette adresse: plugin CookieMessage

Réponses

  • Je n'ai pas compris ce que faisait le bouton "Refuser" sur ton site.
  • DjbWebmasterDjbWebmaster Member
    septembre 2015 modifié
    Il n'active pas le code de Google Analytics
    [== JavaScript ==]
     if (jQuery.cookie('cc_cookie_decline') == "cc_cookie_decline") {
                     // refuser les cookie
                } else {
                    // votre code Google Analytics
                
                }
    

    fichier cookiemessage.php à partir de la ligne 58


    Edit: mon site nextum est un site de test/demo pour les plugins et templates
  • Ok, merci.
  • DjbWebmasterDjbWebmaster Member
    septembre 2015 modifié
    Normalement, on ne doit pas autoriser les cookies avant que le visiteur n'accepte.

    Petite modification du plugin, je viens de modifier le code
    [== JavaScript ==]
     if (jQuery.cookie('cc_cookie_accept') == "cc_cookie_accept") {
                   // placer votre code google analytics
                } 
    
    

    Il suffit de placer son code google analytics
  • hello

    cool, merci. Il est plus en conformité avec ce que l'on trouve ici et là ...

    sinon dans ton fichier config, ligne 73, "<?php" au lieu de "<?"
    pour les paramètres, le faire en type "string" plutôt que "cdata" et "numeric" pour le champ "time"
    (d'ailleurs, les cookies peuvent s'afficher 13 mois, donc 390 jours environs ... ;) )

    pour le lien vers les mentions, prévoir plutôt un menu déroulant des pages statics
    au lieu de
    [== PHP ==]
    	<p>
    		<label for="info_lien">Lien plus d'info:</label>
    		<input id="info_lien" name="info_lien"  maxlength="255" value="<?php echo $plxPlugin->getParam('info_lien'); ?>">
    	</p>
    

    remplacer par
    [== PHP ==]
    	<p>
    		<label for="id_info_lien">Lien plus d'info:</label>
    		<?php plxUtils::printSelect('info_lien', $aCibles, $plxPlugin->getParam('info_lien')); ?>
    	</p>
    
    en rajoutant avant l'affichage du formulaire :
    [== PHP ==]
    # création de la liste des pages cibles si liste vide
    $aCibles = array();
    if($plxAdmin->aStats) { // Si on a des pages statiques
    	$listStat = array();
    	foreach($plxAdmin->aStats as $k=>$v) { # Pour chaque page statique
    		if($v["readable"]=1){
    			$listStat[intval($k)] = $v["name"];
    		}
    	}
    	$aCibles = $listStat;
    }
    

    dans le fichier CookieMessage.php
    remplacer :
    [== PHP ==]
    cookiePolicyLink: '<?php echo $this->getParam("info_lien");?>', // if applicable, enter the link to your privacy policy here...
    
    par :
    [== PHP ==]
    cookiePolicyLink: '<?php $plxShow->urlRewrite('?static'.$this->getParam("info_lien").'/');?>', // if applicable, enter the link to your privacy policy here...
    
    en rajoutant juste après la méthode ThemeEndBody (ligne à valider, je ne sais plus quelle méthode employer pour appeler plxShow dans un plugin : clone, global, getInstance ... )
    [== PHP ==]
    <?php $plxShow = plxShow::getInstance(); ?>
    

    envelopper aussi l'affichage des champs textuels par la méthode plxUtils::strCheck()
    et pourquoi pas mettre le message dans un paragraphe, ça permet d'avoir tous les boutons alignés ...

    et dernier point, vérifier la présence de jQuery avant de l'insérer, mais je ne sais plus le code ..?
    si quelqu'un peut le redonner

    merci, @+
  • danielsandanielsan Member
    janvier 2016 modifié
    autre point,
    ça serait bien de pouvoir vérifier la présence du cookie( s'il on souhaite varier l'affichage des trucs comme facebook etc ...)
    quel hook doit-on utiliser et quelle méthode utiliser ?
    peut-on définir et tester une constante ?
    [== PHP ==]
    <?php if(!empty($_COOKIE["cc_cookie_accept"])){define("OKCOOKIE", "OK");}?>
    
    <?php
    if (defined('OKCOOKIE')) {
        // l'action si les cookies sont acceptés
    }
    ?>
    

    peut-on réfléchir à normaliser l'usage ..? pour l'intégration de plugins connexes ...
  • danielsandanielsan Member
    janvier 2016 modifié
    j'ai entrevu dans le plugin plxMySocialButtons
    [== PHP ==]
    protected $callable = false;
    [...]
    if(!$this->callable) return;
    
    ne serait-ce pas une piste ..? que signifie cette méthode ? :D

    si je prends l'exemple de ce plugin

    peut-on imaginer une condition
    pour la fonction ThemeEndBody
    [== PHP ==]
    if(!$this->callable AND !defined('OKCOOKIE')) return;
    

    et pour la fonction MySocialButtons
    [== PHP ==]
    if(defined('OKCOOKIE')) $this->callable = true;
    

    de cette manière on affiche les boutons de partage des réseaux sociaux que si l'internaute à accepter les cookies ...
  • danielsandanielsan Member
    janvier 2016 modifié
    c'est en test ici
    si vous acceptez les cookies, ça affiche les modules "suivez-nous sur les réseaux sociaux", boutons "j'aime / +1" et la possibilité d'ajouter des articles à votre liste d'envies (le petit coeur en haut à droite des blocs d'article)
    Si vous refuser, vous n'avez plus tout ça ...
  • Bonsoir danielsan,

    je prends en compte tes remarques, super ton site :D
  • Ça m'a l'air super tout ça ! J'adore la possibilité de masquer les boutons de réseaux sociaux si refus des cookies !
    Je regarde ça ce week-end et si je garde je ferai la traduction en occitan :)
  • vi c'est bien de filtrer les fonctions selon l'accord ou non du visiteur ... sauf que c'est à double tranchant !
    sur le site en test, la cible utilise beaucoup les réseaux sociaux, la comm' se fait aussi bcp sur ces réseaux, et si j'enlève ces fonctions je perds tout un pan de la stratégie ... du coup je penche plutôt pour "accepter si vous continuer la visite" ... et un paragraphe dans les mentions qui explique comment filtrer tel ou tel cookie (normalement on doit décrire les cookies utilisés, ce qu'ils font etc ...)

    @DjbWebmaster : merci :P {)
  • bg62bg62 Member
    salut;)
    je viens de teser et je rencontre une incompatibilité avec :
    http://forum.pluxml.org/viewtopic.php?id=4257
    ( version corrigée et fonctionnelle en ligne )
    Dès que j'installe le tien, le texte du slider est totalement HS ....
    @+
    ;)
  • DjbWebmasterDjbWebmaster Member
    août 2016 modifié
    Hello,

    Tu peux m'envoyer le lien de ton site, je pense cela doit être une petit conflit avec 2 versions jquery différentes
  • Salut Djb,

    Merci pour ton plugin, excellent idée, je vais le tester.

    Au passage, super ton site basé sur PluXML (nextum), l'expérience utilisateur est vraiment très agréable.
  • bg62bg62 Member
    août 2016 modifié
    DjbWebmaster a écrit:
    Hello,

    Tu peux m'envoyer le lien de ton site, je pense cela doit être une petit conflit avec 2 versions jquery différentes
    j'ai testé en local, sur une copie de deux de mes sites .... donc malheureusement pas de lien, mais au niveau des versions tu peux les voir sur refok.fr et longuetaine.fr :)
    @+
    en tous cas = chapeau bas pour tous les plugins que tu mets à disposition !!!
  • DjbWebmasterDjbWebmaster Member
    août 2016 modifié
    Bonsoir à tous,

    @bg62, je viens de regarder le plugin:

    Dans la page configuration du plugin en bas, tu peux désactiver jQuery 2.1.3 et, dans la page Gestion des plugins ton plugin en dernière position.

    @NaBiSs, merci

    Bye,
    Djb
  • re :)
    1 - je n'ai pas d'option 'en bas' dans la configuration du plugin pour désactiver quoi que ce soit ...
    2 - il est bien chargé en dernier
    3 - le problème reste inchangé
    ....
    @+
  • DjbWebmasterDjbWebmaster Member
    septembre 2016 modifié
    Hello,

    Penses à télécharger la derniere version sur mon site, dans la partie admin du plugin en bas 'Activer jQuery 2.1.3'

    jquery_active.png
  • OK = Yes !
    Cela fonctionne nickel sans même avoir besoin de modifier l'ordre des plugins.
    merci ;)
  • Oui sur tous mes plugin je laisse le choix d'activer jQuery ou pas afin d'éviter de le charger plusieurs fois
  • Salutatous,

    Je tourne sur la version 5.1.7 de PluXml.

    MON SOUCI :

    Dans l'admin du plugin, je sélectionne ma page statique "Mentions légales & crédits".
    Côté front office, au clic sur "Plus d'infos...", ça pointe vers www.monsite.com/static22

    Ce qui m'affiche une page "404 Not Found - The requested URL /static22 was not found on this server." !

    Il faudrait que ça pointe vers www.monsite.com/index.php?static22/mentions-legales-credit

    ++++++++++++++++++++++

    MA SOLUTION EN DUR

    J'ai donc modifié les deux fichiers du plugin config.php et CookieMessage.php comme suit :


    Fichier config.php

    Désactivation des lignes suivantes (ce qui génère la liste déroulante des "Pages à afficher pour plus d'info") :
    [== PHP ==]
    # création de la liste des pages cibles si liste vide
    	$aCibles = array();
    	if($plxAdmin->aStats) { // Si on a des pages statiques
    		$listStat = array();
    		foreach($plxAdmin->aStats as $k=>$v) { # Pour chaque page statique
    			if($v["readable"]=1){
    				$listStat[intval($k)] = $v["name"];
    			}
    		}
    		$aCibles = $listStat;
    	}
    

    Remplacement de la ligne suivante (affichage de la liste) :
    [== PHP ==]
    <?php plxUtils::printSelect('info_lien', $aCibles, $plxPlugin->getParam('info_lien')); ?>
    

    Par cette ligne (affichage d'un champ dans lequel on y saisi l'URL souhaitée) :
    [== PHP ==]
    <input id="info_lien" name="info_lien"  maxlength="255" value="<?= $plxPlugin->getParam('info_lien'); ?>">
    


    Fichier CookieMessage.php

    Remplacement de la ligne suivante (récupération et concaténation du lien) :
    [== PHP ==]
    cookiePolicyLink: '<?php // echo "static".$this->getParam("info_lien");?>', // if applicable, enter the link to your privacy policy here...
    

    Par cette ligne (suppression du "static") :
    [== PHP ==]
    cookiePolicyLink: '<?php echo $this->getParam("info_lien");?>', // if applicable, enter the link to your privacy policy here...
    

    ++++++++++++++++++++++

    Ensuite quand je suis dans l'admin du plugin, au niveau du champ "Page à afficher pour plus d'info:", je saisi ceci :
    /index.php?static22/mentions-legales-credit

    ++++++++++++++++++++++

    QUESTION

    Dans mon cas, n'y-a-til pas une méthode plus simple pour conserver la liste déroulante des Pages à afficher pour plus d'info, et de faire en sorte que quelque soit la page statique choisie, ça me génère une lien du type : www.monsite.com/index.php?static22/mentions-legales-credit
    Plutôt que : www.monsite.com/static22

    Merci d'avance de vos lumières :)
  • Bonsoir,

    Je vais regarder ta solution pour afficher les pages statiques, juste une petite question :

    Pourquoi tu n'utilise pas la réécriture d'URL, dans la page admin de ton site ?
  • nicomaxnicomax Member
    septembre 2016 modifié
    Bonjour DjbWebmaster,

    C'est vrai que je n'ai jamais activé la réécriture d'Url car à l'époque quand j'ai commencé à utiliser Pluxml, il me semble que ça pouvait rentrer en conflit avec certains plugins !

    Je viens de m'apercevoir également, que quand j'active CookieMessage, ça me zappe certains effets sur mon site basé sur le thème Mystique de digitalnature, visible ici : thème mystique (Je tourne sous 5.1.7 de PluXml).

    Ça me zappe :
    - le plugin scrollToTop
    - un script d'une petite galerie javascript (galleryc) dans une page statique
    - dans la sidebar, l'affichage animé (effet du thème Mystique) des dernières news, derniers commentaires, catégories news

    Donc pour le moment j'ai dû désactiver ton plugin et j'en suis bien désolé !

    Y-a-t'il une manip à faire pour que tout cela fonctionne de concert ?
  • Bonsoir,

    sur la page admin du plugin, il faut désactiver jQuery (menu déroulant en bas de page) pour éviter des conflits de version avec ton template.
  • Ok merci, tout se réaffiche normalement :)
  • iceice Member
    janvier 2018 modifié
    Bonjour à tous,

    J'ai installé le plugin sur une version 5.6. Il a fonctionné normalement.

    J'ai ensuite modifié le fichier htaccess pour forcer la connexion en https. Selon les informations de mon hébergeur (infomaniak), j'ai ajouté :
    [== Indéfini ==]
    RewriteEngine on
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule (.*) https://www.stephanebrunet.info/$1 [R=301,L]
    
    Depuis, plus de message cookie. Je précise quand même que je vide les cookies du navigateur (firefox et chrome) à chaque essai.

    Est-ce que le plugin fonctionne chez vous en 5.6 et https ?

    Si quelqu'un a une piste pour m'aiguiller, ce serait sympa.

    Vous en remerciant,
    Cordialement.
    Stéphane.
Connectez-vous ou Inscrivez-vous pour répondre.