You are here

function flexiform_webform_flexiform_build_alter in Flexiform 7

Implements hook_flexiform_build_alter().

File

flexiform_webform/flexiform_webform.module, line 546
Module provides simple webform functionality.

Code

function flexiform_webform_flexiform_build_alter(&$form, &$form_state, $flexiform) {

  // Do nothing if the fc module is not enabled.
  if (!module_exists('fc')) {
    return;
  }

  // Work out whether this form is being used as the completeness handler.
  $base_entity_info = entity_get_info($flexiform->base_entity);
  if (empty($base_entity_info['fc handler class']) || !is_subclass_of($base_entity_info['fc handler class'], 'FlexiformFCHandler') && $base_entity_info['fc handler class'] != 'FlexiformFCHandler') {
    return;
  }
  $handler = fcComplete::build($flexiform->base_entity, $form['#flexiform_base_entity']);
  if ($handler
    ->getForm() != $flexiform->form) {
    return;
  }
  $needs_css = FALSE;
  foreach ($flexiform->elements as $namespace => $settings) {
    if (empty($form[$namespace])) {
      continue;
    }
    if (empty($settings['instance']['settings']['fc'])) {
      continue;
    }
    $fc = $settings['instance']['settings']['fc'];
    if ($fc['fc_include'] == 'always' || $fc['fc_include'] == 'entity_exists' && !empty($form['#flexiform_entities'][$fc['fc_include__entity_exists']])) {
      $form[$namespace]['#attributes']['class'][] = 'field-fc-included';
      $needs_css = TRUE;
    }
  }
  if ($needs_css) {
    $form['#attached']['css'][] = drupal_get_path('module', 'flexiform_webform') . '/css/flexiform-webform.fc.css';
  }
}