我在模板文件price.phtml
中。我想有一些代码行查看调用块的父代,并根据它做一些行为。基本上,如果父级是目录列表页面,我希望将from:
标记添加到价格中。如果父级是configurable.phtml
,我只想简单地显示价格。
我已经有了将from:
添加到价格的代码,但我需要if语句来告诉父调用者是什么。
在仔细阅读Mage文件之前,我曾见过类似::parent
的内容,但我不知道这是否适用于此...
谢谢!
答案 0 :(得分:14)
你可以通过调用
从phtml中引用块的父块$parent = $this->getParentBlock();
对parent::someMethod
的调用与块或Magento无关。它们是PHP构造,用于表示您想要在父类上调用方法。
答案 1 :(得分:7)
这里有一堆方法可以帮助您了解您在Magento中可视化的页面类型:
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()
希望它有所帮助。
关心,亚历山德罗