You are here

function mb_user_form_alter in More Buttons 7

Implements hook_form_alter().

File

mb_user/mb_user.module, line 71
Provides additional buttons for content in user context.

Code

function mb_user_form_alter(&$form, &$form_state, $form_id) {
  $module = 'mb_user';
  switch ($form_id) {
    case 'user_profile_form':
      $default_values = mb_default_values();
      $mb_user_values = mb_get_values('mb');
      if (!isset($form['actions']['submit']['#weight'])) {
        $form['actions']['submit']['#weight'] = 10;
      }
      if (isset($form['actions']['cancel'])) {
        $form['actions']['cancel']['#weight'] = 25;
      }
      $settings = array();
      $settings['cancel'] = variable_get($module . '_cancel_user_account', 0);
      $settings['sac'] = variable_get($module . '_sac_user_account', 0);
      $settings['sacn'] = variable_get($module . '_sacn_user_account', 0);

      // The "Cancel" form element on user account page.
      if ($settings['cancel'] > 0) {
        if ($settings['cancel'] == 1) {
          $weight_cancel = $form['actions']['submit']['#weight'] - 1;
        }
        elseif ($settings['cancel'] == 2) {
          $weight_cancel = 16;
        }

        // Define the "Cancel" form element.
        $form['actions']['cancel_mb'] = array(
          '#type' => 'submit',
          '#value' => isset($mb_user_values['cancel']) ? t('@cancel-value', array(
            '@cancel-value' => t($mb_user_values['cancel']),
          )) : t($default_values['cancel']),
          '#weight' => $weight_cancel,
          '#validate' => array(
            'mb_user_cancel_validate',
          ),
        );
      }

      // The "Save and continue" form element on user account page.
      if ($settings['sac'] > 0) {

        // Left
        if ($settings['sac'] == 1) {
          $weight_sac = $form['actions']['submit']['#weight'] - 0.025;
        }

        // Right
        if ($settings['sac'] == 2) {
          $weight_sac = $form['actions']['submit']['#weight'] - 0.05;
        }

        //
        if ($settings['sac'] == 3) {
          $weight_sac = $form['actions']['submit']['#weight'] + 1.025;
        }

        //
        if ($settings['sac'] == 4) {
          $weight_sac = $form['actions']['submit']['#weight'] + 1.05;
        }

        // Define the "Save and continue" form element.
        $submit = $form['#submit'];
        $submit[] = 'mb_user_sac_submit';
        $form['actions']['sac'] = array(
          '#type' => 'submit',
          '#value' => isset($mb_user_values['sac']) ? t('@sac-value', array(
            '@sac-value' => t($mb_user_values['sac']),
          )) : t($default_values['sac']),
          '#weight' => $weight_sac,
          '#submit' => $submit,
        );
      }

      // The "Save and create new" form element on user account page.
      if ($settings['sacn'] > 0 && user_access('administer users')) {

        //
        if ($settings['sacn'] == 1) {
          $weight_sacn = $form['actions']['submit']['#weight'] - 0.025;
        }

        //
        if ($settings['sacn'] == 2) {
          $weight_sacn = $form['actions']['submit']['#weight'] - 0.05;
        }

        //
        if ($settings['sacn'] == 3) {
          $weight_sacn = $form['actions']['submit']['#weight'] + 1.025;
        }

        //
        if ($settings['sacn'] == 4) {
          $weight_sacn = $form['actions']['submit']['#weight'] + 1.05;
        }

        // Define the "Save and create new" form element.
        $submit = $form['#submit'];
        $submit[] = 'mb_user_sacn_submit';
        $form['actions']['sacn'] = array(
          '#type' => 'submit',
          '#value' => isset($mb_user_values['sacn']) ? t('@sacn-value', array(
            '@sacn-value' => t($mb_user_values['sacn']),
          )) : t($default_values['sacn']),
          '#weight' => $weight_sacn,
          '#submit' => $submit,
        );
      }
      break;
  }
}