Magento2 Compruebe en la plantilla Si la página es la página de inicio
-
29-09-2020 - |
Pregunta
¿Cómo verificaría directamente en una plantilla de iPPHTML si la página solicitada es la página de inicio?
Me gustaría agregar condicionalmente una clase a un contenedor dado
Solución
Si está comprobando qué página es la página de inicio de su plantilla, se está acercando a la plantilla y el diseño de Magento incorrectamente.
Mi enfoque en general es crear un Block de tipo núcleo / plantilla y agregar que a través de diseño a la manija de diseño correcta .
Se puede encontrar más información en esta respuesta:
https://magento.stackexchange.com/a/30562/336
Una explicación más profunda de este concepto mal entendido se puede encontrar en mi blog aquí:
https://blog.philwinkle.com/the- Lo más malinterpretado-concept-in-magento /
Para una inmersión aún más profunda en el diseño de Magento, lea el libro de Alan Storm sobre el tema:
http://store.pulsestorm.net/products/no-frills -Magento-diseño
Otros consejos
Puede usar instancia de \ MAGENTO \ Framework \ App \ Solicite \ HTTP en su constructor de clase.Si está en un controlador, no necesita hacerlo.
ya puede acceder a él como este $request = $this->getRequest()
public function __construct(
...
\Magento\Framework\App\Request\Http $request
) {
...
$this->_request = $request;
}
Luego, puede verificar si es la página de inicio o la página de categorías o la página de productos como esta:
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
}
De lo contrario, utilice directamente en el archivo PHTML utilizando el Administrador de objetos
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$request = $objectManager->get('\Magento\Framework\App\Request\Http');