1 <?php
2
3 /*
4 * This file is part of the Icybee package.
5 *
6 * (c) Olivier Laviale <olivier.laviale@gmail.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 namespace Icybee\Modules\Members;
13
14 use ICanBoogie\I18n;
15
16 use Brickrouge\Element;
17 use Brickrouge\Date;
18 use Brickrouge\Form;
19 use Brickrouge\Text;
20
21 use Icybee\Modules\Editor\RTEEditorElement;
22
23 class EditBlock extends \Icybee\Modules\Users\EditBlock
24 {
25 protected function lazy_get_attributes()
26 {
27 return \ICanBoogie\array_merge_recursive
28 (
29 parent::lazy_get_attributes(), array
30 (
31 Element::GROUPS => array
32 (
33 'numbers' => array
34 (
35 'title' => 'Numéros de téléphone'
36 ),
37
38 'private' => array
39 (
40 'title' => 'Données privées'
41 ),
42
43 'professional' => array
44 (
45 'title' => 'Données professionnelles'
46 ),
47
48 'misc' => array
49 (
50 'title' => 'Informations complémentaires'
51 ),
52
53 'attached' => array
54 (
55 'title' => 'Pièces attachées'
56 )
57 )
58 )
59 );
60 }
61
62 protected function lazy_get_children()
63 {
64 return array_merge
65 (
66 parent::lazy_get_children(), array
67 (
68 'salutation_code' => new Element
69 (
70 'select', array
71 (
72 Form::LABEL => 'Salutation',
73 Element::REQUIRED => true,
74 Element::WEIGHT => 'firstname:before',
75 Element::OPTIONS => array
76 (
77 null => '',
78 I18n\t('salutation.misses'),
79 I18n\t('salutation.miss'),
80 I18n\t('salutation.mister')
81 )
82 )
83 ),
84
85 #
86 # numbers
87 #
88
89 'number_work' => new Text
90 (
91 array
92 (
93 Form::LABEL => 'Travail',
94 Element::GROUP => 'numbers'
95 )
96 ),
97
98 'number_home' => new Text
99 (
100 array
101 (
102 Form::LABEL => 'Domicile',
103 Element::GROUP => 'numbers'
104 )
105 ),
106
107 'number_fax' => new Text
108 (
109 array
110 (
111 Form::LABEL => 'FAX',
112 Element::GROUP => 'numbers'
113 )
114 ),
115
116 'number_pager' => new Text
117 (
118 array
119 (
120 Form::LABEL => 'Pager',
121 Element::GROUP => 'numbers'
122 )
123 ),
124
125 'number_mobile' => new Text
126 (
127 array
128 (
129 Form::LABEL => 'Mobile',
130 Element::GROUP => 'numbers'
131 )
132 ),
133
134 #
135 # private
136 #
137
138 'street' => new Text
139 (
140 array
141 (
142 Form::LABEL => 'Rue',
143 Element::GROUP => 'private'
144 )
145 ),
146
147 'street_complement' => new Text
148 (
149 array
150 (
151 Element::GROUP => 'private'
152 )
153 ),
154
155 'city' => new Text
156 (
157 array
158 (
159 Form::LABEL => 'Ville/Localité',
160 Element::GROUP => 'private'
161 )
162 ),
163
164 'state' => new Text
165 (
166 array
167 (
168 Form::LABEL => 'État/Province',
169 Element::GROUP => 'private'
170 )
171 ),
172
173 'postalcode' => new Text
174 (
175 array
176 (
177 Form::LABEL => 'Code postal',
178 Element::GROUP => 'private'
179 )
180 ),
181
182 'country' => new Text
183 (
184 array
185 (
186 Form::LABEL => 'Pays',
187 Element::GROUP => 'private'
188 )
189 ),
190
191 'webpage' => new Text
192 (
193 array
194 (
195 Form::LABEL => 'Page Web',
196 Element::GROUP => 'private'
197 )
198 ),
199
200 'birthday' => new Date
201 (
202 array
203 (
204 Form::LABEL => 'Date de naissance',
205 Element::GROUP => 'private'
206 )
207 ),
208
209 #
210 # professional
211 #
212
213 'position' => new Text
214 (
215 array
216 (
217 Form::LABEL => 'Poste',
218 Element::GROUP => 'professional'
219 )
220 ),
221
222 'service' => new Text
223 (
224 array
225 (
226 Form::LABEL => 'Service',
227 Element::GROUP => 'professional'
228 )
229 ),
230
231 'company' => new Text
232 (
233 array
234 (
235 Form::LABEL => 'Société',
236 Element::GROUP => 'professional'
237 )
238 ),
239
240 'company_street' => new Text
241 (
242 array
243 (
244 Form::LABEL => 'Rue',
245 Element::GROUP => 'professional'
246 )
247 ),
248
249 'company_street_complement' => new Text
250 (
251 array
252 (
253 Element::GROUP => 'professional'
254 )
255 ),
256
257 'company_city' => new Text
258 (
259 array
260 (
261 Form::LABEL => 'Ville/Localité',
262 Element::GROUP => 'professional'
263 )
264 ),
265
266 'company_state' => new Text
267 (
268 array
269 (
270 Form::LABEL => 'État/Province',
271 Element::GROUP => 'professional'
272 )
273 ),
274
275 'company_postalcode' => new Text
276 (
277 array
278 (
279 Form::LABEL => 'Code postal',
280 Element::GROUP => 'professional'
281 )
282 ),
283
284 'company_country' => new Text
285 (
286 array
287 (
288 Form::LABEL => 'Pays',
289 Element::GROUP => 'professional'
290 )
291 ),
292
293 'company_webpage' => new Text
294 (
295 array
296 (
297 Form::LABEL => 'Page Web',
298 Element::GROUP => 'professional'
299 )
300 ),
301
302 #
303 # miscelaneous informations
304 #
305
306 'misc1' => new Text
307 (
308 array
309 (
310 Form::LABEL => 'Divers 1',
311 Element::GROUP => 'misc'
312 )
313 ),
314
315 'misc2' => new Text
316 (
317 array
318 (
319 Form::LABEL => 'Divers 2',
320 Element::GROUP => 'misc'
321 )
322 ),
323
324 'misc3' => new Text
325 (
326 array
327 (
328 Form::LABEL => 'Divers 3',
329 Element::GROUP => 'misc'
330 )
331 ),
332
333 'misc4' => new Text
334 (
335 array
336 (
337 Form::LABEL => 'Divers 4',
338 Element::GROUP => 'misc'
339 )
340 ),
341
342 'notes' => new RTEEditorElement
343 (
344 array
345 (
346 Form::LABEL => 'Notes',
347 Element::GROUP => 'misc'
348 )
349 ),
350
351 #
352 # photo
353 #
354
355 'photo' => new \Brickrouge\File
356 (
357 array
358 (
359 Form::LABEL => 'Photo',
360 Element::GROUP => 'attached',
361 // Element::FILE_WITH_LIMIT => 256,
362 // Element::FILE_WITH_REMINDER => true
363 )
364 )
365 )
366 );
367 }
368 }