在drupal fapi中有一个属性"#process".它到底是什么?为什么密码字段使用它进行字段复制而不是添加主题?
我想用它来定义一个带有hook_elements的新字段类型.
编辑:
这是我的hook_elements:
function test_elemets() {
return array(
'test_field' => array(
'#input' => TRUE,
'#process' => array('test_field_process'),
)
);
}
Run Code Online (Sandbox Code Playgroud)
和进程回调:
function test_field_process($element, $edit, &$form_state, $complete_form) {
$element = array();
return $element;
}
Run Code Online (Sandbox Code Playgroud)
正如您在进程函数中看到的那样,我使用$ element = array()来查看会发生什么.但是表单显示为之前.为什么?
Hen*_*pel 11
阅读'#process'表单元素属性上的Forms API文档.
它是一个回调函数数组,每个函数都将通过传递给它的元素定义数组来调用.然后,回调函数可以对元素定义数组执行操作,将其转换为不同的(通常更复杂的)定义,例如,在附加等同性检查JavaScript文件时复制密码字段,或者将一个组合的"无线电"定义转换为相应的数量具体的单一"无线电"定义等
如果要提供复杂的表单元素(例如,组合多个"标准"元素,或者自动添加标准JavaScript帮助程序),您将需要使用它,但仍保留Forms API的简单声明方法.(看看Ma - 只有一个'#type' = 'myCrazyFormElement'
数组,将'自动'扩展为更复杂的东西 ;)
通过主题化层这样做也许是可能的,这取决于使用情况,但需要更多的代码,每次你需要它.
归档时间: |
|
查看次数: |
7907 次 |
最近记录: |