Magento的得到它正在布局上PHTML文件中使用(Magento get which layou

2019-09-18 08:18发布

有没有办法,我能得到它正在布局上一定PHTML文件中使用?

在这里,在我的情况,我想查什么布局正在对目录/ list.phtml使用,我用这些信息来做出有条件的“如果”的产品形象网格大小。

我试着谷歌不出来。 但是,所有的结果只是解释有关XML布局的事情。 我得到的最接近的线索是这个线程

Magento的布局获得给定页

其中指出使用这个片段的

$left_block = $this->loadLayout()->getLayout()->getBlock('left');

但是当我试图在PHTML文件,我得到了一个异常错误

UPDATE

下面乔的回答已经给我一些更多的线索,异常了。 但是行为不会真的是我需要的。 的代码片段似乎只是检查指定块是否在XML定义。 我真正需要的是块是否某一页上存在。

就我而言,我需要检查什么布局正在对目录/产品/ list.phtml使用。 如果是3列,我一定让图像大小小。 如果1列,我会让它更大。

有没有什么办法,我能做到这一点?

Answer 1:

如果我正确读取的问题,然后再尝试:

$this->getLayout()->getBlock('root')->getTemplate();


Answer 2:

删除loadLayout()

$left_block = $this->getLayout()->getBlock('left');

通过你在PHTML文件时,布局已经加载。

在PHTML文件,$ this指的是Mage_Core_Block_Template类(或继承它的类)。 这个类没有定义的loadLayout()方法,这就是为什么你会得到一个异常; 相反,loadLayout()是的一部分Mage_Core_Controller_Varien_Action



文章来源: Magento get which layout being used on phtml files