欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

drupal dsm dpm dpr dvr 有大用 有大大用 有大大大用

shiping1 的头像

一) 

 $export = kprint_r($vars, TRUE); // $vars - is a variable which you want to print.
  print $export;

二) 

print dpm($node);  //前面可以不加 print 吧

三) 

var_dump($user); dsm($user); 


一) 二) 三)  三种方法,可能个别的不适合于某种场合,比如,一般情况下使用 kprint_r比较理想,, 但是 kprint_r 不适合于表单提交后跳转(只要是跳转,kprint_r就不适用),所以 form 表单跳转时使用 dpm,dsm 





1)用dpm($变量)吧!反正在template.php中 它肯定起作用
(在用它之前要清空下缓存 (好像是页面和其它缓存)).它肯定能打出devel折叠的效果

在template.php中 使用下面两行代码 也不错
  $export = kprint_r($vars, TRUE); // $vars - is a variable which you want to print.
  print $export;

在template.php中 
使用  print_r("BBBB");
   //dsm("AAAAAAAAa");
print dpm($node);
在前台页面 和后台页面刷新几下才看到效果

在template.php中用echo dsm($变量)效果和dpm($变量)好像是一样的
有时 感觉到 用 echo dsm($变量)  更好
var_dump($user); dsm($user); 好像这里非要是前面要加上var_dump($user);或者print_r($user)才行

<?php var_dump($node);dpr($node); ?> 用在模板文件里比较好 好像这里非要是前面要加上var_dump($node);才行
1)在模块文件中 先用dsm($aa);再用dpm($aa); 好像效果比较好  好像有时要刷新一下
在模板文件中 先用print_r($aa);再用dsm($aa); 好像效果比较好  好像有时要刷新一下

1)在被调试的页面 输 <?php dsm($node); ?>  //不一定是$node, 只要是变量(如$page)就行
//有的时候 好像有问题  暂时没找到是哪里的问题 ,
2)只有先敲被调试的页面 (好像应该是管理员登录的情况下)
3)然后在后台 /admin  下 随便敲一个网址 就可以看到调试信息
<?php dpr($node); ?> <?php dvr($node); ?> //这两个都可以 但是都不友好

dsm() 向页面的消息区域输出一个简单变量(比如,一个字符串或者一个整数。) //相当于 devel 用户或节点的调试信息 有大用
//有的时候 好像有问题  暂时没找到是哪里的问题

I would put dsm($vars) in a preprocess function in template.php. Just remember if you put it in phptemplate_preprocess_page it will show you the available variables for the page.tpl.php. Likewise if you put it in phptemplate_preprocess_node it will show you the available variables for node.tpl.php.

If you want to see the available variables from a template file, you can also use get_defined_vars(). Use something like:

 var_dump(get_defined_vars());
 or
 dsm(get_defined_vars());
得到变量
得到变量

var_dump(get_defined_vars());
 or
 dsm(get_defined_vars());


得到所有的全局变量
print_r($GLOBALS);


<?php print theme(array('links__system_main_menu', 'links'), $primary_links,
            array(
              'id' => 'main-menu',
              'class' => 'links clearfix',  //这是ul
            ),
            array(
              'text' => t('Main menu'),
              'level' => 'h2',
              'class' => 'element-invisible', //这是上面的标题
            ));
          ?>
//输出 带ul的主链接
难道是 先调用 主题_links__system_main_menu() 如果找不到的话 就调用 主题_links()
http://drupal.org/node/995940


你可以使用dsm(), dvm(),dpr(),和 dvr()函数来输出调试信息,这些信息对于其它用户是不可见的。
//只有管理员才可看到  devel模块(区块) 也是的 只有管理员才可看到
• dsm() 向页面的消息区域输出一个简单变量(比如,一个字符串或者一个整数。)
• dvm()向页面的消息区域输出一个var_dump()。对于复杂的变量比如数组或者对象使用这个函数。
• dpr() 使用一个递归函数在页面顶部输出一个复杂的变量(比如一个数组或者对象)。
• dvr()在页面顶部输出一个var_dump()。
 
这些函数的输出对于没有“access devel information”(“访问devel信息”)权限的用户是不可见的,这对于实时调试非常方便。
 
一个使用的例子如下所示:
dpr(node_load(5)); // Display the data structure of node 5.
dvr($user); // Display the $user variable.

 

 

Devel模块的其它用途
Devel模块还有一些其它一些方便函数,它们常被忽略却能增加你的开发效率的。
 
例如,你可以实时的切换当前查看Drupal页面的用户。这对于技术支持和调试其它角色非常有用。为了切换到另一个用户上,导航到URL http://example.com/?q=devel/switch/$uid,其中$uid是你想切换到的用户的ID。另一种方式是,启用“Switch users”(切换用户)区块,它提供了达到相同功能的一组链接。
 
你可以使用dsm(), dvm(),dpr(),和 dvr()函数来输出调试信息,这些信息对于其它用户是不可见的。
• dsm() 向页面的消息区域输出一个简单变量(比如,一个字符串或者一个整数。)
• dvm()向页面的消息区域输出一个var_dump()。对于复杂的变量比如数组或者对象使用这个函数。
• dpr() 使用一个递归函数在页面顶部输出一个复杂的变量(比如一个数组或者对象)。
• dvr()在页面顶部输出一个var_dump()。
 
这些函数的输出对于没有“access devel information”(“访问devel信息”)权限的用户是不可见的,这对于实时调试非常方便。
 
一个使用的例子如下所示:
dpr(node_load(5)); // Display the data structure of node 5.
dvr($user); // Display the $user variable.
 

 

在page.tpl.php 中
使用 <?php echo dsm($user);?> 用户对象
 <?php echo dsm($node);?>  //节点对象

 

I would put dsm($vars) in a preprocess function in template.php. Just remember if you put it in phptemplate_preprocess_page it will show you the available variables for the page.tpl.php. Likewise if you put it in phptemplate_preprocess_node it will show you the available variables for node.tpl.php.

If you want to see the available variables from a template file, you can also use get_defined_vars(). Use something like:

 var_dump(get_defined_vars());
 or
 dsm(get_defined_vars());

普通分类: