Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从drupal 6迁移到drupal 7 form_alter hook会抛出一个错误-注意:未定义的索引:sport_utils_form_alter()中的按钮_Php_Drupal_Drupal 7_Hook Form Alter - Fatal编程技术网

Php 从drupal 6迁移到drupal 7 form_alter hook会抛出一个错误-注意:未定义的索引:sport_utils_form_alter()中的按钮

Php 从drupal 6迁移到drupal 7 form_alter hook会抛出一个错误-注意:未定义的索引:sport_utils_form_alter()中的按钮,php,drupal,drupal-7,hook-form-alter,Php,Drupal,Drupal 7,Hook Form Alter,我正在从Drupal6升级到Drupal7。更新后,我启用了此模块 以下是我的功能: 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['#valid

我正在从
Drupal6
升级到
Drupal7
。更新后,我启用了此模块

以下是我的功能:

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['buttons']
替换为在Drupal7中工作的其他东西


有什么建议吗?

在Drupal 7中,表单按钮分组在
$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>';
    }
}
函数sport\u utils\u form\u alter($form、$form\u state、$form\u id){
if(strpos($form_id,'.\u node_form')!==FALSE){
$form['#validate'][]=“byu_sport_utils_verify_valid_author”;
$form['#validate'][]=“byu_sport_utils_remove_first_line_break”;
/**
*复制操作按钮(提交、预览等)
*然后把它们放在表格的顶部
*/
如果(!empty($form['actions'])){
$actions=element_children($form['actions',],TRUE);
foreach($actions作为$name){
$form['top_buttons'][“$name top”]=$form['actions'][$name];
}
}
$form['top_button']['#weight']=-500;
$form['top#u buttons']['#prefix']=$form['actions']['#prefix']='';
$form['top_buttons']['#suffix']=$form['actions']['#suffix']='';
}
}

是否尝试将底部的按钮复制到顶部?是。但是我没有编写这个函数,所以我不能100%确定如何完成这个任务。也许你可以将标题修改为“复制表单按钮并将其放在节点表单的顶部-Drupal 7”这对我不起作用。我没有收到任何错误,但当我检查内容时,它没有在代码中添加任何后缀前缀。@h0你是否清除了缓存以便识别钩子形式?(有关清除缓存的帮助:)
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>';
    }
}