Documentation Hyva

Petites trucs et asuces

L'objet window.Hyva

Cet objet javascript vous offre pas mal de fonctionnalités utiles.

https://docs.hyva.io/hyva-themes/writing-code/the-window-hyva-object.html

Variables globales JS

Hyva vous met a disposition quelques variables globales JS qui peuvent vous être utiles.

Elles sont définies dans le fichier vendor/hyva-themes/magento2-theme-module/src/view/frontend/templates/page/js/variables.phtml.

var BASE_URL = '<?= /* @noEscape */ $block->getUrl('/') ?>';
var THEME_PATH = '<?= /* @noEscape */ $block->getViewFileUrl('/') ?>';
var COOKIE_CONFIG = {
    "expires": null,
    "path": "<?= $escaper->escapeJs($cookieViewModel->getPath()) ?>",
    "domain": "<?= $escaper->escapeJs($cookieViewModel->getDomain()) ?>",
    "secure": <?= $cookieViewModel->getCookieSecure() ? 'true' : 'false' ?>,
    "lifetime": "<?= $escaper->escapeJs($cookieViewModel->getLifetime()) ?>",
    "cookie_restriction_enabled": <?= /* @noEscape */ $cookieRestriction ? 'true' : 'false'?>
};
var CURRENT_STORE_CODE = '<?= /* @noEscape */ $storeViewModel->getStoreCode(); ?>';
var CURRENT_WEBSITE_ID = '<?= /* @noEscape */ $storeViewModel->getWebsiteId(); ?>';

Afficher un message à l'utilisateur

Si vous devez afficher un message à l'utilisateur, vous pouvez utiliser le code suivant.

Pensez, bien sur à tester si window.dispatchMessages est défini avant de l'utiliser.

window.dispatchMessages(
    [{
        type: 'success',
        text: 'Votre demande a bien été prise en compte',
    },
    {
        type: 'error',
        text: 'Impossible de traiter votre demande',
    },
    {
        type: 'warning',
        text: 'Attention, derniers produits en stock',
    },
    {
        type: 'info',
        text: 'Bienvenu sur notre site',
    }],
    5000
);

Vous pouvez afficher plusieurs messages à la fois, ils seront affichés les uns en dessous des autres. Le dernier parametre est la durée d'affichage en millisecondes, ici 5000ms = 5 secondes. S'il n'est pas renseigné le message restera affiché jusqu'à ce que l'utilisateur le ferme.

Pour fermer tous les messages, vous pouvez utiliser la fonction suivante :

window.dispatchEvent(new Event('clear-messages'))