Projet

Général

Profil

Paste
Télécharger (2,21 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / themes / bootstrap / theme / process.inc @ 87dbc3bf

1
<?php
2
/**
3
 * @file
4
 * process.inc
5
 *
6
 * Contains various implementations for #process callbacks on elements.
7
 */
8

    
9
/**
10
 * Process all elements.
11
 */
12
function _bootstrap_process_element(&$element, &$form_state) {
13
  if (!empty($element['#attributes']['class']) && is_array($element['#attributes']['class'])) {
14
    if (in_array('container-inline', $element['#attributes']['class'])) {
15
      $element['#attributes']['class'][] = 'form-inline';
16
    }
17
    if (in_array('form-wrapper', $element['#attributes']['class'])) {
18
      $element['#attributes']['class'][] = 'form-group';
19
    }
20
  }
21
  return $element;
22
}
23

    
24
/**
25
 * Process input elements.
26
 */
27
function _bootstrap_process_input(&$element, &$form_state) {
28
  // Only add the "form-control" class for specific element input types.
29
  $types = array(
30
    // Core.
31
    'password',
32
    'password_confirm',
33
    'select',
34
    'textarea',
35
    'textfield',
36
    // Elements module.
37
    'emailfield',
38
    'numberfield',
39
    'rangefield',
40
    'searchfield',
41
    'telfield',
42
    'urlfield',
43
  );
44
  if (!empty($element['#type']) && (in_array($element['#type'], $types) || ($element['#type'] === 'file' && empty($element['#managed_file'])))) {
45
    $element['#attributes']['class'][] = 'form-control';
46
  }
47
  return $element;
48
}
49

    
50
/**
51
 * Process fieldset element.
52
 */
53
function _bootstrap_process_fieldset(&$element, &$form_state) {
54
  $parents = implode('][', $element['#parents']);
55

    
56
  // Each fieldset forms a new group. The #type 'vertical_tabs' basically only
57
  // injects a new fieldset.
58
  $form_state['groups'][$parents]['#group_exists'] = TRUE;
59
  $element['#groups'] = &$form_state['groups'];
60

    
61
  // Process vertical tabs group member fieldsets.
62
  if (isset($element['#group'])) {
63
    // Add this fieldset to the defined group (by reference).
64
    $element['#theme_wrappers'] = array('bootstrap_panel');
65
    $group = $element['#group'];
66
    $form_state['groups'][$group][] = &$element;
67
  }
68

    
69
  // Contains form element summary functionalities.
70
  $element['#attached']['library'][] = array('system', 'drupal.form');
71

    
72
  // The .form-wrapper class is required for #states to treat fieldsets like
73
  // containers.
74
  if (!isset($element['#attributes']['class'])) {
75
    $element['#attributes']['class'] = array();
76
  }
77

    
78
  return $element;
79
}