Бывают задачи в программировании шаблонов 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%