Vous voulez dire qu'après une connexion utilisateur aléatoire, nous devrions savoir que l'utilisateur se trouve sur quelle page.
Arjun
Il n'est pas nécessaire pour l'utilisateur de se connecter. Je veux juste vérifier que la page est une page de catégorie ou une page de produit. Comme dans Magento 1 Nous pouvons le vérifier comme ceci: $ category = Mage :: Registry ('current_category');
équipe Magento du
Réponses:
29
Vous pouvez essayer le code ci-dessous, cela pourrait vous aider.
Injectez une instance de \Magento\Framework\App\Request\Httpdans 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 ceci$request = $this->getRequest()
Ensuite, vous pouvez vérifier s'il s'agit d'une catégorie ou d'un produit comme celui-ci:
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}
Si vous le voulez directement dans un fichier phtml, utilisez comme ceci - $ this-> getRequest () -> getFullActionName () voici la condition if que j'ai utilisée: if ($ this-> getRequest () -> getFullActionName () == ' catalog_category_view ') {...}
KA9
Bonjour @Arjun, Comment obtiendriez-vous alors le nom de la catégorie dans laquelle vous vous trouvez?
John
5
Je suppose que nous pouvons utiliser directement
$this->getRequest()->getFullActionName()
dans le fichier .phtml pour obtenir l'action de la page en cours.
Vous pouvez utiliser l'instance de \ Magento \ Framework \ App \ Request \ 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 ceci $request = $this->getRequest()
Ensuite, vous pouvez vérifier s'il s'agit d'une page d'accueil ou d'une page de catégorie ou d'une page de produit comme celle-ci:
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, utilisez directement dans le fichier phtml en utilisant le gestionnaire d'objets
if ($ this-> getProductPage ()) {
// c'est une page de produit, faites des trucs
}
elseif ($ this-> getCategoryPage ()) {
// c'est une page de catégorie, faites des trucs
}
Réponses:
Vous pouvez essayer le code ci-dessous, cela pourrait vous aider.
Injectez une instance de
\Magento\Framework\App\Request\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 ceci
$request = $this->getRequest()
Ensuite, vous pouvez vérifier s'il s'agit d'une catégorie ou d'un produit comme celui-ci:
la source
Je suppose que nous pouvons utiliser directement
dans le fichier .phtml pour obtenir l'action de la page en cours.
la source
Vous pouvez utiliser l'instance de \ Magento \ Framework \ App \ Request \ 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 ceci
$request = $this->getRequest()
Ensuite, vous pouvez vérifier s'il s'agit d'une page d'accueil ou d'une page de catégorie ou d'une page de produit comme celle-ci:
Sinon, utilisez directement dans le fichier phtml en utilisant le gestionnaire d'objets
la source
Si vous utilisez un fichier modèle, par exemple .phtml, vous pouvez directement appeler sur la page en utilisant le code ci-dessous:
$ objectManager = \ Magento \ Framework \ App \ ObjectManager :: getInstance ();
$ request = $ objectManager-> get ('\ Magento \ Framework \ App \ Request \ Http');
if ($ request-> getFullActionName () == 'cms_index_index') {// vous êtes sur la page d'accueil}
if ($ request-> getFullActionName () == 'catalog_product_view') {// vous êtes sur la page du produit}
if ($ request-> getFullActionName () == 'catalog_category_view') {// vous êtes sur la page de catégorie}
et si vous obtenez une catégorie actuelle et ses données, vous pouvez le faire via
$ category = $ objectManager-> get ('Magento \ Framework \ Registry') -> Registry ('current_category');
$ category-> getData ('nom_catégorie_schbang');
où schbang_category_name est mon attribut de catégorie personnalisé
J'espère que cela pourrait aider quelqu'un.
la source
vous pouvez ajouter des conditions, telles que
la source
getCategoryPage
nulle part dans Magento 2, du moins pas dans 2.1.10