Utiliser le BaseUrl de magento dans un fichier javascript externe

expert_magento

Notre blog se tourne vers le web intégration, cependant on peut pas se dissocier de l’intégration sur Magento vu sa popularité et du coup on va traiter un point javascript sur le sujet.

Parmi les bonnes practice en dev JS, c’est d’externaliser les codes plutôt que d’écrire le code directement dans les fichiers Templates phtml à l’intérieur des balises script

Mais on est souvent confronté au problème suivant :
Comment votre code Javascript peut-il connaître l’URL de base de votre projet Magento ? Cela devient plus que nécessaire lorsque vous voulez réaliser un appel Ajax : comment calculer l’URL Ajax sans connaître l’URL de base?

Certes, l’URL est bien présente sur la barre d’adresse du navigateur, mais malheureusement, on ne peut pas compter la dessus vu que la plupart du temps, on travaille dans un environnement de développement.

Dans ce cas, comment récupérer cette URL de base?
J’étais persuadé que Magento mettait à disposition une constante/variable Javascript qu’il suffirait d’appeler dans notre javascript pour obtenir cette URL de Base, mais c’est pas le cas malheureusement. Je suis preneur si quelqu’un le sait…

1ère solution : récupérer la constante Javascript via le template

Créer un template script-parameters.phtml avec le code suivant:

Puis, dans votre fichier de layout, ajoutez le code suivant:

Voilà ! Le contenu du fichier template script-parameters.phtml sera chargé sur toutes les pages de votre site.

Vous pouvez donc l’utiliser pour y définir toutes les constantes nécessaires à vos fichiers Javascript. Celles-ci seront initialisées entre les balises HEAD de chaque page.

Pour être plus précis l’utilisation de Mage::getBaseUrl() permet d’obtenir l’URL de base d’un site sur Magento.

2ème solution: prendre le lien du logo sur le header

Si votre logo s’affiche nativement sur le header de votre site, un lien qui pointe vers le homepage est normalement associé à votre logo, donc il suffit de le récupérer vu qu’il correspond à l’URL de base…

L’astuce consiste donc à aller récupérer cette URL:

A vous de voir, on trouve que la deuxième solution est la plus simple…
N’hésitez pas à commenter si vous avez d’autres astuces.

Répondre