Holen Sie sich die aktuelle URL in Magento und zeigen Sie etwas

Lesezeit: 2 Minuten

Ich versuche, die aktuelle URL in Magento abzurufen und etwas anzuzeigen, wenn ich mich gerade auf dieser Seite befinde. Bisher habe ich das so gemacht und es hat funktioniert.

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

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

Ich möchte die URL jedoch nicht im Quellcode fest codieren, da ich die Phtml-Datei erneut ändern muss, wenn ich auf einen anderen Server übertrage.

Ich habe alles versucht, was ich online gefunden habe, aber es hat nicht funktioniert. Ich hoffe, ein Magento-Experte hier kann mich darüber aufklären, was ich falsch mache. 🙁

  • Wie auch immer, ich konnte mein eigenes Problem mit substr lösen. Mir ist aufgefallen, dass die blogUrl am Ende ein / hat, also habe ich es mit substr entfernt, daher funktioniert dieser Code jetzt, um sofort etwas auf einer bestimmten Seite anzuzeigen. 😀 code helper(‘core/url’)->getCurrentUrl(); $blogUrl = $this->getUrl(‘blog’); $blogfixedurl = substr($blogUrl, 0, -1); ?> Sie befinden sich gerade auf einer Blogseite code Aber wenn jemand eine bessere Lösung hat, kann er gerne antworten. Ich denke, mein Code kann gekürzt werden. 😀

    – jehzlau

    7. August 2014 um 21:17 Uhr


Sie können den aktuellen URL-Pfad wie folgt abrufen:

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

Dann können Sie mit etwas grundlegender Logik auf die abzielen /blog Seite.

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

  • Oh niceee.. danke dafür. Ich habe nie daran gedacht, ein Array zu verwenden. Ich habe es gerade gekürzt, werde aber diesen Tipp verwenden, damit es auch dann noch funktioniert, wenn URL-Umschreibungen deaktiviert sind. Danke Axel. 😀

    – jehzlau

    7. August 2014 um 23:41 Uhr


Eine alternative Lösung wäre, den aufgerufenen Controller zu überprüfen. Überprüfen Sie die Ausgabe dieser und sehen Sie, ob es für Sie funktioniert. Dies funktioniert innerhalb der Vorlagendateien.

 /**
 * 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();

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

  • Dieses Code-Snippet kann zwar die Frage lösen, inklusive Erklärung hilft wirklich, die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für zukünftige Leser beantworten und diese Personen die Gründe für Ihren Codevorschlag möglicherweise nicht kennen. Bitte versuchen Sie auch, Ihren Code nicht mit erläuternden Kommentaren zu überladen, da dies die Lesbarkeit sowohl des Codes als auch der Erläuterungen verringert!

    – Blau

    8. August 2016 um 7:10 Uhr

1137180cookie-checkHolen Sie sich die aktuelle URL in Magento und zeigen Sie etwas

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy