Magento:我怎么能做一个if产品页面呢,否则如果是类别页面那么,否则如果是cms页面那么

时间:2012-03-03 02:12:03

标签: magento

我在做以下陈述时遇到了挑战。在breadcrumbs.phtml中,我想执行以下操作:

h1
if cms page then getTitle
else if category page then getName
else if product page then getName
/h1

现在我想出了这两个陈述:

<?php echo Mage::registry('current_product')->getName()?>
<?php echo Mage::registry('current_category')->getName()?>

但我无法弄清楚如何让他们进入if语句或如何完全制作if语句。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

我尝试了上述建议:

<?php
if($this->getRequest()->getModuleName() == 'cms') {
echo Mage::getSingleton('cms/page')->getTitle();
} else if($this->getProductPage()) {
echo $this->getLayout()->getBlock('head')->getTitle();
} else if ($this->getCategoryPage()) {
echo Mage::registry('current_category')->getName()
}
?>

但它没有用。

你能看到什么错了吗?

答案 1 :(得分:1)

if($this->getRequest()->getModuleName() == 'cms') {
    // it will return 'cms' string
} else if($this->getProductPage()) {
  // this will check if you are in product page
} else if ($this->getCategoryPage()) {
  // this will check if you are in category page
}

getProductPage 已弃用 getCategoryPage 已弃用

而不是上面的代码,请尝试这个,让我知道结果:

if(Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms'):
    $Page = Mage::getSingleton('cms/page')->getTitle(); 
endif;   

if($Page == 'catalog'):
    $Page->getName();
endif;

if($product = Mage::registry('current_product')):
   $product->getName();
endif;

if($catalog = Mage::app()->getRequest()->getControllerName() == 'category'))):
   $catalog->getName();
endif;