Magento child html - 获得父母来电

Nat*_*ndt 3 php enterprise magento mage

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

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

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

谢谢!

Ala*_*orm 14

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

$parent = $this->getParentBlock();
Run Code Online (Sandbox Code Playgroud)

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


Ale*_*chi 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()

希望能帮助到你.

此致,亚历山德罗