function webform_delete_empty_subconditionals in Webform 7.4
Helper. Delete any subconditionals which contain no rules.
Parameters
array $conditional: Conditional array containing the rules.
Return value
array Array of deleted subconditionals. Empty array if none were deleted.
2 calls to webform_delete_empty_subconditionals()
- webform_component_delete in includes/webform.components.inc 
- Delete a Webform component.
- webform_conditionals_form in includes/webform.conditionals.inc 
- Form builder; Provide the form for adding conditionals to a webform node.
File
- includes/webform.conditionals.inc, line 835 
- Form elements and menu callbacks to provide conditional handling in Webform.
Code
function webform_delete_empty_subconditionals(array &$conditional) {
  $deleted = array();
  do {
    $empty_deleted = FALSE;
    $open_rid = NULL;
    foreach ($conditional['rules'] as $rid => $rule) {
      switch ($rule['source_type']) {
        case 'conditional_start':
          $open_rid = $rid;
          break;
        case 'conditional_end':
          if ($open_rid) {
            // A conditional_start rule was immediately followed by a
            // conditional_end rule. Delete them both. Repeat the check in case
            // the parent is now empty.
            $deleted[$open_rid] = $open_rid;
            $deleted[$rid] = $rid;
            unset($conditional['rules'][$open_rid], $conditional['rules'][$rid]);
            $open_rid = NULL;
            $empty_deleted = TRUE;
          }
          break;
        default:
          $open_rid = NULL;
      }
    }
  } while ($empty_deleted);
  return $deleted;
}