You are here

function theme_webform_conditional in Webform 7.4

Theme the form for a conditional action.

1 theme call to theme_webform_conditional()
webform_element_info in ./webform.module
Implements hook_element_info().

File

includes/webform.conditionals.inc, line 897
Form elements and menu callbacks to provide conditional handling in Webform.

Code

function theme_webform_conditional($variables) {
  $element = $variables['element'];
  $output = '';
  $output .= '<div class="webform-conditional">';
  $output .= '<span class="webform-conditional-if">' . t('If') . '</span>';
  foreach (element_children($element['rules']) as $rid) {
    $rule =& $element['rules'][$rid];
    switch ($rule['source_type']['#value']) {
      case 'conditional_start':
        $source_phrase = '<div class="webform-subconditional">' . t('(') . '</div>';
        break;
      case 'conditional_end':
        $source_phrase = '<div class="webform-subconditional">' . t(')') . '</div>';
        break;
      default:

        // Hide labels.
        $rule['source']['#title_display'] = 'invisible';
        $rule['operator']['#title_display'] = 'invisible';
        $rule['value']['#title_display'] = 'invisible';
        $source = '<div class="webform-conditional-source">' . drupal_render($rule['source']) . '</div>';
        $operator = '<div class="webform-conditional-operator">' . drupal_render($rule['operator']) . '</div>';
        $value = '<div class="webform-conditional-value">' . drupal_render($rule['value']) . '</div>';
        $source_phrase = t('!source !operator !value', array(
          '!source' => $source,
          '!operator' => $operator,
          '!value' => $value,
        ));
    }
    $output .= '<div class="webform-conditional-rule">';

    // Can't use theme('indentation') here because it causes the draghandle to
    // be located after the last indentation div.
    $output .= str_repeat('<div class="webform-indentation">&nbsp;</div>', $rule['#level']);
    $output .= drupal_render($rule['source_type']);
    $output .= '<div class="webform-container-inline webform-conditional-condition">';
    $output .= $source_phrase;
    $output .= '</div>';
    if (isset($rule['andor'])) {
      $rule['andor']['#title_display'] = 'invisible';
      $output .= '<div class="webform-conditional-andor webform-container-inline">';
      $output .= drupal_render($rule['andor']);
      $output .= '</div>';
    }
    if (isset($rule['add']) || isset($rule['remove'])) {
      $output .= '<span class="webform-conditional-operations webform-container-inline">';
      $output .= drupal_render($rule['add_subconditional']);
      $output .= drupal_render($rule['add']);
      $output .= drupal_render($rule['remove']);
      $output .= '</span>';
    }
    $output .= '</div>';
  }

  // Hide labels.
  foreach (element_children($element['actions']) as $aid) {

    // Hide labels.
    $element['actions'][$aid]['target']['#title_display'] = 'invisible';
    $element['actions'][$aid]['invert']['#title_display'] = 'invisible';
    $element['actions'][$aid]['action']['#title_display'] = 'invisible';
    $element['actions'][$aid]['argument']['#title_display'] = 'invisible';
    $target = '<div class="webform-conditional-target">' . drupal_render($element['actions'][$aid]['target']) . '</div>';
    $invert = '<div class="webform-conditional-invert">' . drupal_render($element['actions'][$aid]['invert']) . '</div>';
    $action = '<div class="webform-conditional-action">' . drupal_render($element['actions'][$aid]['action']) . '</div>';
    $argument = '<div class="webform-conditional-argument">' . drupal_render($element['actions'][$aid]['argument']) . '</div>';
    $target_phrase = t('then !target !invert !action !argument', array(
      '!target' => $target,
      '!invert' => $invert,
      '!action' => $action,
      '!argument' => $argument,
    ));
    $output .= '<div class="webform-conditional-action">';
    $output .= '<div class="webform-container-inline webform-conditional-condition">';
    $output .= $target_phrase;
    $output .= '</div>';
    if (isset($element['actions'][$aid]['add']) || isset($element['actions'][$aid]['remove'])) {
      $output .= '<span class="webform-conditional-operations webform-container-inline">';
      $output .= drupal_render($element['actions'][$aid]['add']);
      $output .= drupal_render($element['actions'][$aid]['remove']);
      $output .= '</span>';
    }
    $output .= '</div>';
  }
  $output .= '</div>';
  return $output;
}