Я хочу перевірити, що поточна сторінка - це домашня сторінка, сторінка категорії, сторінка продукту та сторінка cms у програмі magento 2
Я хочу перевірити, що поточна сторінка - це домашня сторінка, сторінка категорії, сторінка продукту та сторінка cms у програмі magento 2
Відповіді:
Ви можете спробувати це: Введіть екземпляр \Magento\Framework\App\Request\Httpконструктора класу. Якщо ви перебуваєте в контролері, цього не потрібно робити. Ви вже можете отримати доступ до нього так$request = $this->getRequest()
public function __construct(
...
\Magento\Framework\App\Request\Http $request
) {
...
$this->_request = $request;
}
Тоді ви можете перевірити, чи є домашня сторінка такою:
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
}
$this->_request->getFullActionName()рекламу, використовуйте його у файл phtml.
З внутрішнього файлу phtml це працювало для мене:
if ($this->getRequest()->getFullActionName() == 'cms_index_index') {
//you are on the homepage
}
if ($this->getRequest()->getFullActionName() == 'catalog_product_view') {
//you are on the product page
}
if ($this->getRequest()->getFullActionName() == 'catalog_category_view') {
//you are on the category page
}
Спробуйте це:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$request = $objectManager->get('Magento\Framework\App\Action\Context')->getRequest();
if ($request->getFullActionName() == 'cms_index_index') {
// is homepage
}
Через схему проектування впорскування залежності. Ви створюєте модуль для запиту ресурсу на вимогу. Менеджер об'єктів йде проти цієї парадигми. Однак, він працює чудово, але це як би використовувати Mage знову - повільно.
Спробуйте нижче код:
protected $_logo;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Theme\Block\Html\Header\Logo $logo,
array $data = []
)
{
$this->_logo = $logo;
parent::__construct($context, $data);
}
public function isHomePage()
{
return $this->_logo->isHomePage();
}
Використання диспетчера об'єктів
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$logo = $objectManager->get('Magento\Theme\Block\Html\Header\Logo');
var_dump($logo->isHomePage());