initial commit
[namibia] / module / Repo / config / field.config.php
1 <?php
2 return array(
3
4                 /* Default parameters to use if no valid field type is requested */
5                 'Default' => array(
6                         'Validate' => array(
7                                 array(
8                                         'Class' => 'Regex',
9                                         'Options' => array(
10                                                 'pattern' => '/[a-zA-Z0-9]*/'
11                                         )
12                                 )
13                         ),
14                         'Options' => array(
15                                 'AllowEmpty' => false,
16                                 'AllowZero'  => false,
17                                 'AllowNull'  => false,
18                                 'Unique'     => false
19                         ),
20                         'Filter'  => array(),
21                         'Display' => array()
22                 ),
23
24                 /* Basic field types */
25                 'Array' => array(
26                         'Validate' => array(),
27                         'Options' => array(
28                                 'AllowEmpty' => true,
29                                 'AllowZero'  => false,
30                                 'AllowNull'  => false,
31                                 'Unique'     => false
32                         ),
33                         'Filter'  => array(),
34                         'Display' => array()
35                 ),
36
37                 'Date' => array(
38                         'Validate' => array(
39                                 array(
40                                         'Class' => 'Date',
41                                         'Options' => array(
42                                                 'format' => 'Y-m-d'
43                                         )
44                                 )
45                         ),
46                         'Options' => array(
47                                 'AllowEmpty' => false,
48                                 'AllowZero'  => false,
49                                 'AllowNull'  => false,
50                                 'Unique'     => false
51                         ),
52                         'Filter'  => array(),
53                         'Display' => array()
54                 ),
55
56                 'DateTime' => array(
57                         'Validate' => array(
58                                 array(
59                                         'Class' => 'Date',
60                                         'Options' => array(
61                                                 'format' => 'Y-m-d H:i:s'
62                                         )
63                                 )
64                         ),
65                         'Options' => array(
66                                 'AllowEmpty' => false,
67                                 'AllowZero'  => false,
68                                 'AllowNull'  => false,
69                                 'Unique'     => false
70                         ),
71                         'Filter'  => array(),
72                         'Display' => array()
73                 ),
74
75                 'Email' => array(
76                         'Validate' => array(
77                                 array(
78                                         'Class' => 'EmailAddress',
79                                         'Options' => array(
80                                                 'domain' => false
81                                         )
82                                 ),
83                                 array(
84                                         'Class' => 'StringLength',
85                                         'Options' => array(
86                                                 'max' => 255
87                                         )
88                                 )
89                         ),
90                         'Options' => array(
91                                 'AllowEmpty' => false,
92                                 'AllowZero'  => false,
93                                 'AllowNull'  => false,
94                                 'Unique'     => false
95                         ),
96                         'Filter'  => array(),
97                         'Display' => array()
98                 ),
99
100                 'Mobile' => array(
101                         'Validate' => array(
102                                 array(
103                                         'Class' => 'Regex',
104                                         'Options' => array(
105                                                 'pattern' => '/^\+[0-9][0-9][0-9]\d{8}/'
106                                         )
107                                 )
108                         ),
109                         'Options' => array(
110                                 'AllowEmpty' => false,
111                                 'AllowZero'  => false,
112                                 'AllowNull'  => false,
113                                 'Unique'     => false
114                         ),
115                         'Filter'  => array(),
116                         'Display' => array()
117                 ),
118
119                 /* Specialized field types */
120                 'Id' => array(
121                         'Validate' => array(
122                                 array(
123                                         'Class' => 'Between',
124                                         'Options' => array(
125                                                 'min' => 1,
126                         'max' => 999999999999
127                                         )
128                                 )
129                         ),
130                         'Options' => array(
131                                 'AllowEmpty' => false,
132                                 'AllowZero'  => false,
133                                 'AllowNull'  => false,
134                                 'Unique'     => false
135                         ),
136                         'Filter'  => array(),
137                         'Display' => array(
138                                 'type' => 'hidden'
139                         )
140                 ),
141
142                 'Boolean' => array(
143                         'Validate' => array(
144                                 array(
145                                         'Class' => 'InArray',
146                                         'Options' => array(
147                                                 'haystack' => array(0, 1, '0', '1', false, true)
148                                         )
149                                 )
150                         ),
151                         'Options' => array(
152                                 'AllowEmpty' => false,
153                                 'AllowZero'  => true,
154                                 'AllowNull'  => false,
155                                 'Unique'     => false
156                         ),
157                         'Filter'  => array(),
158                         'Display' => array(
159                                 'type' => 'hidden'
160                         )
161                 ),
162
163                 'Department' => array(
164                         'Validate' => array(
165                                 array(
166                                         'Class' => 'InArray',
167                                         'Options' => array(
168                                                 'haystack' => array('New', 'Used')
169                                         )
170                                 )
171                         ),
172                         'Options' => array(
173                                 'AllowEmpty' => false,
174                                 'AllowZero'  => false,
175                                 'AllowNull'  => false,
176                                 'Unique'     => false
177                         ),
178                         'Filter'  => array(),
179                         'Display' => array(
180                                 'type' => 'hidden'
181                         )
182                 ),
183
184                 'DealerType' => array(
185                         'Validate' => array(
186                                 array(
187                                         'Class' => 'InArray',
188                                         'Options' => array(
189                                                 'haystack' => array('Dealer', 'Wholesale / Trader', 'Trade Center')
190                                         )
191                                 )
192                         ),
193                         'Options' => array(
194                                 'AllowEmpty' => false,
195                                 'AllowZero'  => false,
196                                 'AllowNull'  => false,
197                                 'Unique'     => false
198                         ),
199                         'Filter'  => array(),
200                         'Display' => array(
201                                 'type' => 'hidden'
202                         )
203                 ),
204                 'DealerClientType' => array(
205                         'Validate' => array(
206                                 array(
207                                         'Class' => 'InArray',
208                                         'Options' => array(
209                                                 'haystack' => array('Buyer', 'Buyer & Seller')
210                                         )
211                                 )
212                         ),
213                         'Options' => array(
214                                 'AllowEmpty' => false,
215                                 'AllowZero'  => false,
216                                 'AllowNull'  => false,
217                                 'Unique'     => false
218                         ),
219                         'Filter'  => array(),
220                         'Display' => array(
221                                 'type' => 'hidden'
222                         )
223                 ),
224
225                 'CompanyType' => array(
226                         'Validate' => array(
227                                 array(
228                                         'Class' => 'InArray',
229                                         'Options' => array(
230                                                 'haystack' => array(
231                                                                 'Limited', 'PTY Limited',
232                                                                 'Closed Corporation', 'Sole Proprietor'
233                                                 )
234                                         )
235                                 )
236                         ),
237                         'Options' => array(
238                                 'AllowEmpty' => false,
239                                 'AllowZero'  => false,
240                                 'AllowNull'  => false,
241                                 'Unique'     => false
242                         ),
243                         'Filter'  => array(),
244                         'Display' => array(
245                                 'type' => 'hidden'
246                         )
247                 ),
248
249                 'Position' => array(
250                         'Validate' => array(
251                                 array(
252                                         'Class' => 'InArray',
253                                         'Options' => array(
254                                                 'haystack' => array('Manager', 'Valuator', 'Sales')
255                                         )
256                                 )
257                         ),
258                         'Options' => array(
259                                 'AllowEmpty' => false,
260                                 'AllowZero'  => false,
261                                 'AllowNull'  => false,
262                                 'Unique'     => false
263                         ),
264                         'Filter'  => array(),
265                         'Display' => array(
266                                 'type' => 'hidden'
267                         )
268                 ),
269
270                 'UserType' => array(
271                         'Validate' => array(
272                                 array(
273                                         'Class' => 'InArray',
274                                         'Options' => array(
275                                                 'haystack' => array('User', 'Administrator')
276                                         )
277                                 )
278                         ),
279                         'Options' => array(
280                                 'AllowEmpty' => false,
281                                 'AllowZero'  => false,
282                                 'AllowNull'  => false,
283                                 'Unique'     => false
284                         ),
285                         'Filter'  => array(),
286                         'Display' => array(
287                                 'type' => 'hidden'
288                         )
289                 ),
290
291                 'ZaId' => array(
292                         'Validate' => array(
293                                 array(
294                                         'Class' => 'Digits',
295                                         'Options' => array()
296                                 ),
297                                 array(
298                                         'Class' => 'StringLength',
299                                         'Options' => array(
300                                                 'min' => 13,
301                                                 'max' => 13
302                                         )
303                                 )
304                         ),
305                         'Options' => array(
306                                 'AllowEmpty' => true,
307                                 'AllowZero'  => false,
308                                 'AllowNull'  => false,
309                                 'Unique'     => false
310                         ),
311                         'Filter'  => array(),
312                         'Display' => array()
313                 ),
314
315                 'Username' => array(
316                         'Validate' => array(
317                                 array(
318                                         'Class' => 'Regex',
319                                         'Options' => array(
320                                                 'pattern' => '/^(?=.{1,32}$)[a-zA-Z][a-zA-Z0-9]*(?: [a-zA-Z0-9]+)*$/'
321                                         )
322                                 ),
323                                 array(
324                                         'Class' => 'StringLength',
325                                         'Options' => array(
326                                                 'min' => 8,
327                                                 'max' => 32
328                                         )
329                                 )
330                         ),
331                         'Options' => array(
332                                 'AllowEmpty' => false,
333                                 'AllowZero'  => false,
334                                 'AllowNull'  => false,
335                                 'Unique'     => true
336                         ),
337                         'Filter'  => array(),
338                         'Display' => array()
339                 ),
340
341                 'Password' => array(
342                         'Validate' => array(
343                                 array(
344                                         'Class' => 'Regex',
345                                         'Options' => array(
346                                                 'pattern' => '/[a-zA-Z0-9]*/'
347                                         )
348                                 ),
349                                 array(
350                                         'Class' => 'StringLength',
351                                         'Options' => array(
352                                                 'min' => 8
353                                         )
354                                 )
355                         ),
356                         'Options' => array(
357                                 'AllowEmpty' => false,
358                                 'AllowZero'  => false,
359                                 'AllowNull'  => false,
360                                 'Unique'     => false
361                         ),
362                         'Filter'  => array(),
363                         'Display' => array(
364                                 'type' => 'password'
365                         )
366                 ),
367
368                 'IdNumber' => array(
369                         'Validate' => array(
370                                 array(
371                                         'Class' => 'Digits',
372                                         'Options' => array()
373                                 ),
374                                 array(
375                                         'Class' => 'StringLength',
376                                         'Options' => array(
377                                                 'min' => 13,
378                                                 'max' => 13
379                                         )
380                                 )
381                         ),
382                         'Options' => array(
383                                 'AllowEmpty' => true,
384                                 'AllowZero'  => false,
385                                 'AllowNull'  => false,
386                                 'Unique'     => false
387                         ),
388                         'Filter'  => array(),
389                         'Display' => array()
390                 ),
391
392                 'Name' => array(
393                         'Validate' => array(
394                                 array(
395                                         'Class' => 'Regex',
396                                         'Options' => array(
397                                                 'pattern' => '/[a-zA-Z0-9]*/'
398                                         )
399                                 ),
400                                 array(
401                                         'Class' => 'StringLength',
402                                         'Options' => array(
403                                                 'max' => 100
404                                         )
405                                 )
406                         ),
407                         'Options' => array(
408                                 'AllowEmpty' => false,
409                                 'AllowZero'  => false,
410                                 'AllowNull'  => false,
411                                 'Unique'     => false
412                         ),
413                         'Filter'  => array(),
414                         'Display' => array()
415                 ),
416
417                 'PersonName' => array(
418                         'Validate' => array(
419                                 array(
420                                         'Class' => 'Regex',
421                                         'Options' => array(
422                                                 'pattern' => '/[a-zA-Z]*/'
423                                         )
424                                 ),
425                                 array(
426                                         'Class' => 'StringLength',
427                                         'Options' => array(
428                                                 'max' => 150
429                                         )
430                                 )
431                         ),
432                         'Options' => array(
433                                 'AllowEmpty' => false,
434                                 'AllowZero'  => false,
435                                 'AllowNull'  => false,
436                                 'Unique'     => false
437                         ),
438                         'Filter'  => array(),
439                         'Display' => array()
440                 ),
441
442                 'MonthDigit' => array(
443                         'Validate' => array(
444                                 array(
445                                         'Class' => 'Digits',
446                                         'Options' => array()
447                                 ),
448                                 array(
449                                         'Class' => 'StringLength',
450                                         'Options' => array(
451                                                 'min' => 1,
452                                                 'max' => 12
453                                         )
454                                 )
455                         ),
456                         'Options' => array(
457                                 'AllowEmpty' => false,
458                                 'AllowZero'  => false,
459                                 'AllowNull'  => false,
460                                 'Unique'     => false
461                         ),
462                         'Filter'  => array(),
463                         'Display' => array()
464                 ),
465
466                 'Collection' => array(
467                         'Validate' => array(),
468                         'Options' => array(
469                                 'AllowEmpty' => false,
470                                 'AllowZero'  => false,
471                                 'AllowNull'  => false,
472                                 'Unique'     => false
473                         ),
474                         'Filter'  => array(),
475                         'Display' => array()
476                 ),
477
478                 'Decimal' => array(
479                         'Validate' => array(
480                                 array(
481                                         'I18nClass' => 'IsFloat',
482                                         'Options'   => array()
483                                 )
484                         ),
485                         'Options' => array(
486                                 'AllowEmpty' => false,
487                                 'AllowZero'  => true,
488                                 'AllowNull'  => false,
489                                 'Unique'     => false
490                         ),
491                         'Filter'  => array(),
492                         'Display' => array()
493                 ),
494
495                 'Integer' => array(
496                         'Validate' => array(
497                                 array(
498                                         'Class' => 'Digits',
499                                         'Options' => array()
500                                 )
501                         ),
502                         'Options' => array(
503                                 'AllowEmpty' => false,
504                                 'AllowZero'  => true,
505                                 'AllowNull'  => false,
506                                 'Unique'     => false
507                         ),
508                         'Filter'  => array(),
509                         'Display' => array()
510                 ),
511
512                 'Digit3' => array(
513                         'Validate' => array(
514                                 array(
515                                         'Class' => 'Digits',
516                                         'Options' => array()
517                                 ),
518                                 array(
519                                         'Class' => 'StringLength',
520                                         'Options' => array(
521                                                 'max' => 3
522                                         )
523                                 )
524                         ),
525                         'Options' => array(
526                                 'AllowEmpty' => false,
527                                 'AllowZero'  => true,
528                                 'AllowNull'  => false,
529                                 'Unique'     => false
530                         ),
531                         'Filter'  => array(),
532                         'Display' => array()
533                 ),
534
535                 'Digit4' => array(
536                         'Validate' => array(
537                                 array(
538                                         'Class' => 'Digits',
539                                         'Options' => array()
540                                 ),
541                                 array(
542                                         'Class' => 'StringLength',
543                                         'Options' => array(
544                                                 'max' => 4
545                                         )
546                                 )
547                         ),
548                         'Options' => array(
549                                 'AllowEmpty' => false,
550                                 'AllowZero'  => true,
551                                 'AllowNull'  => false,
552                                 'Unique'     => false
553                         ),
554                         'Filter'  => array(),
555                         'Display' => array()
556                 ),
557
558                 'Digit10' => array(
559                         'Validate' => array(
560                                 array(
561                                         'Class' => 'Digits',
562                                         'Options' => array()
563                                 ),
564                                 array(
565                                         'Class' => 'StringLength',
566                                         'Options' => array(
567                                                 'max' => 10
568                                         )
569                                 )
570                         ),
571                         'Options' => array(
572                                 'AllowEmpty' => false,
573                                 'AllowZero'  => true,
574                                 'AllowNull'  => false,
575                                 'Unique'     => false
576                         ),
577                         'Filter'  => array(),
578                         'Display' => array()
579                 ),
580
581                 'String2' => array(
582                         'Validate' => array(
583                                 array(
584                                         'Class' => 'StringLength',
585                                         'Options' => array(
586                                                 'max' => 2
587                                         )
588                                 )
589                         ),
590                         'Options' => array(
591                                 'AllowEmpty' => false,
592                                 'AllowZero'  => false,
593                                 'AllowNull'  => false,
594                                 'Unique'     => false
595                         ),
596                         'Filter'  => array(),
597                         'Display' => array()
598                 ),
599
600                 'String10' => array(
601                         'Validate' => array(
602                                 array(
603                                         'Class' => 'StringLength',
604                                         'Options' => array(
605                                                 'max' => 10
606                                         )
607                                 )
608                         ),
609                         'Options' => array(
610                                 'AllowEmpty' => false,
611                                 'AllowZero'  => false,
612                                 'AllowNull'  => false,
613                                 'Unique'     => false
614                         ),
615                         'Filter'  => array(),
616                         'Display' => array()
617                 ),
618
619                 'String12' => array(
620                         'Validate' => array(
621                                 array(
622                                         'Class' => 'StringLength',
623                                         'Options' => array(
624                                                 'max' => 12
625                                         )
626                                 )
627                         ),
628                         'Options' => array(
629                                 'AllowEmpty' => false,
630                                 'AllowZero'  => false,
631                                 'AllowNull'  => false,
632                                 'Unique'     => false
633                         ),
634                         'Filter'  => array(),
635                         'Display' => array()
636                 ),
637
638                 'String15' => array(
639                         'Validate' => array(
640                                 array(
641                                         'Class' => 'StringLength',
642                                         'Options' => array(
643                                                 'max' => 15
644                                         )
645                                 )
646                         ),
647                         'Options' => array(
648                                 'AllowEmpty' => false,
649                                 'AllowZero'  => false,
650                                 'AllowNull'  => false,
651                                 'Unique'     => false
652                         ),
653                         'Filter'  => array(),
654                         'Display' => array()
655                 ),
656
657                 'String20' => array(
658                         'Validate' => array(
659                                 array(
660                                         'Class' => 'StringLength',
661                                         'Options' => array(
662                                                 'max' => 20
663                                         )
664                                 )
665                         ),
666                         'Options' => array(
667                                 'AllowEmpty' => false,
668                                 'AllowZero'  => false,
669                                 'AllowNull'  => false,
670                                 'Unique'     => false
671                         ),
672                         'Filter'  => array(),
673                         'Display' => array()
674                 ),
675
676                 'String25' => array(
677                         'Validate' => array(
678                                 array(
679                                         'Class' => 'StringLength',
680                                         'Options' => array(
681                                                 'max' => 25
682                                         )
683                                 )
684                         ),
685                         'Options' => array(
686                                 'AllowEmpty' => false,
687                                 'AllowZero'  => false,
688                                 'AllowNull'  => false,
689                                 'Unique'     => false
690                         ),
691                         'Filter'  => array(),
692                         'Display' => array()
693                 ),
694
695                 'String40' => array(
696                         'Validate' => array(
697                                 array(
698                                         'Class' => 'StringLength',
699                                         'Options' => array(
700                                                 'max' => 40
701                                         )
702                                 )
703                         ),
704                         'Options' => array(
705                                 'AllowEmpty' => false,
706                                 'AllowZero'  => false,
707                                 'AllowNull'  => false,
708                                 'Unique'     => false
709                         ),
710                         'Filter'  => array(),
711                         'Display' => array()
712                 ),
713
714                 'String42' => array(
715                         'Validate' => array(
716                                 array(
717                                         'Class' => 'StringLength',
718                                         'Options' => array(
719                                                 'max' => 42
720                                         )
721                                 )
722                         ),
723                         'Options' => array(
724                                 'AllowEmpty' => false,
725                                 'AllowZero'  => false,
726                                 'AllowNull'  => false,
727                                 'Unique'     => false
728                         ),
729                         'Filter'  => array(),
730                         'Display' => array()
731                 ),
732
733                 'String50' => array(
734                         'Validate' => array(
735                                 array(
736                                         'Class' => 'StringLength',
737                                         'Options' => array(
738                                                 'max' => 50
739                                         )
740                                 )
741                         ),
742                         'Options' => array(
743                                 'AllowEmpty' => false,
744                                 'AllowZero'  => false,
745                                 'AllowNull'  => false,
746                                 'Unique'     => false
747                         ),
748                         'Filter'  => array(),
749                         'Display' => array()
750                 ),
751
752                 'String64' => array(
753                         'Validate' => array(
754                                 array(
755                                         'Class' => 'StringLength',
756                                         'Options' => array(
757                                                 'max' => 64
758                                         )
759                                 )
760                         ),
761                         'Options' => array(
762                                 'AllowEmpty' => false,
763                                 'AllowZero'  => false,
764                                 'AllowNull'  => false,
765                                 'Unique'     => false
766                         ),
767                         'Filter'  => array(),
768                         'Display' => array()
769                 ),
770
771                 'String75' => array(
772                         'Validate' => array(
773                                 array(
774                                         'Class' => 'StringLength',
775                                         'Options' => array(
776                                                 'max' => 75
777                                         )
778                                 )
779                         ),
780                         'Options' => array(
781                                 'AllowEmpty' => false,
782                                 'AllowZero'  => false,
783                                 'AllowNull'  => false,
784                                 'Unique'     => false
785                         ),
786                         'Filter'  => array(),
787                         'Display' => array()
788                 ),
789
790                 'String100' => array(
791                         'Validate' => array(
792                                 array(
793                                         'Class' => 'StringLength',
794                                         'Options' => array(
795                                                 'max' => 100
796                                         )
797                                 )
798                         ),
799                         'Options' => array(
800                                 'AllowEmpty' => false,
801                                 'AllowZero'  => false,
802                                 'AllowNull'  => false,
803                                 'Unique'     => false
804                         ),
805                         'Filter' => array(),
806                         'Display' => array()
807                 ),
808
809                 'String150' => array(
810                         'Validate' => array(
811                                 array(
812                                         'Class' => 'StringLength',
813                                         'Options' => array(
814                                                 'max' => 150
815                                         )
816                                 )
817                         ),
818                         'Options' => array(
819                                 'AllowEmpty' => false,
820                                 'AllowZero'  => false,
821                                 'AllowNull'  => false,
822                                 'Unique'     => false
823                         ),
824                         'Filter' => array(),
825                         'Display' => array()
826                 ),
827
828                 'String250' => array(
829                         'Validate' => array(
830                                 array(
831                                         'Class' => 'StringLength',
832                                         'Options' => array(
833                                                 'max' => 250
834                                         )
835                                 )
836                         ),
837                         'Options' => array(
838                                 'AllowEmpty' => false,
839                                 'AllowZero'  => false,
840                                 'AllowNull'  => false,
841                                 'Unique'     => false
842                         ),
843                         'Filter' => array(),
844                         'Display' => array()
845                 ),
846
847                 'String500' => array(
848                         'Validate' => array(
849                                 array(
850                                         'Class' => 'StringLength',
851                                         'Options' => array(
852                                                 'max' => 500
853                                         )
854                                 )
855                         ),
856                         'Options' => array(
857                                 'AllowEmpty' => false,
858                                 'AllowZero'  => false,
859                                 'AllowNull'  => false,
860                                 'Unique'     => false
861                         ),
862                         'Filter' => array(),
863                         'Display' => array()
864                 ),
865
866                 'LongText' => array(
867                         'Validate' => array(
868                                 array(
869                                         'Class' => 'StringLength',
870                                         'Options' => array(
871                                                 'max' => 65000
872                                         )
873                                 )
874                         ),
875                         'Options' => array(
876                                 'AllowEmpty' => false,
877                                 'AllowZero'  => false,
878                                 'AllowNull'  => false,
879                                 'Unique'     => false
880                         ),
881                         'Filter' => array(),
882                         'Display' => array()
883                 ),
884
885 );