关于Drupal程序开发中的drupal_render方法简介

前几天写drupal模块中,当输出form等元素到主题时发现都要用到drupal_render这个方法,于是查了查这个方法的具体含义:

 

官方api: http://api.drupal.org/api/function/drupal_render

 

适用于drupal5,6,7

 

官方解释原文:

Renders HTML given a structured array tree.

Recursively iterates over each of the array elements, generating HTML code. This function is usually called from within a another function, like drupal_get_form () or node_view ().

 

译文: 

以一个结构数组树的形式递归成HTML.

反复递归每一层的数组元素,生成HTML代码。这个方法通常在另一个方法内被调用,比如drupal_get_form () 或者 node_view ().

 

 

 

原理大致如此:

 

比如我写了一个form表单,里面有个叫name的文本框元素,如下

 

  $form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('姓名),
    '#size' => 50,
    '#maxlengh' => 255,
    '#description' => t('户口本所需姓名.'),
    );

 

这时  $form['name']变量是个数组,通过递归的思考方式,其中的#type等都是$form['name']的元素,然而$form['name']本身也是$form的元素,drupal_render会递归便历一个数组,最终转成上面那样的一样小单元,我们称之为$element,那么,就要将这个$eletem转成html,当然上面那一个单元粗略的就生成了类似 '姓名:<INPUT TYPE="text" NAME="name" size="50">' 这一串字符串,把所有的elemnt输出的内容连接起来,就是$content,页面中再把 $pre, $suff, $content连接起来就是返回的html输出。

 

其实我理解概括下来,就是你的诸多元素被drupal_render整合成html到$content中。

 

(小弟才疏学浅,有不妥或者建议请留言指教)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值