3

我在模板文件price.phtml中。我想要一些代码行来查看调用块的父级并基于此执行一些行为。本质上,如果父级是目录列表页面,我希望将from: 标签添加到价格中。如果父母是configurable.phtml,我想简单地显示价格正常。

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

::parent以前在阅读 Mage 文件时看到过类似的东西,但我不知道这是否适用于这里......

谢谢!

4

2 回答 2

14

您可以通过调用从 phtml 获取对块的父块的引用

$parent = $this->getParentBlock();

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

于 2011-08-04T22:58:58.677 回答
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()

希望能帮助到你。

问候,亚历山德罗

于 2011-08-08T07:55:34.207 回答