web-dev-qa-db-fra.com

Obtenir l'URL actuelle dans Magento et afficher quelque chose

J'essaie d'obtenir l'URL actuelle dans Magento et d'afficher quelque chose si je suis actuellement sur cette page. Jusqu'ici, c'est ce que j'ai fait et cela a fonctionné.

 <?php
 $currentUrl = $this->helper('core/url')->getCurrentUrl();
 ?>     

 <?php if($currentUrl === 'http://powerplantv2.jehzlau.net/blog') { ?>I am in the blog page<?php } ?>

Cependant, je ne veux pas coder en dur l'URL dans le code source, car si je transfère sur un autre serveur, je dois à nouveau modifier le fichier phtml.

J'ai essayé tout ce que j'ai trouvé en ligne, mais cela n'a pas fonctionné. J'espère qu'un expert de Magento ici pourra m'éclairer sur ce que je fais de travers. :(

28
jehzlau

Vous pouvez récupérer le chemin d'URL actuel en procédant comme suit:

$currentUrl = Mage::helper('core/url')->getCurrentUrl();
$url = Mage::getSingleton('core/url')->parseUrl($currentUrl);
$path = $url->getPath();

Ensuite, en utilisant une logique de base, vous pouvez cibler le /blog page.

$blogPaths = array('/blog', '/blog/', '/index.php/blog/');
if(in_array($path, $blogPaths))
{
    //Do something on /blog
}
73
Axel

Une autre solution serait de vérifier le contrôleur appelé. Vérifiez la sortie de ceux-ci et voyez si cela fonctionne pour toi. Cela fonctionne dans les fichiers de modèle.

 /**
 * get Controller name
 */
$this->getRequest()->getControllerName();

/**
 * get Action name, i.e. the function inside the controller
 */
$this->getRequest()->getActionName();

/**
 * get Router name
 */
$this->getRequest()->getRouteName();

/**
 * get module name
 */
$this->getRequest()->getModuleName();
5
espradley
$currentUrl = Mage::helper('core/url')->getCurrentUrl();
4
Pankaj Upadhyay