我在模板文件price.phtml
中。我想要一些代码行来查看调用块的父级并基于此执行一些行为。本质上,如果父级是目录列表页面,我希望将from:
标签添加到价格中。如果父母是configurable.phtml
,我想简单地显示价格正常。
我已经有了将价格添加from:
到价格的代码,但我需要 if 语句来告诉父调用者是什么。
我::parent
以前在阅读 Mage 文件时看到过类似的东西,但我不知道这是否适用于这里......
谢谢!
我在模板文件price.phtml
中。我想要一些代码行来查看调用块的父级并基于此执行一些行为。本质上,如果父级是目录列表页面,我希望将from:
标签添加到价格中。如果父母是configurable.phtml
,我想简单地显示价格正常。
我已经有了将价格添加from:
到价格的代码,但我需要 if 语句来告诉父调用者是什么。
我::parent
以前在阅读 Mage 文件时看到过类似的东西,但我不知道这是否适用于这里......
谢谢!
您可以通过调用从 phtml 获取对块的父块的引用
$parent = $this->getParentBlock();
调用parent::someMethod
与块或 Magento 无关。它们是 PHP 结构,用于指示您要调用父类上的方法。
这里有一堆方法可以帮助您了解您在 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()
希望能帮助到你。
问候,亚历山德罗