我试图编写一个自定义模块来从VBO传递实体ID - 可能使用会话变量? - 对于特定的网络表单,因此可以在加载时预先检查表单的实体集(即,对于taxo复选框的多个'默认值'值)。这是我第一次尝试更复杂的模块,我已经做了很多搜索,但到目前为止还没有找到关于这个特定问题的任何内容。我想我已经计算出将id带入会话并使用VBO的drupal_goto向视图用户发送表单,但需要帮助将这些ID设置为加载时webform中的默认值
答案 0 :(得分:0)
在我的情况下,实际上很容易。自定义模块,包含从会话中检索信息的代码(未显示),然后
function myModule_form_webform_client_form_[#]_alter( &$form, &$form_state, $form_id ){
$box_options = $form['submitted']['box_ids'];
$boxes = $_SESSION['boxes_from_session'];
$arguments = set_checkboxes_function($boxes);
if(!empty($arguments)){
$box_options['#default_value'] = $arguments;
unset($_SESSION['boxes_from_session']);
}
return $form;
}
function set_datasets_function($boxes){
$default_vals = array();
foreach($boxes as $item ) {
// below code from suggestions here*
// is overkill, this wants a 1D array
//$key = $item->tid;
//$value = $item->name;
//$default_vals[$key] = $value;
array_push($default_vals,$item->tid);
}
//dpm($default_vals);
return $default_vals;
}