You are here

function workbench_moderation_admin_states_form_submit in Workbench Moderation 7.3

Same name and namespace in other branches
  1. 7 workbench_moderation.admin.inc \workbench_moderation_admin_states_form_submit()

Form submit handler for moderation state administration.

File

./workbench_moderation.admin.inc, line 139
Administrative functions for Workbench Moderation.

Code

function workbench_moderation_admin_states_form_submit($form, &$form_state) {
  foreach ($form_state['values']['states'] as $key => $info) {
    if (!empty($info['delete'])) {
      workbench_moderation_state_delete($info['state']);
      drupal_set_message(t('Moderation state %label (%name) has been deleted.', array(
        '%label' => $info['label'],
        '%name' => $info['name'],
      )));
    }
    elseif (!empty($info['name'])) {
      $state = (object) array(
        'name' => $info['name'],
        'label' => $info['label'],
        'description' => $info['description'],
        'weight' => $info['weight'],
      );
      workbench_moderation_state_save($state);
      if (module_exists('i18n_string')) {
        i18n_string_update(array(
          'workbench_moderation',
          'moderation_state',
          $info['name'],
          'label',
        ), $info['label']);
        i18n_string_update(array(
          'workbench_moderation',
          'moderation_state',
          $info['name'],
          'description',
        ), $info['description']);
      }
    }
  }
  drupal_set_message(t('Your settings have been saved.'));

  // Warn users that changes here may need require reconfiguring Views that use Workbench.
  $views_message = t('Depending on the changes you have made it may be necessary to <a href="@views">reconfigure Views</a> that leverage Workbench Moderation such as <a href="@workbench_moderation">workbench_moderation</a>', array(
    '@views' => url('admin/structure/views'),
    '@workbench_moderation' => url('admin/structure/views/edit/workbench_moderation'),
  ));
  drupal_set_message($views_message, $type = 'warning', $repeat = FALSE);
}