我正在从Drupal 6升级到Drupal 7。我在更新后启用了此模块。
下面是我的函数:
function sport_utils_form_alter($form, $form_state, $form_id) {
if (strpos($form_id, '_node_form') !== FALSE) {
$form['#validate'][] = 'byu_sport_utils_verify_valid_author';
$form['#validate'][] = 'byu_sport_utils_remove_first_line_break';
$form['top_buttons'] = $form['buttons'];
$form['top_buttons']['#weight'] = -500;
$form['top_buttons']['#prefix'] = $form['buttons']['#prefix'] = '<div class="button-bar">';
$form['top_buttons']['#suffix'] = $form['buttons']['#suffix'] = '</div><div class="clear"></div>';
}
}它在这一行抛出一个错误:
$form['top_buttons'] = $form['buttons'];我不知道是否需要用其他可以在Drupal7中工作的东西来替换$form['buttons']。
有什么建议吗?
发布于 2014-08-09 08:29:04
在Drupal7中,表单按钮被分组到$form['actions']下。因此,您需要修改代码以支持如下所示。
function sport_utils_form_alter($form, $form_state, $form_id) {
if (strpos($form_id, '_node_form') !== FALSE) {
$form['#validate'][] = 'byu_sport_utils_verify_valid_author';
$form['#validate'][] = 'byu_sport_utils_remove_first_line_break';
/**
* Copy the action buttons (submit, preview, etc ..)
* and place them at the top of the form
*/
if(!empty($form['actions'])) {
$actions = element_children($form['actions'], TRUE);
foreach($actions as $name) {
$form['top_buttons']["$name-top"] = $form['actions'][$name];
}
}
$form['top_buttons']['#weight'] = -500;
$form['top_buttons']['#prefix'] = $form['actions']['#prefix'] = '<div class="button-bar">';
$form['top_buttons']['#suffix'] = $form['actions']['#suffix'] = '</div><div class="clear"></div>';
}
}https://stackoverflow.com/questions/25171448
复制相似问题