Magento child html - 获得父母来电

时间:2011-08-04 22:28:29

标签: php magento enterprise mage

我在模板文件price.phtml中。我想有一些代码行查看调用块的父代,并根据它做一些行为。基本上,如果父级是目录列表页面,我希望将from:标记添加到价格中。如果父级是configurable.phtml,我只想简单地显示价格。

我已经有了将from:添加到价格的代码,但我需要if语句来告诉父调用者是什么。

在仔细阅读Mage文件之前,我曾见过类似::parent的内容,但我不知道这是否适用于此...

谢谢!

2 个答案:

答案 0 :(得分:14)

你可以通过调用

从phtml中引用块的父块
$parent = $this->getParentBlock();

parent::someMethod的调用与块或Magento无关。它们是PHP构造,用于表示您想要在父类上调用方法。

答案 1 :(得分:7)

这里有一堆方法可以帮助您了解您在Magento中可视化的页面类型:

  • 当前CMS页面:Mage::getSingleton('cms/page')->getIdentifier();
  • 当前路线:Mage::app()->getFrontController()->getRequest()->getRouteName();
  • 当前控制器:Mage::app()->getFrontController()->getRequest()->getControllerName();
  • 当前行动:Mage::app()->getFrontController()->getRequest()->getActionName();

因此,例如,如果您想了解自己位于目录列表页面,则可以使用最后三个来检查路径是否目录,控制器为类别,操作为查看

另一种方法是检查当前布局句柄数组中是否存在 catalog_category_view 布局句柄,您可以通过以下方式从块或模板:$this->getLayout()->getUpdate()->getHandles()

希望它有所帮助。

关心,亚历山德罗