web-dev-qa-db-fra.com

Inclure la position du module si la valeur du cookie est définie

Lorsque les utilisateurs visitent une page de mon site, j'ai écrit du code pour définir une valeur:

    if(window.location.href.indexOf("promotionpage") > -1) {
    Cookies.set('landingpage', 'kent', { expires: 30, path: '/promotionpage' });
}

Cela fonctionne très bien et le cookie est en cours d’installation. En fonction de la définition du cookie ci-dessus, je souhaite ensuite ajouter une position de module à la page index.php. J'ai écrit ce qui suit pour savoir si le cookie est défini et inclure ensuite une position de module, mais cela ne fonctionne pas:

        <?php
        if(isset($_COOKIE['kent'])){ ?>
            <jdoc:include type="modules" name="kentModal" style="none" />
    <?php } ?>
3
RustyJoomla

Vous définissez le cookie via JS avec le nom suivant: landingpage MAIS vous vous enregistrez PHP pour un nom de cookie: kent.

Juste réparer ça;)

Votre Cookie-JS-Plugin fonctionne comme:

Cookies.set('name', 'value');
2
user5421

La façon dont vous utilisez les cookies semble fausse, sauf si vous utilisez une bibliothèque ici.

Selon quirksmode, vous utiliseriez quelque chose comme:

if(window.location.href.indexOf("promotionpage") > -1) {
     document.cookie = 'landingpage=kent; expires=<?php echo date('D, j M Y H:i:s', time()+30);?> path=/promotionpage');
}

Cette question contient une bonne liste de bibliothèques JavaScript permettant de gérer les cookies plus facilement https://stackoverflow.com/q/4825683/123594

Quelques autres commentaires:

  • Vous vérifiez que "promotionpage" ne figure nulle part dans l'URL, mais le cookie n'est valide que si votre chemin COMMENCE AVEC "promotionpage".
  • Voulez-vous que le cookie ne soit vraiment valable que pendant 30 secondes?
1
jdog