如何在启用缓存的Magento 1.8.0.1中检查页面是否为主页?

时间:2014-10-03 19:12:58

标签: magento magento-1.8

我尝试在phtml文件中使用Magento 1.8.1.0中的代码。

包含代码的文件是app/design/frontend/default/mytheme/template/catalog/navigation/left_nav.phtml

此phtml文件的XML文件为catalog.xml

<default>


    <reference name="top.container">
        <block type="cms/block" name="cms.top.callout" before="-">
            <action method="setBlockId"><block_id>top_callout</block_id></action>
        </block>
    </reference>
    <reference name="left">
        <block type="catalog/navigation" name="catalog.leftnav" template="catalog/navigation/left_nav.phtml" />
    </reference>
    ----
    -----
</default>

  $route = Mage::app()->getFrontController()->getRequest()->getRouteName();
    $action = Mage::app()->getFrontController()->getRequest()->getActionName();

    if($route == 'cms' && $action == 'index'):
        echo "home page";
    endif;

$is_homepage = Mage::getBlockSingleton('page/html_header')->getIsHomePage();

if($is_homepage)
{

 echo "home page";

}

意味着我的条件是正确的,即#34;主页&#34;在每个页面上,即使它不是主页。 有没有找到主页的精确方法

如果我禁用Magento缓存,则可以正常使用

3 个答案:

答案 0 :(得分:1)

这应该适合你:

{{1}}

答案 1 :(得分:0)

嗨,您需要更改,控制器名称是您的逻辑

/**
 * get Controller name
 */
 $controller=Mage::app()->getRequest()->getControllerName();
     if($route == 'cms' && $action == 'index'&& $controller='index'):
            echo "home page";
        endif;

答案 2 :(得分:0)

您必须根据自己的身份更改主页标识符。

<?php
                if(Mage::getSingleton('cms/page')->getIdentifier()=="home")
{
// Your code comes here !
}
?>