2011-03-11 62 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>