Frage

Wie würde ich direkt in einer .phtml-Vorlage prüfen, ob es sich bei der angeforderten Seite um eine Homepage handelt?

Ich möchte einem bestimmten Container eine Klasse bedingt hinzufügen

War es hilfreich?

Lösung

Wenn Sie prüfen, welche Seite die Homepage von Ihrer Vorlage ist, nähern Sie sich dem Magento-Templating und das Layout falsch.

Mein Ansatz besteht im Allgemeinen darin, einen block von type core / template zu erstellen und das über layout zum richtigen layout-griff hinzuzufügen .

Weitere Informationen finden Sie unter dieser Antwort:

https://magento.steckexchange.com/a/30562/336

Eine tiefere Erklärung dieses missverstandenen Konzepts finden Sie hier in meinem Blog:

https://blog.philwinkle.com/the- am meisten missverstanden-Konzept-in-magento /

Für einen noch tieferen Tauchgang in Magento-Layout Lesen Sie das Buch von Alan Storm auf dem Thema:

http://store.pulsestorm.net/products/no-frills -Magento-Layout

Andere Tipps

Sie können eine Instanz von \Magento\Framework\App equest\Http in Ihrem Klassenkonstruktor verwenden.Wenn Sie sich in einem Controller befinden, müssen Sie dies nicht tun.

So können Sie bereits darauf zugreifen $request = $this->getRequest()

public function __construct(
    ...
    \Magento\Framework\App\Request\Http $request
) {
    ...
    $this->_request = $request;
}

Dann können Sie überprüfen, ob es sich um eine Homepage, eine Kategorieseite oder eine Produktseite wie folgt handelt:

if ($this->_request->getFullActionName() == 'cms_index_index') {
    //you are on the homepage
}
if ($this->_request->getFullActionName() == 'catalog_product_view') {
    //you are on the product page
}
if ($this->_request->getFullActionName() == 'catalog_category_view') {
    //you are on the category page
}

Ansonsten direkt über den Objektmanager in der HTML-Datei verwenden

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$request = $objectManager->get('\Magento\Framework\App\Request\Http');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top