Question

Comment puis-je vérifier directement dans un modèle .phtml si la page demandée est une page d'accueil ?

Je souhaite ajouter conditionnellement une classe à un conteneur donné

Était-ce utile?

La solution

Si vous vérifiez quelle page est la page d'accueil de votre modèle, vous approchez des modèles de magentas et de la mise en page de manière incorrecte.

Mon approche est généralement de créer un block de type de type noyau / modèle et ajoutez que via mise en page à la poignée de mise en page correcte .

Plus d'informations peuvent être trouvées à cette réponse:

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

Une explication plus profonde de ce concept mal compris peut être trouvé sur mon blog ici:

https://blog.philwinkle.com/the- le plus mal compris-concept-in-magento /

Pour une plongée encore plus profonde dans la mise en page de Magento, lisez le livre d'Alan Storm sur le sujet:

http://store.pulsestorm.net/products/no-frilles -magento-mise en page

Autres conseils

Vous pouvez utiliser une instance de \Magento\Framework\App equest\Http dans votre constructeur de classe.Si vous êtes dans un contrôleur, vous n'avez pas besoin de le faire.

Vous pouvez déjà y accéder comme ça $request = $this->getRequest()

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

Ensuite, vous pouvez vérifier si la page d'accueil, la page de catégorie ou la page de produit ressemble à ceci :

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
}

Sinon utiliser directement dans le fichier phtml en utilisant le gestionnaire d'objets

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$request = $objectManager->get('\Magento\Framework\App\Request\Http');
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top