You are here

function workbench_moderation_state_delete in Workbench Moderation 7.3

Same name and namespace in other branches
  1. 7 workbench_moderation.module \workbench_moderation_state_delete()

Delete a moderation state.

This function also deletes any transitions that reference the deleted moderation state.

Invokes hook_workbench_moderation_state_delete().

Parameters

$state: An object with at least a name property.

See also

hook_workbench_moderation_state_delete().

hook_workbench_moderation_transition_delete().

1 call to workbench_moderation_state_delete()
workbench_moderation_admin_states_form_submit in ./workbench_moderation.admin.inc
Form submit handler for moderation state administration.

File

./workbench_moderation.module, line 1532
Content moderation for Workbench.

Code

function workbench_moderation_state_delete($state) {
  foreach (module_implements('workbench_moderation_state_delete') as $module) {

    // Don't call this function! That would lead to infinite recursion.
    if ($module !== 'workbench_moderation') {
      module_invoke($module, 'workbench_moderation_state_delete', $state);
    }
  }
  db_delete('workbench_moderation_states')
    ->condition('name', $state->name)
    ->execute();

  // Delete related transitions, too.
  $query = db_select('workbench_moderation_transitions', 't')
    ->fields('t')
    ->condition(db_or()
    ->condition('from_name', $state->name)
    ->condition('to_name', $state->name))
    ->execute();
  while ($transition = $query
    ->fetchObject()) {
    workbench_moderation_transition_delete($transition);
  }
}