PrestaShop Forum

The best place in the world to ask questions about PrestaShop and get advice from our passionate community!

PrestaShop Forum

Jump to content

[MODULE] Cookies Test Enable - Fr

46 replies to this topic
#1
Nommam

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1687 posts
Les Cookies sont impératif au bon fonctionement de prestashop.

Ce module test si les cookies de votre client sont activés.
Si ils ne sont pas actif, une fenetre Thickbox s'affiche contenant un message de votre choix

Obtenir le module :
Il est presque free, un petit don ( j'accepte aussi les gros), je livre le module par mail, a l'adresse du compte paypal

Demo sur PS version 1.2 : http://yapasde.com/ps1250/
Demo sur PS version 1.3 : http://yapasde.com/ps1311/


Procédure d'installation :
1° Aller dans Outil => CMS
2° Rédiger un nouvel article dans le CMS, celui ci doit contenir un message d'information pour signaler que les cookies de son navigateur ne sont pas activé et l'enregistrer
3° Noter l'ID du CMS destiné aux cookies.
4° aller dans Modules => CookiesTest => Installer, puis Configurer
5° Taper l'ID du CMS et enregister

Current version V0.7 :
Updated


works on PS V1.2 & 1.3

-

Old Version :
V0.2 DIsplay in Alert Box ( 100 download )
V0.4 Display in thikbox window ( 83 download )
V0.5 Bug with Chrome resolved ( 157 dowload )
V0.6 Minor modificationion

English => http://www.prestasho...iewthread/33884

Attached Files



#2
jolvil

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 2706 posts
Semble ne pas fonctionner avec Chrome.
IE7, FF3, Opera10 OK

#3
Nommam

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1687 posts
Exact Chrome n'accept pas les alert JavaScript !!!!!

si on fait un popup, il va etre bloqué .....


Comment faire pour que ce soit visible et explicite !

Une belle phrase au dessus du header ????

#4
Julien Breux

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1621 posts
Petit DIV par dessus la page (environ 25px) fixe ;)
Julien BreuxResearch & development engineerSiteTwitter

#5
Nommam

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1687 posts
Pas facile d'integrer cela en haut du site, le hook Top est deja pas centrer, de plus il faut modifier la position du module pour le mettre en haut ..... donc Bof !

Par contre afficher le message / notice dans thickbox, me parait bien plus propre et web2, que l'alert java!


donc y a qu'a coder cela ;)

#6
Nommam

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1687 posts
Voila la Mise a jour.

Cette version affiche le message dans une fenêtre thickbox ( sous le meme principe que les cgv )

Il faut taper le message d'alerte dans le cms, et renseigner au module L'ID CMS du message afficher !


http://www.prestasho...iewthread/33884

#7
jolvil

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 2706 posts
Nouvelle version semble ne pas fonctionner une fois encore avec Chrome, les cookies sont bien bloqués, je dois d'ailleurs les re-authoriser pour pouvoir écrire ce message.

IE7, FF3, Opera10 OK, la thickbox s'affiche bien

#8
Nommam

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1687 posts
agrrrrrrrrrrrr j'ai pas testé, et la pour ce soir c'est mort

#9
Ehinarr

    Sir

  • Members
  • PipPipPipPip
  • 1134 posts
Nous pourrions faire ainsi ?

blockinfos.php:

function hookLeftColumn($params)
{
$enabled = "";
// Check if cookie has been set or not
if ($_GET['set'] !== 'yes')
{
// Set cookie
setcookie('test', 'test', time() + 60);

// Reload page
header ("Location: index.php?set=yes");
}
else
{
// Check if cookie exists
if (!isset($_COOKIE['test']))
$enabled = $this->l('Cookies are NOT enabled on your browser. Please enable it!');
}

global $smarty, $cookie;
$smarty->assign('enabled',$enabled);

$cms = CMS::listCms($cookie->id_lang, $this->id);
$id_cms = array();
foreach($cms AS $row)
$id_cms[] = intval($row['id_cms']);
$smarty->assign('cmslinks', CMS::getLinks($cookie->id_lang, $id_cms ? $id_cms : NULL));
return $this->display(__FILE__, 'blockinfos.tpl');
}


blockinfos.tpl:

<!-- Block informations module -->

{l s='Information' mod='blockinfos'}




<!-- /Block informations module -->


J'ai expérimenté et semble fonctionner. Je ne sais pas comme ce serait dans un module distinct.

Attached Files


My Blog
PS v1.4.7.0

#10
Nommam

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1687 posts
Bon en fait il y a un bug sur chrome, il retourne toujours true a navigator.cookieEnabled ..... donc, je vias devoir prendre l'option suivante, comme
Ehinarr d'initialiser un cookies et de voir si il marche ou pas !

ce qui ne plait qu'a moitié, car cela fait un cookies de plus que le site balance !

#11
Julien Breux

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1621 posts
La solution redirection d'entrée, je ne suis pas pour !
Les Crawls n'ont pas besoin d'entrer dans la logique du test de cookie.

Je pense à mon avis :

- Créer un bloc d'information comme @Ehinarr et lui mettre un "display: none;".

- Faire un test au chargement de la page "Ajax + jQuery".

- Retour en json, txt ou xml.

- Si cookie pas ok : "display: block;" sinon, ciao :)
Julien BreuxResearch & development engineerSiteTwitter

#12
Nommam

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1687 posts
Certe les robots, ils ont on rien a pété de mon thickbox, ca ne les empeche pas de parcourir le site.
Par contre ils referencent quoi ??? le thickbox, la page, les deux ????


la soluce d' Ehinarr est pas mal, mais pas assez visible, les clients ne lisent plus rien sur un site et surtout qu'on risque de leur parler javanais.


je vais reflechir a comment faire pour que ce soit mieux !!!!

#13
Julien Breux

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1621 posts
@Nommam mon ami, ne le prend pas comme ça s'il te plaît ! :)
Non, je ne parlais pas de "référencement", mais simplement faire une redirection pour tester un cookie et sur la homepage.

Le vrai mix, je ne le connais pas...

Julien offre un verre à Nommam
Julien BreuxResearch & development engineerSiteTwitter

#14
Nommam

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1687 posts
J'ai fait un tour sur les gros sites ecomerce.

3suisses => affichage en rouge en haut de page + liens vers notice
ldlc.fr Affiche un message a la mise a jour du panier, comme amazon.fr qui lui en plus propose un lien vers une aide pour les activer
discounteo.com => A la mise a jour du panier une notice en anglais !!!! ( lui il est sous mag..to )
rueducommerce le site ne marche pas du tout, affichage de la pub en boucle
surcouf comme cdiscount le site marche mais des que l'on met en panier, ca nous retourne un panier vide


il me semble que le mieux c'est de jouer le thikbox a la mise a jour du panier .

#15
Nommam

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1687 posts
je ne prends rien à mal ;)

#16
Julien Breux

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1621 posts
Pas facile, mais je pense que si ça doit bloquer le déroulement de l'achat et c'est le cas, ton idée est bonne ;)
Julien BreuxResearch & development engineerSiteTwitter

#17
Ehinarr

    Sir

  • Members
  • PipPipPipPip
  • 1134 posts
Lorsque javascript n'est pas activé, la valeur par défaut est un message d'avertissement en haut de la page.

Attached Files


My Blog
PS v1.4.7.0

#18
Julien Breux

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1621 posts
Bien vu !
Julien BreuxResearch & development engineerSiteTwitter

#19
Nommam

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 1687 posts
Oui, c'est dans le header.tpl du theme

#20
Ehinarr

    Sir

  • Members
  • PipPipPipPip
  • 1134 posts
Nous pourrions faire ainsi?

cookiestest.php:

public function hookHeader($params)
{
$cookie_message = $this->l('Cookies are NOT enabled on your browser. In order for us to process your requests, we require cookies to be enabled. Please configure your browser to allow cookies.');

global $smarty, $cookie;
$smarty->assign('enabled',$cookie_message);

return $this->display(__FILE__, $this->name.'.tpl');
}


cookiestest.tpl:


[removed]
var enabled = '
{$enabled}
';
{literal}
<!--
function ReadCookie(cookieName) {
var theCookie=""+[removed];
var ind=theCookie.indexOf(cookieName);
if (ind==-1 || cookieName=="") return "";
var ind1=theCookie.indexOf(';',ind);
if (ind1==-1) ind1=theCookie.length;
return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}

function SetCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
[removed] = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}
testValue=Math.floor(1000*Math.random());
SetCookie('AreCookiesEnabled',testValue);
if (testValue==ReadCookie('AreCookiesEnabled'))
[removed]('')
else [removed](enabled)
//-->
{/literal}
[removed]



C'est juste une suggestion pour votre bonne idée.

Attached Files


My Blog
PS v1.4.7.0