Проверить настройки Skip to content

Проверка для главной страницы Magento

Бывают задачи в программировании шаблонов Magento, когда надо проверить активна ли первая страница (главная, домашняя страница или home page ).

 

Простая  проверка главной страницы используя PHP:

if ( $_SERVER['REQUEST_URI'] == "/" || $_SERVER['REQUEST_URI'] == "/index.php" ) {
    echo 'Homepage!';
    }

 

Проверка для главной страницы сайта с помощью функций Magento:

if($this->getIsHomePage()) {  
    echo 'Homepage!';  
} else {  
    echo 'You are NOT in Homepage!';  
}

 

Проверка для гавной страницы используя  Идентификатор (url-key) CMS страницы Magento:

$routeName = Mage::app()->getRequest()->getRouteName();
$identifier = Mage::getSingleton('cms/page')->getIdentifier();

if($routeName == 'cms' && $identifier == 'home') {
    echo 'Homepage!';
} else {
    echo 'You are NOT in Homepage!';
}

также можно использовать для проверки и других CMS страниц Magento

 

Еще пример проверки главной страницы Magento:

if(Mage::getUrl()('') == Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true))):
    echo "Homepage";
else:
    echo "Not in Homepage";
endif;

 

И самый интересный способ проверки главной страницы Magento:

Используя xml layout, layout handle.

При создании страницы в Magento обрабатывается много xml файлов, xml layout. Которые в процессе создания страницы можно переписывать, строить, собирать как конструктор.

И для проверки главной страницы можно использовать layout handle — главная страница Magento, описана в cms.xml, как cms_index_index .

$handles = Mage::getSingleton('core/layout')->getUpdate()->getHandles();
var_dump($handles);

вернет массив с layout handle

if($handles = Mage::getSingleton('core/layout')->getUpdate()->getHandles()) {
    if (in_array("cms_index_index", $handles)) {
        echo "Homepage!";
        }
    }

собственно сама проверка для главной страницы, этот способ работает 100%

Magento 1.*