2011-03-15 89 views
0

当我为节点创建自定义模板时,发现Drupal添加了额外的html。Drupal 7 - 我在哪里可以找到render()函数的模板?

所以我改变page.tpl.php中像下面测试

<div style='height:300px'> 
    <?php print render($page['content']); ?> 
</div> 

再变node.tpl.php到

hello 

输出为:

<div style='height:300px'> 
    <div class="region region-content"> 
    <div id="block-system-main" class="block block-system"> 


    <div class="content"> 
    hello </div> 
</div> 
    </div> 
</div> 

所有这些额外的标签从哪里来?

其实我预计<div style='height:300px'>hello</div>

+0

自己找到了。 – Moon 2011-03-15 06:41:10

+0

转到admin-> structure-> blocks->点击内容上的'configure' - >为您的主题选择'none' – Moon 2011-03-15 06:41:47

+0

您真的不想这样做,它会将主要内容完全从主题中移除。例如,如果你在管理主题上这样做,你将无法恢复它。 – Berdir 2011-03-15 07:09:46

回答

1

drupal_render()可以用来渲染所谓的渲染阵列。这些是自包含的,它们告诉render()使用哪个主题函数/模板。

尝试dpm($ page ['content']),然后应该有一个包含该信息的'#theme'键。

0

与dpm不错。 要打印h2和body,你可以在page.tpl.php中写这样的东西。

<?php print render($page['content']['system_main']['nodes'][1]); ?></div> ?> 
相关问题