【问题标题】:How to check if page is home page in Magento 1.8.0.1 with cache enabled?如何检查页面是否是 Magento 1.8.0.1 中启用缓存的主页?
【发布时间】:2014-10-03 19:12:58
【问题描述】:

我在 Magento 1.8.1.0 的 phtml 文件中尝试了以下代码。

包含代码的文件是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";

}

意味着我的条件为真,即每个页面上的“主页”,即使它不是主页。 有什么准确的方法可以找到主页

如果我禁用 Magento 缓存,它可以正常工作

【问题讨论】:

  • 你能说出这段代码是在哪个模板中编写的吗? “工作不好”是什么意思?谢谢
  • 我在您的布局中看不到目录/导航/custom_leftnav.phtml。尝试用好的替换catalog/navigation/left_nav.phtml。
  • 一个干净的方法是创建一个新模块并使用 setTemplate 方法更新布局。
  • @apouey 我更新了我的问题
  • 你刷新缓存了吗?

标签: magento magento-1.8


【解决方案1】:

这应该适合你:

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

if ($routeName == 'cms' && $identifier == 'home') {
    echo 'Homepage';
}

【讨论】:

  • 问题是,Magento 缓存了块,所以这个值在每个页面上都是一样的。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多