2011-03-11 55 views
1

因此,在创建Drupal站点时(例如),它是在页面顶部打印表单等变量的常见开发助手,例如,使用dpm()(假设安装了devel模块)。Drupal - 了解如何打印变量

我很难完成所有的操作,以及可以使用它们的上下文。

例如,我可以在自定义模块中的hook_form_alter实现中使用dpm($form)。没问题,变量很好地打印在页面顶部。

现在,如果我看一个模板,比如说node.tpl.php,我发现有一些可用的变量用于构建页面。所以如果我选择一个,例如$链接,我会认为将<?php dpm($links); ?>添加到node.tpl.php将为我打印变量。但不是!

这是为什么,我做错了什么? :)

回答

3

dpm()使用drupal_set_message()。在页面渲染过程的某个时候,Drupal会打印所有使用此功能设置的消息。
您在该点之后使用dpm(),因此将消息添加到此页面为时已晚。但是,您应该在下一页或刷新当前页面后看到它们。虽然对调试没有帮助。

您可能需要试一试Theme Developer Module

0

dpm()将调试内容放到会话中,如果内容太大,将不会显示。

尝试die(kpr($vars));

+0

是什么KPR?它有一些功能吗? – user5858 2011-03-11 17:58:08

+0

devel.module里面的一个函数 – 2011-03-17 07:56:02

+0

在渲染任何东西之前杀死脚本。 – 2016-04-08 10:33:44

2

最简单的方法:

echo "<pre>"; 
var_dump($row);  
echo "</pre>"; 
die(); 
0

显示所有的节点变量:

<ol> 
    {% for key, value in node %} 
     <li>{{ key }}</li> 
    {% endfor %} 
</ol>