关于Drupal程序开发中的drupal_render方法简介
2009-07-03 12:33
316 查看
前几天写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中。
(小弟才疏学浅,有不妥或者建议请留言指教)
官方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中。
(小弟才疏学浅,有不妥或者建议请留言指教)
相关文章推荐
- 关于 qml程序在目标机上开发时运行出现不断闪屏现象的 解决方法
- 关于开发中如何防止死等程序导致其它任务运行不了方法
- 关于windows环境下QT开发ICE程序无法正确连接类库的解决方法
- 关于开发中如何防止死等程序导致其它任务运行不了方法
- IOS开发之程序首次启动时加载关于程序应用的简介
- spp程序开发环境及方法简介
- 关于开发中如何防止死等程序导致其它任务运行不了方法
- 关于BS程序开发中如何防止页面被多次提交解决方法!
- 关于在linux环境中用eclipse搭建c++程序开发平台的方法
- 关于双核开发环境的程序无法运行的分析方法(ti的双核)
- IOS开发之程序首次启动时加载关于程序应用的简介
- IOS开发之程序首次启动时加载关于程序应用的简介
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- Android开发中程序退出的三种方法
- Android开发中完全退出程序的三种方法
- C#开发中关于加密解密字符串的使用方法
- 关于“ORA-12518: TNS: 监听程序无法分发客户机连接”的一种解决方法
- 关于Quartus II 13.0对应开发NIOS II软件程序时报错Symbol 'NULL' could not be resolved问题的解决方法
- Android应用开发完全退出程序的通用方法!!!
- 关于Android 5.x的低功耗蓝牙BLE开发简介