2012-03-15 61 views

回答

7

你想做什么?与渲染上下文的编程耦合可能表明有更好的方法可用。这就是说:

你可以问布局对象,如果一个根块已被实例化,如果是这样,它的模板属性是什么:

$root = Mage::app()->getLayout()->getBlock('root'); 

if ($root) { 
    $rootTpl = $root->getTemplate(); // For core/design_package calculated 
            // absolute path use getTemplateFile(); 

    switch ($rootTpl) { 
     case 'page/1column.phtml': 
      //stuff to do 
      break; 

     //etc. 
    } 
} 
+0

我曾经有过同样的问题,并且'Mage :: app() - > getLayout() - > getBlock('root') - > getTemplate()'也为我做了诡计! – seanbreeden 2012-03-15 17:52:58

+0

谢谢Ben ...我给你很多答案... – 2012-03-16 07:25:36

0

检查/ app/design/frontend/default /中的XML文件 - 您的主题 -/layout文件夹。它们包含对使用的模板文件的引用。

E.g. page.xml包含:

<block type="page/html" name="root" output="toHtml" template="page/2columns-left.phtml"> 

...定义的用于大部分的网页模板。

祝你好运!

+0

对不起,我需要找到编程。 – 2012-03-15 15:00:32

0

您可以检查div.page的第一个子项以了解当前模板中有多少列。

html body div.wrapper div.page div.main-container.col1-layout