Magento获取phtml文件上使用的布局
有没有办法得到某个phtml文件使用的布局 在本例中,我想检查catalog/list.phtml上使用的布局,我使用该信息在产品图像网格大小上设置条件“if” 我试着用谷歌搜索出来。但所有的结果都只是解释了xml布局方面的事情。我得到的最接近的线索是这条线 这段代码的用法是什么Magento获取phtml文件上使用的布局,magento,layout,e-commerce,magento-1.6,Magento,Layout,E Commerce,Magento 1.6,有没有办法得到某个phtml文件使用的布局 在本例中,我想检查catalog/list.phtml上使用的布局,我使用该信息在产品图像网格大小上设置条件“if” 我试着用谷歌搜索出来。但所有的结果都只是解释了xml布局方面的事情。我得到的最接近的线索是这条线 这段代码的用法是什么 $left_block = $this->loadLayout()->getLayout()->getBlock('left'); 但是当我在phtml文件上尝试它时,我得到了一个异常错误 更新
$left_block = $this->loadLayout()->getLayout()->getBlock('left');
但是当我在phtml文件上尝试它时,我得到了一个异常错误
更新
乔在下面的回答给了我更多的线索,例外消失了。但这种行为并不是我真正需要的。这段代码似乎只是检查XML上是否定义了指定的块。我真正需要的是该块是否存在于某个页面上
在我的例子中,我需要检查catalog/product/list.phtml上使用的布局。如果是3列,我会把图像的大小缩小。如果它只有一列,我会把它放大
有什么方法可以做到吗???删除loadLayout()
:
当您在PHTML文件中时,布局已经加载
在PHTML文件中,$表示
Mage\u Core\u Block\u模板
类(或扩展它的类)。这个类没有定义loadLayout()方法,这就是为什么会出现异常;相反,loadLayout()是Mage\u Core\u Controller\u Varien\u操作的一部分
如果我正确阅读了问题,请尝试:
$this->getLayout()->getBlock('root')->getTemplate();
谢谢乔。。。例外消失了。。。但看起来该代码段只检查XML上是否存在指定的块。。。我需要知道的是,该块是否存在于某个页面上。。。不管怎样,我能做到吗?顺便说一句,我会完善我的问题
$this->getLayout()->getBlock('root')->getTemplate();