Я пытаюсь получить текущий URL-адрес в Magento и показать что-то, если я нахожусь на этой странице. Пока это то, что я сделал, и это сработало.
<?php $currentUrl = $this->helper('core/url')->getCurrentUrl(); ?> <?php if($currentUrl === 'http://powerplantv2.jehzlau.net/blog') { ?>I am in the blog page<?php } ?>
Тем не менее, я не хочу жестко кодировать URL-адрес в исходном коде, потому что, если я перехожу на другой сервер, мне нужно снова изменить файл phtml.
Я попробовал все, что нашел в Интернете, но это не сработало. Надеюсь, что эксперт Magento может рассказать мне, что я делаю неправильно. 🙁
Вы можете получить текущий URL-адрес, выполнив следующие действия:
$currentUrl = Mage::helper('core/url')->getCurrentUrl(); $url = Mage::getSingleton('core/url')->parseUrl($currentUrl); $path = $url->getPath();
Затем, используя некоторую базовую логику, вы можете настроить таргетинг на страницу /blog
.
$blogPaths = array('/blog', '/blog/', '/index.php/blog/'); if(in_array($path, $blogPaths)) { //Do something on /blog }
Альтернативным решением будет проверка контроллера, который вызывается. Проверьте выходные данные и посмотрите, работает ли оно на ya. Это работает внутри файлов шаблонов.
/** * get Controller name */ $this->getRequest()->getControllerName(); /** * get Action name, ie the function inside the controller */ $this->getRequest()->getActionName(); /** * get Router name */ $this->getRequest()->getRouteName(); /** * get module name */ $this->getRequest()->getModuleName();
$currentUrl = Mage::helper('core/url')->getCurrentUrl();