Projet

Général

Profil

Paste
Télécharger (3,13 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / ldap / ldap_views / handlers / ldap_views_handler_filter_attribute.inc @ 32700c57

1 85ad3d82 Assos Assos
<?php
2
3
/**
4
 * @file
5
 * Basic textfield filter to handle string filtering commands for a generic ldap attribute
6 32700c57 Assos Assos
 * Includes new criterias.
7 85ad3d82 Assos Assos
 */
8 bc175c27 Assos Assos
9 32700c57 Assos Assos
/**
10
 *
11
 */
12 85ad3d82 Assos Assos
class ldap_views_handler_filter_attribute extends ldap_views_handler_filter {
13
14
  /**
15
   * Determine if a filter can be exposed.
16
   */
17 32700c57 Assos Assos
  public function can_expose() {
18 85ad3d82 Assos Assos
    return TRUE;
19
  }
20
21 32700c57 Assos Assos
  /**
22
   *
23
   */
24
  public function option_definition() {
25 85ad3d82 Assos Assos
    $options = parent::option_definition();
26 32700c57 Assos Assos
    $options['attribute_name'] = ['default' => ''];
27 85ad3d82 Assos Assos
    return $options;
28
  }
29
30
  /**
31
   * This kind of construct makes it relatively easy for a child class
32
   * to add or remove functionality by overriding this function and
33
   * adding/removing items from this array.
34
   */
35 32700c57 Assos Assos
  public function operators() {
36
    $operators = [
37
      'exists' => [
38 85ad3d82 Assos Assos
        'title' => t('Exists'),
39
        'method' => 'op_exists',
40
        'short' => t('exists'),
41
        'values' => 0,
42 32700c57 Assos Assos
      ],
43
      'not exists' => [
44 85ad3d82 Assos Assos
        'title' => t('Not exists'),
45
        'method' => 'op_exists',
46
        'short' => t('not exists'),
47
        'values' => 0,
48 32700c57 Assos Assos
      ],
49
    ];
50 85ad3d82 Assos Assos
51
    return parent::operators() + $operators;
52
  }
53 32700c57 Assos Assos
54 85ad3d82 Assos Assos
  /**
55 32700c57 Assos Assos
   * Provide a simple textfield for equality.
56 85ad3d82 Assos Assos
   */
57 32700c57 Assos Assos
  public function value_form(&$form, &$form_state) {
58
    $ldap_data = new LdapQuery(ldap_views_get_qid($this->view));
59 85ad3d82 Assos Assos
60
    if (empty($ldap_data)) {
61 32700c57 Assos Assos
      $form['attribute_name'] = [
62 85ad3d82 Assos Assos
        '#markup' => 'You must select a valid LDAP search (Advanced::Query settings)',
63 32700c57 Assos Assos
      ];
64 85ad3d82 Assos Assos
      return;
65
    }
66
67 32700c57 Assos Assos
    $options = [];
68 85ad3d82 Assos Assos
    foreach ($ldap_data->attributes as $attribute) {
69
      $options[$attribute] = $attribute;
70
    }
71
72
    if (empty($form_state['exposed'])) {
73 32700c57 Assos Assos
      $form['attribute_name'] = [
74 85ad3d82 Assos Assos
        '#type' => 'select',
75
        '#title' => t('Attribute name'),
76
        '#description' => t('The attribute name from LDAP response'),
77
        '#options' => $options,
78
        '#default_value' => $this->options['attribute_name'],
79
        '#required' => TRUE,
80 32700c57 Assos Assos
      ];
81 85ad3d82 Assos Assos
    }
82
83
    parent::value_form($form, $form_state);
84
  }
85 32700c57 Assos Assos
86
  /**
87
   *
88
   */
89
  public function op_equal($field) {
90 85ad3d82 Assos Assos
    parent::op_equal($this->options['attribute_name']);
91
  }
92
93 32700c57 Assos Assos
  /**
94
   *
95
   */
96
  public function op_contains($field) {
97 85ad3d82 Assos Assos
    parent::op_contains($this->options['attribute_name']);
98
  }
99
100 32700c57 Assos Assos
  /**
101
   *
102
   */
103
  public function op_starts($field) {
104 85ad3d82 Assos Assos
    parent::op_starts($this->options['attribute_name']);
105
  }
106
107 32700c57 Assos Assos
  /**
108
   *
109
   */
110
  public function op_not_starts($field) {
111 85ad3d82 Assos Assos
    parent::op_not_starts($this->options['attribute_name']);
112
  }
113
114 32700c57 Assos Assos
  /**
115
   *
116
   */
117
  public function op_ends($field) {
118 85ad3d82 Assos Assos
    parent::op_ends($this->options['attribute_name']);
119
  }
120
121 32700c57 Assos Assos
  /**
122
   *
123
   */
124
  public function op_not_ends($field) {
125 85ad3d82 Assos Assos
    parent::op_not_ends($this->options['attribute_name']);
126
  }
127
128 32700c57 Assos Assos
  /**
129
   *
130
   */
131
  public function op_not($field) {
132 85ad3d82 Assos Assos
    parent::op_not($this->options['attribute_name']);
133
  }
134
135 32700c57 Assos Assos
  /**
136
   *
137
   */
138
  public function op_greater_eq($field) {
139 85ad3d82 Assos Assos
    parent::op_greater_eq($this->options['attribute_name']);
140
  }
141
142 32700c57 Assos Assos
  /**
143
   *
144
   */
145
  public function op_less_eq($field) {
146 85ad3d82 Assos Assos
    parent::op_less_eq($this->options['attribute_name']);
147
  }
148
149 32700c57 Assos Assos
  /**
150
   *
151
   */
152
  public function op_exists($field) {
153 85ad3d82 Assos Assos
    parent::op_exists($this->options['attribute_name']);
154
  }
155
156
}