Бывают задачи в программировании шаблонов 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";
}
И самый интересный способ проверки главной страницы 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%