Drupal提交处理程序不是从主题函数调用的
实际上,我正在尝试构建一个可拖动的表,但由于某种原因,在实现了theme_函数之后,我的提交处理程序不再被调用 这就是我的代码实际上的样子:Drupal提交处理程序不是从主题函数调用的,drupal,themes,submit,Drupal,Themes,Submit,实际上,我正在尝试构建一个可拖动的表,但由于某种原因,在实现了theme_函数之后,我的提交处理程序不再被调用 这就是我的代码实际上的样子: function he_ministerienschalter_theme($existing, $type, $theme, $path) { $themes = array( 'he_ministerienschalter_admin_form' => array( 'render element' => 'elem
function he_ministerienschalter_theme($existing, $type, $theme, $path) {
$themes = array(
'he_ministerienschalter_admin_form' => array(
'render element' => 'element',
),
);
return $themes;
}
/**
* Implements the ministerschalter admin form
*/
function he_ministerienschalter_admin_form($form, &$form_state, $form_id, $item) {
$domainnames = he_ministerienschalter_domainselect();
$count = 0;
$form['ressortswitch'] = array(
'#prefix' => '<div id="curve-attributes">',
'#suffix' => '</div>',
'#tree' => TRUE,
'#theme' => 'he_ministerienschalter_admin_form',
);
foreach ($domainnames as $key => $domainname) {
$form['ressortswitch'][$key]['domainID-'.$key] = array(
'#type' => 'value',
'#value' => $domainname['domain_id'],
);
$form['ressortswitch'][$key]['domainname-'.$key] = array(
'#type' => 'item',
'#title' => $domainname['sitename'],
'#size' => 60,
'#maxlength' => 128,
);
$form['ressortswitch'][$key]['domainshort-'.$key] = array(
'#type' => 'textfield',
'#default_value' => $domainname['sitename'],
);
$form['ressortswitch'][$key]['weight-'.$key] = array(
'#type' => 'textfield',
'#default_value' => !empty($domainname['domain_weight']) ? $domainname['domain_weight'] : '0',
'#size' => 3,
'#attributes' => array('class' => array('item-row-weight')),
);
$count++;
}
$form['ressortswitch']['count'] = array(
'#type' => 'hidden',
'#value' => $count,
);
$form['ressortswitch']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save Settings'),
);
return $form;
}
/**
* Theme callback for the he_ministerienschalter_admin_form
*/
function theme_he_ministerienschalter_admin_form($variables) {
$element = $variables['form'];
drupal_add_tabledrag('ressortswitch_table', 'order', 'sibling', 'item-row-weight');
$header = array(
t('Domainname'),
t('Domainshort'),
t('Weight')
);
$element_items = array();
foreach($element['ressortswitch'] as $id => $record) {
if(is_int($id)) {
$element_items[] = $record;
}
}
$rows = array();
foreach ($element_items as $id => $item) {
$domainNAME[$id] = $item['domainname-'.$id];
$domainSHORT[$id] = $item['domainshort-'.$id];
$domainWEIGHT[$id] = $item['weight-'.$id];
$rows[] = array(
'data' => array(
drupal_render($domainNAME[$id]),
drupal_render($domainSHORT[$id]),
drupal_render($domainWEIGHT[$id]),
),
'class' => array('draggable'),
);
}
$output = theme('table', array(
'header' => $header,
'rows' => $rows,
'attributes' => array('id' => 'ressortswitch_table'),
));
$output .= drupal_render($element['ressortswitch']['submit']);
return $output;
}
/**
* Implements hook_form_submit
*/
function he_ministerienschalter_admin_form_submit($form, &$form_state, $item) {
db_delete('he_ministerienschalter')
->execute();
$count_domains = $form_state['values']['ressortswitch']['count'];
$count = 0;
// dpm($form_state);
dpm($form_state);
while($count < $count_domains) {
db_insert('he_ministerienschalter')
->fields(array(
'domain_id' => $form_state['values']['ressortswitch'][$count]['domainID-'.$count],
'domain_short' => $form_state['values']['ressortswitch'][$count]['domainshort-'.$count],
'domain_weight' => $form_state['values']['ressortswitch'][$count]['weight-'.$count]
))
->execute();
$count++;
}
drupal_set_message('Eingabe gespeichert');
}
函数he\u ministerenschalter\u主题($existing,$type,$theme,$path){
$themes=数组(
“he_ministerenschalter_admin_form”=>数组(
“渲染元素”=>“元素”,
),
);
返回$主题;
}
/**
*实现ministerschalter管理表单
*/
函数he_ministerenschalter_admin_form($form,&$form_state,$form_id,$item){
$domainnames=he_ministerienschalter_domainselect();
$count=0;
$form['resortswitch']=数组(
“#前缀”=>”,
“#后缀”=>”,
“#tree”=>正确,
“#主题”=>“行政管理表格”,
);
foreach($key=>$domainname的域名){
$form['resortswitch'][$key]['domainID-'.$key]=数组(
“#类型”=>“值”,
“#value”=>$domainname['domain_id'],
);
$form['resortswitch'][$key]['domainname-'.$key]=数组(
“#类型”=>“项目”,
“#title”=>$domainname['sitename'],
“#大小”=>60,
“#maxlength”=>128,
);
$form['resortswitch'][$key]['domainshort-'.$key]=数组(
“#键入”=>“文本字段”,
“#默认值”=>$domainname['sitename'],
);
$form['resortswitch'][$key]['weight-'.$key]=数组(
“#键入”=>“文本字段”,
“#默认_值”=>!空($domainname['domain_weight'])?$domainname['domain_weight']:'0',
“#大小”=>3,
“#属性”=>array('class'=>array('item-row-weight')),
);
$count++;
}
$form['resortswitch']['count']=数组(
“#类型”=>“隐藏”,
“#值”=>$count,
);
$form['resortswitch']['submit']=array(
“#键入”=>“提交”,
“#值”=>t(“保存设置”),
);
返回$表格;
}
/**
*he_ministerienschalter_admin_表单的主题回调
*/
函数主题\u he\u ministerienschalter\u admin\u表单($variables){
$element=$variables['form'];
drupal_add_tabledrag('ressortswitch_table','order','sibling','item row weight');
$header=数组(
t(‘域名’),
t('Domainshort'),
t(‘重量’)
);
$element_items=array();
foreach($element['resortswitch']作为$id=>$record){
if(is_int($id)){
$element_items[]=$record;
}
}
$rows=array();
foreach($id=>$item的元素\项){
$domainNAME[$id]=$item['domainNAME-'.$id];
$domainSHORT[$id]=$item['domainSHORT-'.$id];
$domainWEIGHT[$id]=$item['weight-'.$id];
$rows[]=数组(
“数据”=>数组(
drupal_render($domainNAME[$id]),
drupal_render($domainSHORT[$id]),
drupal_渲染($domainWEIGHT[$id]),
),
'class'=>array('draggable'),
);
}
$output=theme('表',数组)(
'header'=>$header,
“行”=>$rows,
'attributes'=>array('id'=>'ressortswitch_table'),
));
$output.=drupal_render($element['resortswitch']['submit']);
返回$output;
}
/**
*执行钩子表单提交
*/
职能部门行政人员行政部门表格提交($form,&$form\u state,$item){
db_delete('he_ministerienschalter'))
->执行();
$count_domains=$form_state['values']['resortswitch']['count'];
$count=0;
//dpm($形式州);
dpm($形式州);
而($count<$count\u域){
db_插入(“他_部长级职位”)
->字段(数组)(
'domain_id'=>$form_state['values']['resortswitch'][$count]['domainID-'.$count],
'domain_short'=>$form_state['values']['resortswitch'][$count]['domainshort-'.$count],
'domain_weight'=>$form_state['values']['resortswitch'][$count]['weight-'.$count]
))
->执行();
$count++;
}
drupal_set_消息('Eingabe gespeichert');
}
你知道如何解决这个问题吗?我更新了我的主题函数,现在它像一个符咒一样工作:-)
$output .= drupal_render($element['form_id']);
$output .= drupal_render($element['form_build_id']);
$output .= drupal_render($element['form_token']);