You are here

function theme_field_group_multiple_container_form in Field group multiple 7

Same name and namespace in other branches
  1. 7.x theme.inc \theme_field_group_multiple_container_form()

TODO implement drag & drop for order and remove item row

File

./theme.inc, line 10
Theme functions for field_group_multiple

Code

function theme_field_group_multiple_container_form($variables) {
  drupal_add_css(drupal_get_path('module', 'field_group_multiple') . '/field_group_multiple.css');
  $element = $variables['elements'];
  $items = $element['items'];
  $group = $element['#group'];
  $id = $group->identifier;
  $entries = array(
    '#type' => 'container',
    '#attributes' => array(
      'class' => array(
        'field-group-multiple',
        'field-group-multiple-container',
      ),
    ),
  );
  foreach (element_children($items, TRUE) as $delta) {
    $field_data = $items[$delta];
    $entry = array(
      '#type' => 'container',
      '#attributes' => array(
        'class' => array(
          'multiple-inline-element',
          'multiple-item-' . drupal_html_class($delta),
          'clearfix',
          $delta % 2 == 0 ? 'even' : 'odd',
        ),
      ),
      '#weight' => $delta,
    );
    $order = 0;
    foreach (element_children($field_data, TRUE) as $field_name) {
      $data = $field_data[$field_name];
      $elem = array(
        '#type' => 'container',
        '#attributes' => array(
          'class' => array(
            'multiple-element',
            'multiple-' . drupal_html_class($field_name),
          ),
        ),
        '#weight' => $order,
        'data' => $data,
      );
      $order++;
      $entry[$field_name] = $elem;
    }
    $entries[] = $entry;
  }
  $output = '<div class="form-item">';
  $output .= drupal_render($entries);
  $output .= isset($element['#description']) ? '<div class="description">' . $element['#description'] . '</div>' : '';
  $output .= '</div>';
  return $output;
}