官方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, generatingHTML code. This function is usually called from within a anotherfunction, 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中。