Magento: Как я могу сделать, если страница продукта тогда, иначе, если страница категории тогда, иначе, если страница cms тогда - PullRequest
1 голос
/ 03 марта 2012

Мне сложно сделать следующее утверждение.В 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 ]

2 голосов
/ 03 марта 2012

Я попробовал приведенный выше совет:

<?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 голос
/ 03 марта 2012
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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...