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

¿Fue útil?

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');

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top