Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento子html--获取父调用方_Php_Magento_Enterprise_Mage - Fatal编程技术网

Php Magento子html--获取父调用方

Php Magento子html--获取父调用方,php,magento,enterprise,mage,Php,Magento,Enterprise,Mage,我在模板文件price.phtml中。我希望有一行代码来查看调用块的父级,并在此基础上执行一些行为。基本上,如果父项是目录列表页面,我希望在价格中添加一个from:标记。如果父级可配置.phtml,我只想显示正常的价格 我已经有了将from:添加到price的代码,但是我需要if语句来告诉父调用方是什么 我以前在阅读Mage文件时看到过类似于::parent,但我不知道这是否适用于这里 谢谢 您可以通过调用 $parent = $this->getParentBlock(); 对pare

我在模板文件
price.phtml
中。我希望有一行代码来查看调用块的父级,并在此基础上执行一些行为。基本上,如果父项是目录列表页面,我希望在价格中添加一个
from:
标记。如果父级
可配置.phtml
,我只想显示正常的价格

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

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


谢谢

您可以通过调用

$parent = $this->getParentBlock();

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

以下是一些方法,可以帮助您了解在Magento中显示的是哪种页面:

  • 当前CMS页面:
    Mage::getSingleton('CMS/Page')->getIdentifier()
  • 当前路由:
    Mage::app()->getFrontController()->getRequest()->getRouteName()
  • 当前控制器:
    Mage::app()->getFrontController()->getRequest()->getControllerName()
  • 当前操作:
    Mage::app()->getFrontController()->getRequest()->getActionName()
因此,例如,如果您想了解自己处于目录列表页面,可以使用最后三个,以检查路由是否为目录,控制器是否为类别,操作是否为查看

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

希望能有帮助

你好,亚历山德罗