Deployed 2cc82d33 to 6.0 with MkDocs 1.3.1 and mike 1.1.2
[GitHub/WoltLab/woltlab.github.io.git] / 6.0 / php / api / form_builder / form_fields / index.html
1
2 <!doctype html>
3 <html lang="en" class="no-js">
4 <head>
5
6 <meta charset="utf-8">
7 <meta name="viewport" content="width=device-width,initial-scale=1">
8
9
10
11 <link rel="canonical" href="https://docs.woltlab.com/6.0/php/api/form_builder/form_fields/">
12
13 <link rel="icon" href="../../../../assets/default.favicon.ico">
14 <meta name="generator" content="mkdocs-1.3.1, mkdocs-material-8.3.9">
15
16
17
18 <title>Fields - WoltLab Suite Documentation</title>
19
20
21
22 <link rel="stylesheet" href="../../../../assets/stylesheets/main.1d29e8d0.min.css">
23
24
25 <link rel="stylesheet" href="../../../../assets/stylesheets/palette.cbb835fc.min.css">
26
27
28
29 <meta name="theme-color" content="#009485">
30
31
32
33
34
35
36
37
38
39 <link rel="stylesheet" href="../../../../stylesheets/extra.css">
40
41 <script>__md_scope=new URL("../../../..",location),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
42
43
44
45
46
47 </head>
48
49
50
51
52
53
54
55 <body dir="ltr" data-md-color-scheme="" data-md-color-primary="teal" data-md-color-accent="">
56
57
58
59 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
60 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
61 <label class="md-overlay" for="__drawer"></label>
62 <div data-md-component="skip">
63
64
65 <a href="#form-builder-fields" class="md-skip">
66 Skip to content
67 </a>
68
69 </div>
70 <div data-md-component="announce">
71
72 <aside class="md-banner">
73 <div class="md-banner__inner md-grid md-typeset">
74
75 <a href="https://www.woltlab.com">Back to <strong>woltlab.com</strong></a>
76
77 </div>
78 </aside>
79
80 </div>
81
82 <div data-md-component="outdated" hidden>
83 <aside class="md-banner md-banner--warning">
84
85 </aside>
86 </div>
87
88
89
90
91 <header class="md-header" data-md-component="header">
92 <nav class="md-header__inner md-grid" aria-label="Header">
93 <a href="../../../.." title="WoltLab Suite Documentation" class="md-header__button md-logo" aria-label="WoltLab Suite Documentation" data-md-component="logo">
94
95 <img src="../../../../assets/logo.png" alt="logo">
96
97 </a>
98 <label class="md-header__button md-icon" for="__drawer">
99 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
100 </label>
101 <div class="md-header__title" data-md-component="header-title">
102 <div class="md-header__ellipsis">
103 <div class="md-header__topic">
104 <span class="md-ellipsis">
105 WoltLab Suite Documentation
106 </span>
107 </div>
108 <div class="md-header__topic" data-md-component="header-topic">
109 <span class="md-ellipsis">
110
111 Fields
112
113 </span>
114 </div>
115 </div>
116 </div>
117
118
119
120 <label class="md-header__button md-icon" for="__search">
121 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
122 </label>
123 <div class="md-search" data-md-component="search" role="dialog">
124 <label class="md-search__overlay" for="__search"></label>
125 <div class="md-search__inner" role="search">
126 <form class="md-search__form" name="search">
127 <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
128 <label class="md-search__icon md-icon" for="__search">
129 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
130 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
131 </label>
132 <nav class="md-search__options" aria-label="Search">
133
134 <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
135 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
136 </button>
137 </nav>
138
139 </form>
140 <div class="md-search__output">
141 <div class="md-search__scrollwrap" data-md-scrollfix>
142 <div class="md-search-result" data-md-component="search-result">
143 <div class="md-search-result__meta">
144 Initializing search
145 </div>
146 <ol class="md-search-result__list"></ol>
147 </div>
148 </div>
149 </div>
150 </div>
151 </div>
152
153
154 <div class="md-header__source">
155 <a href="https://github.com/WoltLab/docs.woltlab.com/" title="Go to repository" class="md-source" data-md-component="source">
156 <div class="md-source__icon md-icon">
157
158 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
159 </div>
160 <div class="md-source__repository">
161 GitHub
162 </div>
163 </a>
164 </div>
165
166 </nav>
167
168 </header>
169
170 <div class="md-container" data-md-component="container">
171
172
173
174
175
176
177 <main class="md-main" data-md-component="main">
178 <div class="md-main__inner md-grid">
179
180
181
182 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
183 <div class="md-sidebar__scrollwrap">
184 <div class="md-sidebar__inner">
185
186
187
188 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
189 <label class="md-nav__title" for="__drawer">
190 <a href="../../../.." title="WoltLab Suite Documentation" class="md-nav__button md-logo" aria-label="WoltLab Suite Documentation" data-md-component="logo">
191
192 <img src="../../../../assets/logo.png" alt="logo">
193
194 </a>
195 WoltLab Suite Documentation
196 </label>
197
198 <div class="md-nav__source">
199 <a href="https://github.com/WoltLab/docs.woltlab.com/" title="Go to repository" class="md-source" data-md-component="source">
200 <div class="md-source__icon md-icon">
201
202 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
203 </div>
204 <div class="md-source__repository">
205 GitHub
206 </div>
207 </a>
208 </div>
209
210 <ul class="md-nav__list" data-md-scrollfix>
211
212
213
214
215
216
217
218
219 <li class="md-nav__item">
220 <a href="../../../../getting-started/" class="md-nav__link">
221 Getting Started
222 </a>
223 </li>
224
225
226
227
228
229
230
231
232
233
234
235
236
237 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
238
239
240 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" checked>
241
242
243
244
245 <label class="md-nav__link" for="__nav_2">
246 PHP API
247 <span class="md-nav__icon md-icon"></span>
248 </label>
249
250 <nav class="md-nav" aria-label="PHP API" data-md-level="1">
251 <label class="md-nav__title" for="__nav_2">
252 <span class="md-nav__icon md-icon"></span>
253 PHP API
254 </label>
255 <ul class="md-nav__list" data-md-scrollfix>
256
257
258
259
260
261
262 <li class="md-nav__item">
263 <a href="../../../pages/" class="md-nav__link">
264 Pages
265 </a>
266 </li>
267
268
269
270
271
272
273
274
275
276 <li class="md-nav__item">
277 <a href="../../../database-objects/" class="md-nav__link">
278 Database Objects
279 </a>
280 </li>
281
282
283
284
285
286
287
288
289
290 <li class="md-nav__item">
291 <a href="../../../database-access/" class="md-nav__link">
292 Database Access
293 </a>
294 </li>
295
296
297
298
299
300
301
302
303
304 <li class="md-nav__item">
305 <a href="../../../exceptions/" class="md-nav__link">
306 Exceptions
307 </a>
308 </li>
309
310
311
312
313
314
315
316
317
318
319
320
321 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
322
323
324 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" checked>
325
326
327
328
329 <label class="md-nav__link" for="__nav_2_5">
330 API
331 <span class="md-nav__icon md-icon"></span>
332 </label>
333
334 <nav class="md-nav" aria-label="API" data-md-level="2">
335 <label class="md-nav__title" for="__nav_2_5">
336 <span class="md-nav__icon md-icon"></span>
337 API
338 </label>
339 <ul class="md-nav__list" data-md-scrollfix>
340
341
342
343
344
345
346
347 <li class="md-nav__item md-nav__item--nested">
348
349
350 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5_1" type="checkbox" id="__nav_2_5_1" >
351
352
353
354
355 <label class="md-nav__link" for="__nav_2_5_1">
356 Caches
357 <span class="md-nav__icon md-icon"></span>
358 </label>
359
360 <nav class="md-nav" aria-label="Caches" data-md-level="3">
361 <label class="md-nav__title" for="__nav_2_5_1">
362 <span class="md-nav__icon md-icon"></span>
363 Caches
364 </label>
365 <ul class="md-nav__list" data-md-scrollfix>
366
367
368
369
370
371
372 <li class="md-nav__item">
373 <a href="../../caches/" class="md-nav__link">
374 Overview
375 </a>
376 </li>
377
378
379
380
381
382
383
384
385
386 <li class="md-nav__item">
387 <a href="../../caches_persistent-caches/" class="md-nav__link">
388 Persistent Caches
389 </a>
390 </li>
391
392
393
394
395
396
397
398
399
400 <li class="md-nav__item">
401 <a href="../../caches_runtime-caches/" class="md-nav__link">
402 Runtime Caches
403 </a>
404 </li>
405
406
407
408
409 </ul>
410 </nav>
411 </li>
412
413
414
415
416
417
418
419
420
421 <li class="md-nav__item">
422 <a href="../../comments/" class="md-nav__link">
423 Comments
424 </a>
425 </li>
426
427
428
429
430
431
432
433
434
435 <li class="md-nav__item">
436 <a href="../../cronjobs/" class="md-nav__link">
437 Cronjobs
438 </a>
439 </li>
440
441
442
443
444
445
446
447
448
449 <li class="md-nav__item">
450 <a href="../../events/" class="md-nav__link">
451 Events
452 </a>
453 </li>
454
455
456
457
458
459
460
461
462
463
464
465
466 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
467
468
469 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5_5" type="checkbox" id="__nav_2_5_5" checked>
470
471
472
473
474 <label class="md-nav__link" for="__nav_2_5_5">
475 Form Builder
476 <span class="md-nav__icon md-icon"></span>
477 </label>
478
479 <nav class="md-nav" aria-label="Form Builder" data-md-level="3">
480 <label class="md-nav__title" for="__nav_2_5_5">
481 <span class="md-nav__icon md-icon"></span>
482 Form Builder
483 </label>
484 <ul class="md-nav__list" data-md-scrollfix>
485
486
487
488
489
490
491 <li class="md-nav__item">
492 <a href="../overview/" class="md-nav__link">
493 Overview
494 </a>
495 </li>
496
497
498
499
500
501
502
503
504
505 <li class="md-nav__item">
506 <a href="../structure/" class="md-nav__link">
507 Structure
508 </a>
509 </li>
510
511
512
513
514
515
516
517
518
519
520
521 <li class="md-nav__item md-nav__item--active">
522
523 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
524
525
526
527
528
529 <label class="md-nav__link md-nav__link--active" for="__toc">
530 Fields
531 <span class="md-nav__icon md-icon"></span>
532 </label>
533
534 <a href="./" class="md-nav__link md-nav__link--active">
535 Fields
536 </a>
537
538
539
540 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
541
542
543
544
545
546
547 <label class="md-nav__title" for="__toc">
548 <span class="md-nav__icon md-icon"></span>
549 Table of contents
550 </label>
551 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
552
553 <li class="md-nav__item">
554 <a href="#abstract-form-fields" class="md-nav__link">
555 Abstract Form Fields
556 </a>
557
558 <nav class="md-nav" aria-label="Abstract Form Fields">
559 <ul class="md-nav__list">
560
561 <li class="md-nav__item">
562 <a href="#abstractformfield" class="md-nav__link">
563 AbstractFormField
564 </a>
565
566 </li>
567
568 <li class="md-nav__item">
569 <a href="#abstractnumericformfield" class="md-nav__link">
570 AbstractNumericFormField
571 </a>
572
573 </li>
574
575 <li class="md-nav__item">
576 <a href="#abstractformfielddecorator" class="md-nav__link">
577 AbstractFormFieldDecorator
578 </a>
579
580 </li>
581
582 </ul>
583 </nav>
584
585 </li>
586
587 <li class="md-nav__item">
588 <a href="#general-form-fields" class="md-nav__link">
589 General Form Fields
590 </a>
591
592 <nav class="md-nav" aria-label="General Form Fields">
593 <ul class="md-nav__list">
594
595 <li class="md-nav__item">
596 <a href="#booleanformfield" class="md-nav__link">
597 BooleanFormField
598 </a>
599
600 </li>
601
602 <li class="md-nav__item">
603 <a href="#checkboxformfield" class="md-nav__link">
604 CheckboxFormField
605 </a>
606
607 </li>
608
609 <li class="md-nav__item">
610 <a href="#classnameformfield" class="md-nav__link">
611 ClassNameFormField
612 </a>
613
614 </li>
615
616 <li class="md-nav__item">
617 <a href="#dateformfield" class="md-nav__link">
618 DateFormField
619 </a>
620
621 </li>
622
623 <li class="md-nav__item">
624 <a href="#descriptionformfield" class="md-nav__link">
625 DescriptionFormField
626 </a>
627
628 </li>
629
630 <li class="md-nav__item">
631 <a href="#emailformfield" class="md-nav__link">
632 EmailFormField
633 </a>
634
635 </li>
636
637 <li class="md-nav__item">
638 <a href="#floatformfield" class="md-nav__link">
639 FloatFormField
640 </a>
641
642 </li>
643
644 <li class="md-nav__item">
645 <a href="#iconformfield" class="md-nav__link">
646 IconFormField
647 </a>
648
649 </li>
650
651 <li class="md-nav__item">
652 <a href="#integerformfield" class="md-nav__link">
653 IntegerFormField
654 </a>
655
656 </li>
657
658 <li class="md-nav__item">
659 <a href="#isdisabledformfield" class="md-nav__link">
660 IsDisabledFormField
661 </a>
662
663 </li>
664
665 <li class="md-nav__item">
666 <a href="#itemlistformfield" class="md-nav__link">
667 ItemListFormField
668 </a>
669
670 </li>
671
672 <li class="md-nav__item">
673 <a href="#multilinetextformfield" class="md-nav__link">
674 MultilineTextFormField
675 </a>
676
677 </li>
678
679 <li class="md-nav__item">
680 <a href="#multipleselectionformfield" class="md-nav__link">
681 MultipleSelectionFormField
682 </a>
683
684 </li>
685
686 <li class="md-nav__item">
687 <a href="#radiobuttonformfield" class="md-nav__link">
688 RadioButtonFormField
689 </a>
690
691 </li>
692
693 <li class="md-nav__item">
694 <a href="#ratingformfield" class="md-nav__link">
695 RatingFormField
696 </a>
697
698 </li>
699
700 <li class="md-nav__item">
701 <a href="#showorderformfield" class="md-nav__link">
702 ShowOrderFormField
703 </a>
704
705 </li>
706
707 <li class="md-nav__item">
708 <a href="#singleselectionformfield" class="md-nav__link">
709 SingleSelectionFormField
710 </a>
711
712 </li>
713
714 <li class="md-nav__item">
715 <a href="#sortorderformfield" class="md-nav__link">
716 SortOrderFormField
717 </a>
718
719 </li>
720
721 <li class="md-nav__item">
722 <a href="#textformfield" class="md-nav__link">
723 TextFormField
724 </a>
725
726 </li>
727
728 <li class="md-nav__item">
729 <a href="#titleformfield" class="md-nav__link">
730 TitleFormField
731 </a>
732
733 </li>
734
735 <li class="md-nav__item">
736 <a href="#urlformfield" class="md-nav__link">
737 UrlFormField
738 </a>
739
740 </li>
741
742 </ul>
743 </nav>
744
745 </li>
746
747 <li class="md-nav__item">
748 <a href="#specific-fields" class="md-nav__link">
749 Specific Fields
750 </a>
751
752 <nav class="md-nav" aria-label="Specific Fields">
753 <ul class="md-nav__list">
754
755 <li class="md-nav__item">
756 <a href="#aclformfield" class="md-nav__link">
757 AclFormField
758 </a>
759
760 </li>
761
762 <li class="md-nav__item">
763 <a href="#buttonformfield" class="md-nav__link">
764 ButtonFormField
765 </a>
766
767 </li>
768
769 <li class="md-nav__item">
770 <a href="#captchaformfield" class="md-nav__link">
771 CaptchaFormField
772 </a>
773
774 </li>
775
776 <li class="md-nav__item">
777 <a href="#colorformfield" class="md-nav__link">
778 ColorFormField
779 </a>
780
781 </li>
782
783 <li class="md-nav__item">
784 <a href="#contentlanguageformfield" class="md-nav__link">
785 ContentLanguageFormField
786 </a>
787
788 </li>
789
790 <li class="md-nav__item">
791 <a href="#labelformfield" class="md-nav__link">
792 LabelFormField
793 </a>
794
795 </li>
796
797 <li class="md-nav__item">
798 <a href="#optionformfield" class="md-nav__link">
799 OptionFormField
800 </a>
801
802 </li>
803
804 <li class="md-nav__item">
805 <a href="#simpleaclformfield" class="md-nav__link">
806 SimpleAclFormField
807 </a>
808
809 </li>
810
811 <li class="md-nav__item">
812 <a href="#singlemediaselectionformfield" class="md-nav__link">
813 SingleMediaSelectionFormField
814 </a>
815
816 </li>
817
818 <li class="md-nav__item">
819 <a href="#tagformfield" class="md-nav__link">
820 TagFormField
821 </a>
822
823 </li>
824
825 <li class="md-nav__item">
826 <a href="#uploadformfield" class="md-nav__link">
827 UploadFormField
828 </a>
829
830 <nav class="md-nav" aria-label="UploadFormField">
831 <ul class="md-nav__list">
832
833 <li class="md-nav__item">
834 <a href="#provide-value-from-database-object" class="md-nav__link">
835 Provide value from database object
836 </a>
837
838 </li>
839
840 <li class="md-nav__item">
841 <a href="#process-files" class="md-nav__link">
842 Process files
843 </a>
844
845 </li>
846
847 </ul>
848 </nav>
849
850 </li>
851
852 <li class="md-nav__item">
853 <a href="#userformfield" class="md-nav__link">
854 UserFormField
855 </a>
856
857 </li>
858
859 <li class="md-nav__item">
860 <a href="#userpasswordfield" class="md-nav__link">
861 UserPasswordField
862 </a>
863
864 </li>
865
866 <li class="md-nav__item">
867 <a href="#usergroupoptionformfield" class="md-nav__link">
868 UserGroupOptionFormField
869 </a>
870
871 </li>
872
873 <li class="md-nav__item">
874 <a href="#usernameformfield" class="md-nav__link">
875 UsernameFormField
876 </a>
877
878 </li>
879
880 </ul>
881 </nav>
882
883 </li>
884
885 <li class="md-nav__item">
886 <a href="#wysiwyg-form-container" class="md-nav__link">
887 Wysiwyg form container
888 </a>
889
890 <nav class="md-nav" aria-label="Wysiwyg form container">
891 <ul class="md-nav__list">
892
893 <li class="md-nav__item">
894 <a href="#wysiwygattachmentformfield" class="md-nav__link">
895 WysiwygAttachmentFormField
896 </a>
897
898 </li>
899
900 <li class="md-nav__item">
901 <a href="#wysiwygpollformcontainer" class="md-nav__link">
902 WysiwygPollFormContainer
903 </a>
904
905 </li>
906
907 <li class="md-nav__item">
908 <a href="#wysiwygsmileyformcontainer" class="md-nav__link">
909 WysiwygSmileyFormContainer
910 </a>
911
912 <nav class="md-nav" aria-label="WysiwygSmileyFormContainer">
913 <ul class="md-nav__list">
914
915 <li class="md-nav__item">
916 <a href="#wysiwygsmileyformnode" class="md-nav__link">
917 WysiwygSmileyFormNode
918 </a>
919
920 </li>
921
922 </ul>
923 </nav>
924
925 </li>
926
927 <li class="md-nav__item">
928 <a href="#example" class="md-nav__link">
929 Example
930 </a>
931
932 </li>
933
934 <li class="md-nav__item">
935 <a href="#wysiwygformfield" class="md-nav__link">
936 WysiwygFormField
937 </a>
938
939 </li>
940
941 <li class="md-nav__item">
942 <a href="#twysiwygformnode" class="md-nav__link">
943 TWysiwygFormNode
944 </a>
945
946 </li>
947
948 </ul>
949 </nav>
950
951 </li>
952
953 <li class="md-nav__item">
954 <a href="#application-specific-form-fields" class="md-nav__link">
955 Application-Specific Form Fields
956 </a>
957
958 <nav class="md-nav" aria-label="Application-Specific Form Fields">
959 <ul class="md-nav__list">
960
961 <li class="md-nav__item">
962 <a href="#woltlab-suite-forum" class="md-nav__link">
963 WoltLab Suite Forum
964 </a>
965
966 <nav class="md-nav" aria-label="WoltLab Suite Forum">
967 <ul class="md-nav__list">
968
969 <li class="md-nav__item">
970 <a href="#multipleboardselectionformfield" class="md-nav__link">
971 MultipleBoardSelectionFormField
972 </a>
973
974 </li>
975
976 </ul>
977 </nav>
978
979 </li>
980
981 </ul>
982 </nav>
983
984 </li>
985
986 <li class="md-nav__item">
987 <a href="#single-use-form-fields" class="md-nav__link">
988 Single-Use Form Fields
989 </a>
990
991 <nav class="md-nav" aria-label="Single-Use Form Fields">
992 <ul class="md-nav__list">
993
994 <li class="md-nav__item">
995 <a href="#bbcodeattributesformfield" class="md-nav__link">
996 BBCodeAttributesFormField
997 </a>
998
999 </li>
1000
1001 <li class="md-nav__item">
1002 <a href="#devtoolsprojectexcludedpackagesformfield" class="md-nav__link">
1003 DevtoolsProjectExcludedPackagesFormField
1004 </a>
1005
1006 </li>
1007
1008 <li class="md-nav__item">
1009 <a href="#devtoolsprojectinstructionsformfield" class="md-nav__link">
1010 DevtoolsProjectInstructionsFormField
1011 </a>
1012
1013 </li>
1014
1015 <li class="md-nav__item">
1016 <a href="#devtoolsprojectoptionalpackagesformfield" class="md-nav__link">
1017 DevtoolsProjectOptionalPackagesFormField
1018 </a>
1019
1020 </li>
1021
1022 <li class="md-nav__item">
1023 <a href="#devtoolsprojectrequiredpackagesformfield" class="md-nav__link">
1024 DevtoolsProjectRequiredPackagesFormField
1025 </a>
1026
1027 </li>
1028
1029 </ul>
1030 </nav>
1031
1032 </li>
1033
1034 </ul>
1035
1036 </nav>
1037
1038 </li>
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048 <li class="md-nav__item">
1049 <a href="../validation_data/" class="md-nav__link">
1050 Validation and Data
1051 </a>
1052 </li>
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062 <li class="md-nav__item">
1063 <a href="../dependencies/" class="md-nav__link">
1064 Dependencies
1065 </a>
1066 </li>
1067
1068
1069
1070
1071 </ul>
1072 </nav>
1073 </li>
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083 <li class="md-nav__item">
1084 <a href="../../package_installation_plugins/" class="md-nav__link">
1085 Package Installation Plugins
1086 </a>
1087 </li>
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097 <li class="md-nav__item">
1098 <a href="../../user_activity_points/" class="md-nav__link">
1099 User Activity Points
1100 </a>
1101 </li>
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111 <li class="md-nav__item">
1112 <a href="../../user_notifications/" class="md-nav__link">
1113 User Notifications
1114 </a>
1115 </li>
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125 <li class="md-nav__item">
1126 <a href="../../sitemaps/" class="md-nav__link">
1127 Sitemaps
1128 </a>
1129 </li>
1130
1131
1132
1133
1134 </ul>
1135 </nav>
1136 </li>
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146 <li class="md-nav__item">
1147 <a href="../../../code-style/" class="md-nav__link">
1148 Code Style
1149 </a>
1150 </li>
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160 <li class="md-nav__item">
1161 <a href="../../../apps/" class="md-nav__link">
1162 Apps
1163 </a>
1164 </li>
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174 <li class="md-nav__item">
1175 <a href="../../../gdpr/" class="md-nav__link">
1176 GDPR
1177 </a>
1178 </li>
1179
1180
1181
1182
1183 </ul>
1184 </nav>
1185 </li>
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197 <li class="md-nav__item md-nav__item--nested">
1198
1199
1200 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
1201
1202
1203
1204
1205 <label class="md-nav__link" for="__nav_3">
1206 Languages, Templates & CSS
1207 <span class="md-nav__icon md-icon"></span>
1208 </label>
1209
1210 <nav class="md-nav" aria-label="Languages, Templates & CSS" data-md-level="1">
1211 <label class="md-nav__title" for="__nav_3">
1212 <span class="md-nav__icon md-icon"></span>
1213 Languages, Templates & CSS
1214 </label>
1215 <ul class="md-nav__list" data-md-scrollfix>
1216
1217
1218
1219
1220
1221
1222 <li class="md-nav__item">
1223 <a href="../../../../view/languages/" class="md-nav__link">
1224 Languages
1225 </a>
1226 </li>
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236 <li class="md-nav__item">
1237 <a href="../../../../view/templates/" class="md-nav__link">
1238 Templates
1239 </a>
1240 </li>
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250 <li class="md-nav__item">
1251 <a href="../../../../view/template-plugins/" class="md-nav__link">
1252 Template Plugins
1253 </a>
1254 </li>
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264 <li class="md-nav__item">
1265 <a href="../../../../view/css/" class="md-nav__link">
1266 CSS
1267 </a>
1268 </li>
1269
1270
1271
1272
1273 </ul>
1274 </nav>
1275 </li>
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287 <li class="md-nav__item md-nav__item--nested">
1288
1289
1290 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
1291
1292
1293
1294
1295 <label class="md-nav__link" for="__nav_4">
1296 TypeScript and JavaScript API
1297 <span class="md-nav__icon md-icon"></span>
1298 </label>
1299
1300 <nav class="md-nav" aria-label="TypeScript and JavaScript API" data-md-level="1">
1301 <label class="md-nav__title" for="__nav_4">
1302 <span class="md-nav__icon md-icon"></span>
1303 TypeScript and JavaScript API
1304 </label>
1305 <ul class="md-nav__list" data-md-scrollfix>
1306
1307
1308
1309
1310
1311
1312 <li class="md-nav__item">
1313 <a href="../../../../javascript/general-usage/" class="md-nav__link">
1314 General Usage
1315 </a>
1316 </li>
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326 <li class="md-nav__item">
1327 <a href="../../../../javascript/typescript/" class="md-nav__link">
1328 TypeScript
1329 </a>
1330 </li>
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341 <li class="md-nav__item md-nav__item--nested">
1342
1343
1344 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3" type="checkbox" id="__nav_4_3" >
1345
1346
1347
1348
1349 <label class="md-nav__link" for="__nav_4_3">
1350 New API
1351 <span class="md-nav__icon md-icon"></span>
1352 </label>
1353
1354 <nav class="md-nav" aria-label="New API" data-md-level="2">
1355 <label class="md-nav__title" for="__nav_4_3">
1356 <span class="md-nav__icon md-icon"></span>
1357 New API
1358 </label>
1359 <ul class="md-nav__list" data-md-scrollfix>
1360
1361
1362
1363
1364
1365
1366 <li class="md-nav__item">
1367 <a href="../../../../javascript/new-api_writing-a-module/" class="md-nav__link">
1368 Writing a module
1369 </a>
1370 </li>
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380 <li class="md-nav__item">
1381 <a href="../../../../javascript/new-api_data-structures/" class="md-nav__link">
1382 Data Structures
1383 </a>
1384 </li>
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394 <li class="md-nav__item">
1395 <a href="../../../../javascript/new-api_core/" class="md-nav__link">
1396 Core Functions
1397 </a>
1398 </li>
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408 <li class="md-nav__item">
1409 <a href="../../../../javascript/new-api_dom/" class="md-nav__link">
1410 DOM
1411 </a>
1412 </li>
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422 <li class="md-nav__item">
1423 <a href="../../../../javascript/new-api_events/" class="md-nav__link">
1424 Event Handling
1425 </a>
1426 </li>
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436 <li class="md-nav__item">
1437 <a href="../../../../javascript/new-api_ajax/" class="md-nav__link">
1438 Ajax
1439 </a>
1440 </li>
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450 <li class="md-nav__item">
1451 <a href="../../../../javascript/new-api_dialogs/" class="md-nav__link">
1452 Dialogs
1453 </a>
1454 </li>
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464 <li class="md-nav__item">
1465 <a href="../../../../javascript/new-api_browser/" class="md-nav__link">
1466 Browser and Screen Sizes
1467 </a>
1468 </li>
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478 <li class="md-nav__item">
1479 <a href="../../../../javascript/new-api_ui/" class="md-nav__link">
1480 User Interface
1481 </a>
1482 </li>
1483
1484
1485
1486
1487 </ul>
1488 </nav>
1489 </li>
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499 <li class="md-nav__item">
1500 <a href="../../../../javascript/legacy-api/" class="md-nav__link">
1501 Legacy API
1502 </a>
1503 </li>
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513 <li class="md-nav__item">
1514 <a href="../../../../javascript/helper-functions/" class="md-nav__link">
1515 Helper Functions
1516 </a>
1517 </li>
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527 <li class="md-nav__item">
1528 <a href="../../../../javascript/code-snippets/" class="md-nav__link">
1529 Code Snippets
1530 </a>
1531 </li>
1532
1533
1534
1535
1536 </ul>
1537 </nav>
1538 </li>
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550 <li class="md-nav__item md-nav__item--nested">
1551
1552
1553 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
1554
1555
1556
1557
1558 <label class="md-nav__link" for="__nav_5">
1559 Package Components
1560 <span class="md-nav__icon md-icon"></span>
1561 </label>
1562
1563 <nav class="md-nav" aria-label="Package Components" data-md-level="1">
1564 <label class="md-nav__title" for="__nav_5">
1565 <span class="md-nav__icon md-icon"></span>
1566 Package Components
1567 </label>
1568 <ul class="md-nav__list" data-md-scrollfix>
1569
1570
1571
1572
1573
1574
1575 <li class="md-nav__item">
1576 <a href="../../../../package/package-xml/" class="md-nav__link">
1577 package.xml
1578 </a>
1579 </li>
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590 <li class="md-nav__item md-nav__item--nested">
1591
1592
1593 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_2" type="checkbox" id="__nav_5_2" >
1594
1595
1596
1597
1598 <label class="md-nav__link" for="__nav_5_2">
1599 PIPs
1600 <span class="md-nav__icon md-icon"></span>
1601 </label>
1602
1603 <nav class="md-nav" aria-label="PIPs" data-md-level="2">
1604 <label class="md-nav__title" for="__nav_5_2">
1605 <span class="md-nav__icon md-icon"></span>
1606 PIPs
1607 </label>
1608 <ul class="md-nav__list" data-md-scrollfix>
1609
1610
1611
1612
1613
1614
1615 <li class="md-nav__item">
1616 <a href="../../../../package/pip/" class="md-nav__link">
1617 Overview
1618 </a>
1619 </li>
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629 <li class="md-nav__item">
1630 <a href="../../../../package/pip/acl-option/" class="md-nav__link">
1631 aclOption
1632 </a>
1633 </li>
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643 <li class="md-nav__item">
1644 <a href="../../../../package/pip/acp-menu/" class="md-nav__link">
1645 acpMenu
1646 </a>
1647 </li>
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657 <li class="md-nav__item">
1658 <a href="../../../../package/pip/acp-search-provider/" class="md-nav__link">
1659 acpSearchProvider
1660 </a>
1661 </li>
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671 <li class="md-nav__item">
1672 <a href="../../../../package/pip/acp-template/" class="md-nav__link">
1673 acpTemplate
1674 </a>
1675 </li>
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685 <li class="md-nav__item">
1686 <a href="../../../../package/pip/acp-template-delete/" class="md-nav__link">
1687 acpTemplateDelete
1688 </a>
1689 </li>
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699 <li class="md-nav__item">
1700 <a href="../../../../package/pip/bbcode/" class="md-nav__link">
1701 bbcode
1702 </a>
1703 </li>
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713 <li class="md-nav__item">
1714 <a href="../../../../package/pip/box/" class="md-nav__link">
1715 box
1716 </a>
1717 </li>
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727 <li class="md-nav__item">
1728 <a href="../../../../package/pip/clipboard-action/" class="md-nav__link">
1729 clipboardAction
1730 </a>
1731 </li>
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741 <li class="md-nav__item">
1742 <a href="../../../../package/pip/core-object/" class="md-nav__link">
1743 coreObject
1744 </a>
1745 </li>
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755 <li class="md-nav__item">
1756 <a href="../../../../package/pip/cronjob/" class="md-nav__link">
1757 cronjob
1758 </a>
1759 </li>
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769 <li class="md-nav__item">
1770 <a href="../../../../package/pip/database/" class="md-nav__link">
1771 database
1772 </a>
1773 </li>
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783 <li class="md-nav__item">
1784 <a href="../../../../package/pip/event-listener/" class="md-nav__link">
1785 eventListener
1786 </a>
1787 </li>
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797 <li class="md-nav__item">
1798 <a href="../../../../package/pip/file/" class="md-nav__link">
1799 file
1800 </a>
1801 </li>
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811 <li class="md-nav__item">
1812 <a href="../../../../package/pip/file-delete/" class="md-nav__link">
1813 fileDelete
1814 </a>
1815 </li>
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825 <li class="md-nav__item">
1826 <a href="../../../../package/pip/language/" class="md-nav__link">
1827 language
1828 </a>
1829 </li>
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839 <li class="md-nav__item">
1840 <a href="../../../../package/pip/media-provider/" class="md-nav__link">
1841 mediaProvider
1842 </a>
1843 </li>
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853 <li class="md-nav__item">
1854 <a href="../../../../package/pip/menu/" class="md-nav__link">
1855 menu
1856 </a>
1857 </li>
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867 <li class="md-nav__item">
1868 <a href="../../../../package/pip/menu-item/" class="md-nav__link">
1869 menuItem
1870 </a>
1871 </li>
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881 <li class="md-nav__item">
1882 <a href="../../../../package/pip/object-type/" class="md-nav__link">
1883 objectType
1884 </a>
1885 </li>
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895 <li class="md-nav__item">
1896 <a href="../../../../package/pip/object-type-definition/" class="md-nav__link">
1897 objectTypeDefinition
1898 </a>
1899 </li>
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909 <li class="md-nav__item">
1910 <a href="../../../../package/pip/option/" class="md-nav__link">
1911 option
1912 </a>
1913 </li>
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923 <li class="md-nav__item">
1924 <a href="../../../../package/pip/page/" class="md-nav__link">
1925 page
1926 </a>
1927 </li>
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937 <li class="md-nav__item">
1938 <a href="../../../../package/pip/pip/" class="md-nav__link">
1939 pip
1940 </a>
1941 </li>
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951 <li class="md-nav__item">
1952 <a href="../../../../package/pip/script/" class="md-nav__link">
1953 script
1954 </a>
1955 </li>
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965 <li class="md-nav__item">
1966 <a href="../../../../package/pip/smiley/" class="md-nav__link">
1967 smiley
1968 </a>
1969 </li>
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979 <li class="md-nav__item">
1980 <a href="../../../../package/pip/sql/" class="md-nav__link">
1981 sql
1982 </a>
1983 </li>
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993 <li class="md-nav__item">
1994 <a href="../../../../package/pip/style/" class="md-nav__link">
1995 style
1996 </a>
1997 </li>
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007 <li class="md-nav__item">
2008 <a href="../../../../package/pip/template/" class="md-nav__link">
2009 template
2010 </a>
2011 </li>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021 <li class="md-nav__item">
2022 <a href="../../../../package/pip/template-delete/" class="md-nav__link">
2023 templateDelete
2024 </a>
2025 </li>
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035 <li class="md-nav__item">
2036 <a href="../../../../package/pip/template-listener/" class="md-nav__link">
2037 templateListener
2038 </a>
2039 </li>
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049 <li class="md-nav__item">
2050 <a href="../../../../package/pip/user-group-option/" class="md-nav__link">
2051 userGroupOption
2052 </a>
2053 </li>
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063 <li class="md-nav__item">
2064 <a href="../../../../package/pip/user-menu/" class="md-nav__link">
2065 userMenu
2066 </a>
2067 </li>
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077 <li class="md-nav__item">
2078 <a href="../../../../package/pip/user-notification-event/" class="md-nav__link">
2079 userNotificationEvent
2080 </a>
2081 </li>
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091 <li class="md-nav__item">
2092 <a href="../../../../package/pip/user-option/" class="md-nav__link">
2093 userOption
2094 </a>
2095 </li>
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105 <li class="md-nav__item">
2106 <a href="../../../../package/pip/user-profile-menu/" class="md-nav__link">
2107 userProfileMenu
2108 </a>
2109 </li>
2110
2111
2112
2113
2114 </ul>
2115 </nav>
2116 </li>
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126 <li class="md-nav__item">
2127 <a href="../../../../package/database-php-api/" class="md-nav__link">
2128 Database PHP API
2129 </a>
2130 </li>
2131
2132
2133
2134
2135 </ul>
2136 </nav>
2137 </li>
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149 <li class="md-nav__item md-nav__item--nested">
2150
2151
2152 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
2153
2154
2155
2156
2157 <label class="md-nav__link" for="__nav_6">
2158 Migration
2159 <span class="md-nav__icon md-icon"></span>
2160 </label>
2161
2162 <nav class="md-nav" aria-label="Migration" data-md-level="1">
2163 <label class="md-nav__title" for="__nav_6">
2164 <span class="md-nav__icon md-icon"></span>
2165 Migration
2166 </label>
2167 <ul class="md-nav__list" data-md-scrollfix>
2168
2169
2170
2171
2172
2173
2174
2175 <li class="md-nav__item md-nav__item--nested">
2176
2177
2178 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_1" type="checkbox" id="__nav_6_1" >
2179
2180
2181
2182
2183 <label class="md-nav__link" for="__nav_6_1">
2184 From WoltLab Suite 5.5
2185 <span class="md-nav__icon md-icon"></span>
2186 </label>
2187
2188 <nav class="md-nav" aria-label="From WoltLab Suite 5.5" data-md-level="2">
2189 <label class="md-nav__title" for="__nav_6_1">
2190 <span class="md-nav__icon md-icon"></span>
2191 From WoltLab Suite 5.5
2192 </label>
2193 <ul class="md-nav__list" data-md-scrollfix>
2194
2195
2196
2197
2198
2199
2200 <li class="md-nav__item">
2201 <a href="../../../../migration/wsc55/php/" class="md-nav__link">
2202 PHP API
2203 </a>
2204 </li>
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214 <li class="md-nav__item">
2215 <a href="../../../../migration/wsc55/javascript/" class="md-nav__link">
2216 TypeScript and JavaScript
2217 </a>
2218 </li>
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228 <li class="md-nav__item">
2229 <a href="../../../../migration/wsc55/templates/" class="md-nav__link">
2230 Templates
2231 </a>
2232 </li>
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242 <li class="md-nav__item">
2243 <a href="../../../../migration/wsc55/libraries/" class="md-nav__link">
2244 Third Party Libraries
2245 </a>
2246 </li>
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256 <li class="md-nav__item">
2257 <a href="../../../../migration/wsc55/deprecations_removals/" class="md-nav__link">
2258 Deprecations and Removals
2259 </a>
2260 </li>
2261
2262
2263
2264
2265 </ul>
2266 </nav>
2267 </li>
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278 <li class="md-nav__item md-nav__item--nested">
2279
2280
2281 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
2282
2283
2284
2285
2286 <label class="md-nav__link" for="__nav_6_2">
2287 From WoltLab Suite 5.4
2288 <span class="md-nav__icon md-icon"></span>
2289 </label>
2290
2291 <nav class="md-nav" aria-label="From WoltLab Suite 5.4" data-md-level="2">
2292 <label class="md-nav__title" for="__nav_6_2">
2293 <span class="md-nav__icon md-icon"></span>
2294 From WoltLab Suite 5.4
2295 </label>
2296 <ul class="md-nav__list" data-md-scrollfix>
2297
2298
2299
2300
2301
2302
2303 <li class="md-nav__item">
2304 <a href="../../../../migration/wsc54/php/" class="md-nav__link">
2305 PHP API
2306 </a>
2307 </li>
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317 <li class="md-nav__item">
2318 <a href="../../../../migration/wsc54/javascript/" class="md-nav__link">
2319 TypeScript and JavaScript
2320 </a>
2321 </li>
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331 <li class="md-nav__item">
2332 <a href="../../../../migration/wsc54/templates/" class="md-nav__link">
2333 Templates
2334 </a>
2335 </li>
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345 <li class="md-nav__item">
2346 <a href="../../../../migration/wsc54/libraries/" class="md-nav__link">
2347 Third Party Libraries
2348 </a>
2349 </li>
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359 <li class="md-nav__item">
2360 <a href="../../../../migration/wsc54/deprecations_removals/" class="md-nav__link">
2361 Deprecations and Removals
2362 </a>
2363 </li>
2364
2365
2366
2367
2368 </ul>
2369 </nav>
2370 </li>
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381 <li class="md-nav__item md-nav__item--nested">
2382
2383
2384 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" >
2385
2386
2387
2388
2389 <label class="md-nav__link" for="__nav_6_3">
2390 From WoltLab Suite 5.3
2391 <span class="md-nav__icon md-icon"></span>
2392 </label>
2393
2394 <nav class="md-nav" aria-label="From WoltLab Suite 5.3" data-md-level="2">
2395 <label class="md-nav__title" for="__nav_6_3">
2396 <span class="md-nav__icon md-icon"></span>
2397 From WoltLab Suite 5.3
2398 </label>
2399 <ul class="md-nav__list" data-md-scrollfix>
2400
2401
2402
2403
2404
2405
2406 <li class="md-nav__item">
2407 <a href="../../../../migration/wsc53/php/" class="md-nav__link">
2408 PHP API
2409 </a>
2410 </li>
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420 <li class="md-nav__item">
2421 <a href="../../../../migration/wsc53/session/" class="md-nav__link">
2422 Session Handling and Authentication
2423 </a>
2424 </li>
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434 <li class="md-nav__item">
2435 <a href="../../../../migration/wsc53/javascript/" class="md-nav__link">
2436 TypeScript and JavaScript
2437 </a>
2438 </li>
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448 <li class="md-nav__item">
2449 <a href="../../../../migration/wsc53/templates/" class="md-nav__link">
2450 Templates
2451 </a>
2452 </li>
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462 <li class="md-nav__item">
2463 <a href="../../../../migration/wsc53/libraries/" class="md-nav__link">
2464 Third Party Libraries
2465 </a>
2466 </li>
2467
2468
2469
2470
2471 </ul>
2472 </nav>
2473 </li>
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484 <li class="md-nav__item md-nav__item--nested">
2485
2486
2487 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_4" type="checkbox" id="__nav_6_4" >
2488
2489
2490
2491
2492 <label class="md-nav__link" for="__nav_6_4">
2493 From WoltLab Suite 5.2
2494 <span class="md-nav__icon md-icon"></span>
2495 </label>
2496
2497 <nav class="md-nav" aria-label="From WoltLab Suite 5.2" data-md-level="2">
2498 <label class="md-nav__title" for="__nav_6_4">
2499 <span class="md-nav__icon md-icon"></span>
2500 From WoltLab Suite 5.2
2501 </label>
2502 <ul class="md-nav__list" data-md-scrollfix>
2503
2504
2505
2506
2507
2508
2509 <li class="md-nav__item">
2510 <a href="../../../../migration/wsc52/php/" class="md-nav__link">
2511 PHP API
2512 </a>
2513 </li>
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523 <li class="md-nav__item">
2524 <a href="../../../../migration/wsc52/templates/" class="md-nav__link">
2525 Templates and Languages
2526 </a>
2527 </li>
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537 <li class="md-nav__item">
2538 <a href="../../../../migration/wsc52/libraries/" class="md-nav__link">
2539 Third Party Libraries
2540 </a>
2541 </li>
2542
2543
2544
2545
2546 </ul>
2547 </nav>
2548 </li>
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559 <li class="md-nav__item md-nav__item--nested">
2560
2561
2562 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_5" type="checkbox" id="__nav_6_5" >
2563
2564
2565
2566
2567 <label class="md-nav__link" for="__nav_6_5">
2568 From WoltLab Suite 3.1
2569 <span class="md-nav__icon md-icon"></span>
2570 </label>
2571
2572 <nav class="md-nav" aria-label="From WoltLab Suite 3.1" data-md-level="2">
2573 <label class="md-nav__title" for="__nav_6_5">
2574 <span class="md-nav__icon md-icon"></span>
2575 From WoltLab Suite 3.1
2576 </label>
2577 <ul class="md-nav__list" data-md-scrollfix>
2578
2579
2580
2581
2582
2583
2584 <li class="md-nav__item">
2585 <a href="../../../../migration/wsc31/php/" class="md-nav__link">
2586 PHP API
2587 </a>
2588 </li>
2589
2590
2591
2592
2593 </ul>
2594 </nav>
2595 </li>
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606 <li class="md-nav__item md-nav__item--nested">
2607
2608
2609 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_6" type="checkbox" id="__nav_6_6" >
2610
2611
2612
2613
2614 <label class="md-nav__link" for="__nav_6_6">
2615 From WoltLab Suite 3.0
2616 <span class="md-nav__icon md-icon"></span>
2617 </label>
2618
2619 <nav class="md-nav" aria-label="From WoltLab Suite 3.0" data-md-level="2">
2620 <label class="md-nav__title" for="__nav_6_6">
2621 <span class="md-nav__icon md-icon"></span>
2622 From WoltLab Suite 3.0
2623 </label>
2624 <ul class="md-nav__list" data-md-scrollfix>
2625
2626
2627
2628
2629
2630
2631 <li class="md-nav__item">
2632 <a href="../../../../migration/wsc30/php/" class="md-nav__link">
2633 PHP API
2634 </a>
2635 </li>
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645 <li class="md-nav__item">
2646 <a href="../../../../migration/wsc30/javascript/" class="md-nav__link">
2647 JavaScript API
2648 </a>
2649 </li>
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659 <li class="md-nav__item">
2660 <a href="../../../../migration/wsc30/templates/" class="md-nav__link">
2661 Templates
2662 </a>
2663 </li>
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673 <li class="md-nav__item">
2674 <a href="../../../../migration/wsc30/css/" class="md-nav__link">
2675 CSS
2676 </a>
2677 </li>
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687 <li class="md-nav__item">
2688 <a href="../../../../migration/wsc30/package/" class="md-nav__link">
2689 Package Components
2690 </a>
2691 </li>
2692
2693
2694
2695
2696 </ul>
2697 </nav>
2698 </li>
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709 <li class="md-nav__item md-nav__item--nested">
2710
2711
2712 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_7" type="checkbox" id="__nav_6_7" >
2713
2714
2715
2716
2717 <label class="md-nav__link" for="__nav_6_7">
2718 From WCF 2.1
2719 <span class="md-nav__icon md-icon"></span>
2720 </label>
2721
2722 <nav class="md-nav" aria-label="From WCF 2.1" data-md-level="2">
2723 <label class="md-nav__title" for="__nav_6_7">
2724 <span class="md-nav__icon md-icon"></span>
2725 From WCF 2.1
2726 </label>
2727 <ul class="md-nav__list" data-md-scrollfix>
2728
2729
2730
2731
2732
2733
2734 <li class="md-nav__item">
2735 <a href="../../../../migration/wcf21/php/" class="md-nav__link">
2736 PHP API
2737 </a>
2738 </li>
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748 <li class="md-nav__item">
2749 <a href="../../../../migration/wcf21/templates/" class="md-nav__link">
2750 Templates
2751 </a>
2752 </li>
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762 <li class="md-nav__item">
2763 <a href="../../../../migration/wcf21/css/" class="md-nav__link">
2764 CSS
2765 </a>
2766 </li>
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776 <li class="md-nav__item">
2777 <a href="../../../../migration/wcf21/package/" class="md-nav__link">
2778 Package Components
2779 </a>
2780 </li>
2781
2782
2783
2784
2785 </ul>
2786 </nav>
2787 </li>
2788
2789
2790
2791
2792 </ul>
2793 </nav>
2794 </li>
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806 <li class="md-nav__item md-nav__item--nested">
2807
2808
2809 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
2810
2811
2812
2813
2814 <label class="md-nav__link" for="__nav_7">
2815 Tutorials
2816 <span class="md-nav__icon md-icon"></span>
2817 </label>
2818
2819 <nav class="md-nav" aria-label="Tutorials" data-md-level="1">
2820 <label class="md-nav__title" for="__nav_7">
2821 <span class="md-nav__icon md-icon"></span>
2822 Tutorials
2823 </label>
2824 <ul class="md-nav__list" data-md-scrollfix>
2825
2826
2827
2828
2829
2830
2831
2832 <li class="md-nav__item md-nav__item--nested">
2833
2834
2835 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_1" type="checkbox" id="__nav_7_1" >
2836
2837
2838
2839
2840 <label class="md-nav__link" for="__nav_7_1">
2841 Tutorial Series
2842 <span class="md-nav__icon md-icon"></span>
2843 </label>
2844
2845 <nav class="md-nav" aria-label="Tutorial Series" data-md-level="2">
2846 <label class="md-nav__title" for="__nav_7_1">
2847 <span class="md-nav__icon md-icon"></span>
2848 Tutorial Series
2849 </label>
2850 <ul class="md-nav__list" data-md-scrollfix>
2851
2852
2853
2854
2855
2856
2857 <li class="md-nav__item">
2858 <a href="../../../../tutorial/series/overview/" class="md-nav__link">
2859 Overview
2860 </a>
2861 </li>
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871 <li class="md-nav__item">
2872 <a href="../../../../tutorial/series/part_1/" class="md-nav__link">
2873 Part 1
2874 </a>
2875 </li>
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885 <li class="md-nav__item">
2886 <a href="../../../../tutorial/series/part_2/" class="md-nav__link">
2887 Part 2
2888 </a>
2889 </li>
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899 <li class="md-nav__item">
2900 <a href="../../../../tutorial/series/part_3/" class="md-nav__link">
2901 Part 3
2902 </a>
2903 </li>
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913 <li class="md-nav__item">
2914 <a href="../../../../tutorial/series/part_4/" class="md-nav__link">
2915 Part 4
2916 </a>
2917 </li>
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927 <li class="md-nav__item">
2928 <a href="../../../../tutorial/series/part_5/" class="md-nav__link">
2929 Part 5
2930 </a>
2931 </li>
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941 <li class="md-nav__item">
2942 <a href="../../../../tutorial/series/part_6/" class="md-nav__link">
2943 Part 6
2944 </a>
2945 </li>
2946
2947
2948
2949
2950 </ul>
2951 </nav>
2952 </li>
2953
2954
2955
2956
2957 </ul>
2958 </nav>
2959 </li>
2960
2961
2962
2963 </ul>
2964 </nav>
2965 </div>
2966 </div>
2967 </div>
2968
2969
2970
2971 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
2972 <div class="md-sidebar__scrollwrap">
2973 <div class="md-sidebar__inner">
2974
2975
2976 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2977
2978
2979
2980
2981
2982
2983 <label class="md-nav__title" for="__toc">
2984 <span class="md-nav__icon md-icon"></span>
2985 Table of contents
2986 </label>
2987 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2988
2989 <li class="md-nav__item">
2990 <a href="#abstract-form-fields" class="md-nav__link">
2991 Abstract Form Fields
2992 </a>
2993
2994 <nav class="md-nav" aria-label="Abstract Form Fields">
2995 <ul class="md-nav__list">
2996
2997 <li class="md-nav__item">
2998 <a href="#abstractformfield" class="md-nav__link">
2999 AbstractFormField
3000 </a>
3001
3002 </li>
3003
3004 <li class="md-nav__item">
3005 <a href="#abstractnumericformfield" class="md-nav__link">
3006 AbstractNumericFormField
3007 </a>
3008
3009 </li>
3010
3011 <li class="md-nav__item">
3012 <a href="#abstractformfielddecorator" class="md-nav__link">
3013 AbstractFormFieldDecorator
3014 </a>
3015
3016 </li>
3017
3018 </ul>
3019 </nav>
3020
3021 </li>
3022
3023 <li class="md-nav__item">
3024 <a href="#general-form-fields" class="md-nav__link">
3025 General Form Fields
3026 </a>
3027
3028 <nav class="md-nav" aria-label="General Form Fields">
3029 <ul class="md-nav__list">
3030
3031 <li class="md-nav__item">
3032 <a href="#booleanformfield" class="md-nav__link">
3033 BooleanFormField
3034 </a>
3035
3036 </li>
3037
3038 <li class="md-nav__item">
3039 <a href="#checkboxformfield" class="md-nav__link">
3040 CheckboxFormField
3041 </a>
3042
3043 </li>
3044
3045 <li class="md-nav__item">
3046 <a href="#classnameformfield" class="md-nav__link">
3047 ClassNameFormField
3048 </a>
3049
3050 </li>
3051
3052 <li class="md-nav__item">
3053 <a href="#dateformfield" class="md-nav__link">
3054 DateFormField
3055 </a>
3056
3057 </li>
3058
3059 <li class="md-nav__item">
3060 <a href="#descriptionformfield" class="md-nav__link">
3061 DescriptionFormField
3062 </a>
3063
3064 </li>
3065
3066 <li class="md-nav__item">
3067 <a href="#emailformfield" class="md-nav__link">
3068 EmailFormField
3069 </a>
3070
3071 </li>
3072
3073 <li class="md-nav__item">
3074 <a href="#floatformfield" class="md-nav__link">
3075 FloatFormField
3076 </a>
3077
3078 </li>
3079
3080 <li class="md-nav__item">
3081 <a href="#iconformfield" class="md-nav__link">
3082 IconFormField
3083 </a>
3084
3085 </li>
3086
3087 <li class="md-nav__item">
3088 <a href="#integerformfield" class="md-nav__link">
3089 IntegerFormField
3090 </a>
3091
3092 </li>
3093
3094 <li class="md-nav__item">
3095 <a href="#isdisabledformfield" class="md-nav__link">
3096 IsDisabledFormField
3097 </a>
3098
3099 </li>
3100
3101 <li class="md-nav__item">
3102 <a href="#itemlistformfield" class="md-nav__link">
3103 ItemListFormField
3104 </a>
3105
3106 </li>
3107
3108 <li class="md-nav__item">
3109 <a href="#multilinetextformfield" class="md-nav__link">
3110 MultilineTextFormField
3111 </a>
3112
3113 </li>
3114
3115 <li class="md-nav__item">
3116 <a href="#multipleselectionformfield" class="md-nav__link">
3117 MultipleSelectionFormField
3118 </a>
3119
3120 </li>
3121
3122 <li class="md-nav__item">
3123 <a href="#radiobuttonformfield" class="md-nav__link">
3124 RadioButtonFormField
3125 </a>
3126
3127 </li>
3128
3129 <li class="md-nav__item">
3130 <a href="#ratingformfield" class="md-nav__link">
3131 RatingFormField
3132 </a>
3133
3134 </li>
3135
3136 <li class="md-nav__item">
3137 <a href="#showorderformfield" class="md-nav__link">
3138 ShowOrderFormField
3139 </a>
3140
3141 </li>
3142
3143 <li class="md-nav__item">
3144 <a href="#singleselectionformfield" class="md-nav__link">
3145 SingleSelectionFormField
3146 </a>
3147
3148 </li>
3149
3150 <li class="md-nav__item">
3151 <a href="#sortorderformfield" class="md-nav__link">
3152 SortOrderFormField
3153 </a>
3154
3155 </li>
3156
3157 <li class="md-nav__item">
3158 <a href="#textformfield" class="md-nav__link">
3159 TextFormField
3160 </a>
3161
3162 </li>
3163
3164 <li class="md-nav__item">
3165 <a href="#titleformfield" class="md-nav__link">
3166 TitleFormField
3167 </a>
3168
3169 </li>
3170
3171 <li class="md-nav__item">
3172 <a href="#urlformfield" class="md-nav__link">
3173 UrlFormField
3174 </a>
3175
3176 </li>
3177
3178 </ul>
3179 </nav>
3180
3181 </li>
3182
3183 <li class="md-nav__item">
3184 <a href="#specific-fields" class="md-nav__link">
3185 Specific Fields
3186 </a>
3187
3188 <nav class="md-nav" aria-label="Specific Fields">
3189 <ul class="md-nav__list">
3190
3191 <li class="md-nav__item">
3192 <a href="#aclformfield" class="md-nav__link">
3193 AclFormField
3194 </a>
3195
3196 </li>
3197
3198 <li class="md-nav__item">
3199 <a href="#buttonformfield" class="md-nav__link">
3200 ButtonFormField
3201 </a>
3202
3203 </li>
3204
3205 <li class="md-nav__item">
3206 <a href="#captchaformfield" class="md-nav__link">
3207 CaptchaFormField
3208 </a>
3209
3210 </li>
3211
3212 <li class="md-nav__item">
3213 <a href="#colorformfield" class="md-nav__link">
3214 ColorFormField
3215 </a>
3216
3217 </li>
3218
3219 <li class="md-nav__item">
3220 <a href="#contentlanguageformfield" class="md-nav__link">
3221 ContentLanguageFormField
3222 </a>
3223
3224 </li>
3225
3226 <li class="md-nav__item">
3227 <a href="#labelformfield" class="md-nav__link">
3228 LabelFormField
3229 </a>
3230
3231 </li>
3232
3233 <li class="md-nav__item">
3234 <a href="#optionformfield" class="md-nav__link">
3235 OptionFormField
3236 </a>
3237
3238 </li>
3239
3240 <li class="md-nav__item">
3241 <a href="#simpleaclformfield" class="md-nav__link">
3242 SimpleAclFormField
3243 </a>
3244
3245 </li>
3246
3247 <li class="md-nav__item">
3248 <a href="#singlemediaselectionformfield" class="md-nav__link">
3249 SingleMediaSelectionFormField
3250 </a>
3251
3252 </li>
3253
3254 <li class="md-nav__item">
3255 <a href="#tagformfield" class="md-nav__link">
3256 TagFormField
3257 </a>
3258
3259 </li>
3260
3261 <li class="md-nav__item">
3262 <a href="#uploadformfield" class="md-nav__link">
3263 UploadFormField
3264 </a>
3265
3266 <nav class="md-nav" aria-label="UploadFormField">
3267 <ul class="md-nav__list">
3268
3269 <li class="md-nav__item">
3270 <a href="#provide-value-from-database-object" class="md-nav__link">
3271 Provide value from database object
3272 </a>
3273
3274 </li>
3275
3276 <li class="md-nav__item">
3277 <a href="#process-files" class="md-nav__link">
3278 Process files
3279 </a>
3280
3281 </li>
3282
3283 </ul>
3284 </nav>
3285
3286 </li>
3287
3288 <li class="md-nav__item">
3289 <a href="#userformfield" class="md-nav__link">
3290 UserFormField
3291 </a>
3292
3293 </li>
3294
3295 <li class="md-nav__item">
3296 <a href="#userpasswordfield" class="md-nav__link">
3297 UserPasswordField
3298 </a>
3299
3300 </li>
3301
3302 <li class="md-nav__item">
3303 <a href="#usergroupoptionformfield" class="md-nav__link">
3304 UserGroupOptionFormField
3305 </a>
3306
3307 </li>
3308
3309 <li class="md-nav__item">
3310 <a href="#usernameformfield" class="md-nav__link">
3311 UsernameFormField
3312 </a>
3313
3314 </li>
3315
3316 </ul>
3317 </nav>
3318
3319 </li>
3320
3321 <li class="md-nav__item">
3322 <a href="#wysiwyg-form-container" class="md-nav__link">
3323 Wysiwyg form container
3324 </a>
3325
3326 <nav class="md-nav" aria-label="Wysiwyg form container">
3327 <ul class="md-nav__list">
3328
3329 <li class="md-nav__item">
3330 <a href="#wysiwygattachmentformfield" class="md-nav__link">
3331 WysiwygAttachmentFormField
3332 </a>
3333
3334 </li>
3335
3336 <li class="md-nav__item">
3337 <a href="#wysiwygpollformcontainer" class="md-nav__link">
3338 WysiwygPollFormContainer
3339 </a>
3340
3341 </li>
3342
3343 <li class="md-nav__item">
3344 <a href="#wysiwygsmileyformcontainer" class="md-nav__link">
3345 WysiwygSmileyFormContainer
3346 </a>
3347
3348 <nav class="md-nav" aria-label="WysiwygSmileyFormContainer">
3349 <ul class="md-nav__list">
3350
3351 <li class="md-nav__item">
3352 <a href="#wysiwygsmileyformnode" class="md-nav__link">
3353 WysiwygSmileyFormNode
3354 </a>
3355
3356 </li>
3357
3358 </ul>
3359 </nav>
3360
3361 </li>
3362
3363 <li class="md-nav__item">
3364 <a href="#example" class="md-nav__link">
3365 Example
3366 </a>
3367
3368 </li>
3369
3370 <li class="md-nav__item">
3371 <a href="#wysiwygformfield" class="md-nav__link">
3372 WysiwygFormField
3373 </a>
3374
3375 </li>
3376
3377 <li class="md-nav__item">
3378 <a href="#twysiwygformnode" class="md-nav__link">
3379 TWysiwygFormNode
3380 </a>
3381
3382 </li>
3383
3384 </ul>
3385 </nav>
3386
3387 </li>
3388
3389 <li class="md-nav__item">
3390 <a href="#application-specific-form-fields" class="md-nav__link">
3391 Application-Specific Form Fields
3392 </a>
3393
3394 <nav class="md-nav" aria-label="Application-Specific Form Fields">
3395 <ul class="md-nav__list">
3396
3397 <li class="md-nav__item">
3398 <a href="#woltlab-suite-forum" class="md-nav__link">
3399 WoltLab Suite Forum
3400 </a>
3401
3402 <nav class="md-nav" aria-label="WoltLab Suite Forum">
3403 <ul class="md-nav__list">
3404
3405 <li class="md-nav__item">
3406 <a href="#multipleboardselectionformfield" class="md-nav__link">
3407 MultipleBoardSelectionFormField
3408 </a>
3409
3410 </li>
3411
3412 </ul>
3413 </nav>
3414
3415 </li>
3416
3417 </ul>
3418 </nav>
3419
3420 </li>
3421
3422 <li class="md-nav__item">
3423 <a href="#single-use-form-fields" class="md-nav__link">
3424 Single-Use Form Fields
3425 </a>
3426
3427 <nav class="md-nav" aria-label="Single-Use Form Fields">
3428 <ul class="md-nav__list">
3429
3430 <li class="md-nav__item">
3431 <a href="#bbcodeattributesformfield" class="md-nav__link">
3432 BBCodeAttributesFormField
3433 </a>
3434
3435 </li>
3436
3437 <li class="md-nav__item">
3438 <a href="#devtoolsprojectexcludedpackagesformfield" class="md-nav__link">
3439 DevtoolsProjectExcludedPackagesFormField
3440 </a>
3441
3442 </li>
3443
3444 <li class="md-nav__item">
3445 <a href="#devtoolsprojectinstructionsformfield" class="md-nav__link">
3446 DevtoolsProjectInstructionsFormField
3447 </a>
3448
3449 </li>
3450
3451 <li class="md-nav__item">
3452 <a href="#devtoolsprojectoptionalpackagesformfield" class="md-nav__link">
3453 DevtoolsProjectOptionalPackagesFormField
3454 </a>
3455
3456 </li>
3457
3458 <li class="md-nav__item">
3459 <a href="#devtoolsprojectrequiredpackagesformfield" class="md-nav__link">
3460 DevtoolsProjectRequiredPackagesFormField
3461 </a>
3462
3463 </li>
3464
3465 </ul>
3466 </nav>
3467
3468 </li>
3469
3470 </ul>
3471
3472 </nav>
3473 </div>
3474 </div>
3475 </div>
3476
3477
3478 <div class="md-content" data-md-component="content">
3479 <article class="md-content__inner md-typeset">
3480
3481
3482 <a href="https://github.com/WoltLab/docs.woltlab.com/edit/6.0/docs/php/api/form_builder/form_fields.md" title="Edit this page" class="md-content__button md-icon">
3483 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z"/></svg>
3484 </a>
3485
3486
3487
3488 <h1 id="form-builder-fields">Form Builder Fields<a class="headerlink" href="#form-builder-fields" title="Permanent link">#</a></h1>
3489 <h2 id="abstract-form-fields">Abstract Form Fields<a class="headerlink" href="#abstract-form-fields" title="Permanent link">#</a></h2>
3490 <p>The following form field classes cannot be instantiated directly because they are abstract, but they can/must be used when creating own form field classes. </p>
3491 <h3 id="abstractformfield"><code>AbstractFormField</code><a class="headerlink" href="#abstractformfield" title="Permanent link">#</a></h3>
3492 <p><code>AbstractFormField</code> is the abstract default implementation of the <code>IFormField</code> interface and it is expected that every implementation of <code>IFormField</code> implements the interface by extending this class.</p>
3493 <h3 id="abstractnumericformfield"><code>AbstractNumericFormField</code><a class="headerlink" href="#abstractnumericformfield" title="Permanent link">#</a></h3>
3494 <p><code>AbstractNumericFormField</code> is the abstract implementation of a form field handling a single numeric value.
3495 The class implements <code>IAttributeFormField</code>, <code>IAutoCompleteFormField</code>, <code>ICssClassFormField</code>, <code>IImmutableFormField</code>, <code>IInputModeFormField</code>, <code>IMaximumFormField</code>, <code>IMinimumFormField</code>, <code>INullableFormField</code>, <code>IPlaceholderFormField</code> and <code>ISuffixedFormField</code>.
3496 If the property <code>$integerValues</code> is <code>true</code>, the form field works with integer values, otherwise it works with floating point numbers.
3497 The methods <code>step($step = null)</code> and <code>getStep()</code> can be used to set and get the step attribute of the <code>input</code> element.
3498 The default step for form fields with integer values is <code>1</code>.
3499 Otherwise, the default step is <code>any</code>.</p>
3500 <h3 id="abstractformfielddecorator"><code>AbstractFormFieldDecorator</code><a class="headerlink" href="#abstractformfielddecorator" title="Permanent link">#</a></h3>
3501 <div class="admonition info">
3502 <p class="admonition-title">Only available since version 5.4.5.</p>
3503 </div>
3504 <p><code>AbstractFormFieldDecorator</code> is a default implementation of a decorator for form fields that forwards calls to all methods defined in <code>IFormField</code> to the respective method of the decorated object.
3505 The class implements <code>IFormfield</code>.
3506 If the implementation of a more specific interface is required then the remaining methods must be implemented in the concrete decorator derived from <code>AbstractFormFieldDecorator</code> and the type of the <code>$field</code> property must be narrowed appropriately.</p>
3507 <h2 id="general-form-fields">General Form Fields<a class="headerlink" href="#general-form-fields" title="Permanent link">#</a></h2>
3508 <p>The following form fields are general reusable fields without any underlying context.</p>
3509 <h3 id="booleanformfield"><code>BooleanFormField</code><a class="headerlink" href="#booleanformfield" title="Permanent link">#</a></h3>
3510 <p><code>BooleanFormField</code> is used for boolean (<code>0</code> or <code>1</code>, <code>yes</code> or <code>no</code>) values.
3511 Objects of this class require a label.
3512 The return value of <code>getSaveValue()</code> is the integer representation of the boolean value, i.e. <code>0</code> or <code>1</code>.
3513 The class implements <code>IAttributeFormField</code>, <code>IAutoFocusFormField</code>, <code>ICssClassFormField</code>, and <code>IImmutableFormField</code>.</p>
3514 <h3 id="checkboxformfield"><code>CheckboxFormField</code><a class="headerlink" href="#checkboxformfield" title="Permanent link">#</a></h3>
3515 <div class="admonition info">
3516 <p class="admonition-title">Only available since version 5.3.2.</p>
3517 </div>
3518 <p><code>CheckboxFormField</code> extends <code>BooleanFormField</code> and offers a simple HTML checkbox.</p>
3519 <h3 id="classnameformfield"><code>ClassNameFormField</code><a class="headerlink" href="#classnameformfield" title="Permanent link">#</a></h3>
3520 <p><code>ClassNameFormField</code> is a <a href="#textformfield">text form field</a> that supports additional settings, specific to entering a PHP class name:</p>
3521 <ul>
3522 <li><code>classExists($classExists = true)</code> and <code>getClassExists()</code> can be used to ensure that the entered class currently exists in the installation.
3523 By default, the existance of the entered class is required.</li>
3524 <li><code>implementedInterface($interface)</code> and <code>getImplementedInterface()</code> can be used to ensure that the entered class implements the specified interface.
3525 By default, no interface is required.</li>
3526 <li><code>parentClass($parentClass)</code> and <code>getParentClass()</code> can be used to ensure that the entered class extends the specified class.
3527 By default, no parent class is required.</li>
3528 <li><code>instantiable($instantiable = true)</code> and <code>isInstantiable()</code> can be used to ensure that the entered class is instantiable.
3529 By default, entered classes have to instantiable.</li>
3530 </ul>
3531 <p>Additionally, the default id of a <code>ClassNameFormField</code> object is <code>className</code>, the default label is <code>wcf.form.field.className</code>, and if either an interface or a parent class is required, a default description is set if no description has already been set (<code>wcf.form.field.className.description.interface</code> and <code>wcf.form.field.className.description.parentClass</code>, respectively).</p>
3532 <h3 id="dateformfield"><code>DateFormField</code><a class="headerlink" href="#dateformfield" title="Permanent link">#</a></h3>
3533 <p><code>DateFormField</code> is a form field to enter a date (and optionally a time).
3534 The class implements <code>IAttributeFormField</code>, <code>IAutoFocusFormField</code>, <code>ICssClassFormField</code>, <code>IImmutableFormField</code>, and <code>INullableFormField</code>.
3535 The following methods are specific to this form field class:</p>
3536 <ul>
3537 <li><code>earliestDate($earliestDate)</code> and <code>getEarliestDate()</code> can be used to get and set the earliest selectable/valid date and <code>latestDate($latestDate)</code> and <code>getLatestDate()</code> can be used to get and set the latest selectable/valid date.
3538 The date passed to the setters must have the same format as set via <code>saveValueFormat()</code>.
3539 If a custom format is used, that format has to be set via <code>saveValueFormat()</code> before calling any of the setters.</li>
3540 <li><code>saveValueFormat($saveValueFormat)</code> and <code>getSaveValueFormat()</code> can be used to specify the date format of the value returned by <code>getSaveValue()</code>.
3541 By default, <code>U</code> is used as format.
3542 The <a href="https://secure.php.net/manual/en/function.date.php">PHP manual</a> provides an overview of supported formats.</li>
3543 <li><code>supportTime($supportsTime = true)</code> and <code>supportsTime()</code> can be used to toggle whether, in addition to a date, a time can also be specified.
3544 By default, specifying a time is disabled.</li>
3545 </ul>
3546 <h3 id="descriptionformfield"><code>DescriptionFormField</code><a class="headerlink" href="#descriptionformfield" title="Permanent link">#</a></h3>
3547 <p><code>DescriptionFormField</code> is a <a href="#multilinetextformfield">multi-line text form field</a> with <code>description</code> as the default id and <code>wcf.global.description</code> as the default label.</p>
3548 <h3 id="emailformfield"><code>EmailFormField</code><a class="headerlink" href="#emailformfield" title="Permanent link">#</a></h3>
3549 <p><code>EmailFormField</code> is a form field to enter an email address which is internally validated using <code>UserUtil::isValidEmail()</code>.
3550 The class implements <code>IAttributeFormField</code>, <code>IAutoCompleteFormField</code>, <code>IAutoFocusFormField</code>, <code>ICssClassFormField</code>, <code>II18nFormField</code>, <code>IImmutableFormField</code>, <code>IInputModeFormField</code>, <code>IPatternFormField</code>, and <code>IPlaceholderFormField</code>.</p>
3551 <h3 id="floatformfield"><code>FloatFormField</code><a class="headerlink" href="#floatformfield" title="Permanent link">#</a></h3>
3552 <p><code>FloatFormField</code> is an implementation of <a href="#abstractnumericformfield">AbstractNumericFormField</a> for floating point numbers.</p>
3553 <h3 id="iconformfield"><code>IconFormField</code><a class="headerlink" href="#iconformfield" title="Permanent link">#</a></h3>
3554 <p><code>IconFormField</code> is a form field to select a FontAwesome icon.</p>
3555 <h3 id="integerformfield"><code>IntegerFormField</code><a class="headerlink" href="#integerformfield" title="Permanent link">#</a></h3>
3556 <p><code>IntegerFormField</code> is an implementation of <a href="#abstractnumericformfield">AbstractNumericFormField</a> for integers.</p>
3557 <h3 id="isdisabledformfield"><code>IsDisabledFormField</code><a class="headerlink" href="#isdisabledformfield" title="Permanent link">#</a></h3>
3558 <p><code>IsDisabledFormField</code> is a <a href="#booleanformfield">boolean form field</a> with <code>isDisabled</code> as the default id.</p>
3559 <h3 id="itemlistformfield"><code>ItemListFormField</code><a class="headerlink" href="#itemlistformfield" title="Permanent link">#</a></h3>
3560 <p><code>ItemListFormField</code> is a form field in which multiple values can be entered and returned in different formats as save value.
3561 The class implements <code>IAttributeFormField</code>, <code>IAutoFocusFormField</code>, <code>ICssClassFormField</code>, <code>IImmutableFormField</code>, and <code>IMultipleFormField</code>.
3562 The <code>saveValueType($saveValueType)</code> and <code>getSaveValueType()</code> methods are specific to this form field class and determine the format of the save value.
3563 The following save value types are supported:</p>
3564 <ul>
3565 <li><code>ItemListFormField::SAVE_VALUE_TYPE_ARRAY</code> adds a custom data processor that writes the form field data directly in the parameters array and not in the data sub-array of the parameters array.</li>
3566 <li><code>ItemListFormField::SAVE_VALUE_TYPE_CSV</code> lets the value be returned as a string in which the values are concatenated by commas.</li>
3567 <li><code>ItemListFormField::SAVE_VALUE_TYPE_NSV</code> lets the value be returned as a string in which the values are concatenated by <code>\n</code>.</li>
3568 <li><code>ItemListFormField::SAVE_VALUE_TYPE_SSV</code> lets the value be returned as a string in which the values are concatenated by spaces.</li>
3569 </ul>
3570 <p>By default, <code>ItemListFormField::SAVE_VALUE_TYPE_CSV</code> is used.</p>
3571 <p>If <code>ItemListFormField::SAVE_VALUE_TYPE_ARRAY</code> is used as save value type, <code>ItemListFormField</code> objects register a <a href="../validation_data/#customformfielddataprocessor">custom form field data processor</a> to add the relevant array into the <code>$parameters</code> array directly using the object property as the array key.</p>
3572 <h3 id="multilinetextformfield"><code>MultilineTextFormField</code><a class="headerlink" href="#multilinetextformfield" title="Permanent link">#</a></h3>
3573 <p><code>MultilineTextFormField</code> is a <a href="#textformfield">text form field</a> that supports multiple rows of text.
3574 The methods <code>rows($rows)</code> and <code>getRows()</code> can be used to set and get the number of rows of the <code>textarea</code> elements.
3575 The default number of rows is <code>10</code>.
3576 These methods do <strong>not</strong>, however, restrict the number of text rows that can be entered.</p>
3577 <h3 id="multipleselectionformfield"><code>MultipleSelectionFormField</code><a class="headerlink" href="#multipleselectionformfield" title="Permanent link">#</a></h3>
3578 <p><code>MultipleSelectionFormField</code> is a form fields that allows the selection of multiple options out of a predefined list of available options.
3579 The class implements <code>IAttributeFormField</code>, <code>ICssClassFormField</code>, <code>IFilterableSelectionFormField</code>, <code>IImmutableFormField</code>, and <code>INullableFormField</code>.
3580 If the field is nullable and no option is selected, <code>null</code> is returned as the save value.</p>
3581 <h3 id="radiobuttonformfield"><code>RadioButtonFormField</code><a class="headerlink" href="#radiobuttonformfield" title="Permanent link">#</a></h3>
3582 <p><code>RadioButtonFormField</code> is a form fields that allows the selection of a single option out of a predefined list of available options using radiobuttons.
3583 The class implements <code>IAttributeFormField</code>, <code>ICssClassFormField</code>, <code>IImmutableFormField</code>, and <code>ISelectionFormField</code>.</p>
3584 <h3 id="ratingformfield"><code>RatingFormField</code><a class="headerlink" href="#ratingformfield" title="Permanent link">#</a></h3>
3585 <p><code>RatingFormField</code> is a form field to set a rating for an object.
3586 The class implements <code>IImmutableFormField</code>, <code>IMaximumFormField</code>, <code>IMinimumFormField</code>, and <code>INullableFormField</code>.
3587 Form fields of this class have <code>rating</code> as their default id, <code>wcf.form.field.rating</code> as their default label, <code>1</code> as their default minimum, and <code>5</code> as their default maximum.
3588 For this field, the minimum and maximum refer to the minimum and maximum rating an object can get.
3589 When the field is shown, there will be <code>maximum() - minimum() + 1</code> icons be shown with additional CSS classes that can be set and gotten via <code>defaultCssClasses(array $cssClasses)</code> and <code>getDefaultCssClasses()</code>.
3590 If a rating values is set, the first <code>getValue()</code> icons will instead use the classes that can be set and gotten via <code>activeCssClasses(array $cssClasses)</code> and <code>getActiveCssClasses()</code>.
3591 By default, the only default class is <code>fa-star-o</code> and the active classes are <code>fa-star</code> and <code>orange</code>. </p>
3592 <h3 id="showorderformfield"><code>ShowOrderFormField</code><a class="headerlink" href="#showorderformfield" title="Permanent link">#</a></h3>
3593 <p><code>ShowOrderFormField</code> is a <a href="#singleselectionformfield">single selection form field</a> for which the selected value determines the position at which an object is shown.
3594 The show order field provides a list of all siblings and the object will be positioned <strong>after</strong> the selected sibling.
3595 To insert objects at the very beginning, the <code>options()</code> automatically method prepends an additional option for that case so that only the existing siblings need to be passed.
3596 The default id of instances of this class is <code>showOrder</code> and their default label is <code>wcf.form.field.showOrder</code>.</p>
3597 <div class="admonition info">
3598 <p class="admonition-title">It is important that the relevant object property is always kept updated. Whenever a new object is added or an existing object is edited or delete, the values of the other objects have to be adjusted to ensure consecutive numbering.</p>
3599 </div>
3600 <h3 id="singleselectionformfield"><code>SingleSelectionFormField</code><a class="headerlink" href="#singleselectionformfield" title="Permanent link">#</a></h3>
3601 <p><code>SingleSelectionFormField</code> is a form fields that allows the selection of a single option out of a predefined list of available options.
3602 The class implements <code>ICssClassFormField</code>, <code>IFilterableSelectionFormField</code>, <code>IImmutableFormField</code>, and <code>INullableFormField</code>.
3603 If the field is nullable and the current form field value is considered <code>empty</code> by PHP, <code>null</code> is returned as the save value.</p>
3604 <h3 id="sortorderformfield"><code>SortOrderFormField</code><a class="headerlink" href="#sortorderformfield" title="Permanent link">#</a></h3>
3605 <p><code>SingleSelectionFormField</code> is a <a href="#singleselectionformfield">single selection form field</a> with default id <code>sortOrder</code>, default label <code>wcf.global.showOrder</code> and default options <code>ASC: wcf.global.sortOrder.ascending</code> and <code>DESC: wcf.global.sortOrder.descending</code>.</p>
3606 <h3 id="textformfield"><code>TextFormField</code><a class="headerlink" href="#textformfield" title="Permanent link">#</a></h3>
3607 <p><code>TextFormField</code> is a form field that allows entering a single line of text.
3608 The class implements <code>IAttributeFormField</code>, <code>IAutoCompleteFormField</code>, <code>ICssClassFormField</code>, <code>IImmutableFormField</code>, <code>II18nFormField</code>, <code>IInputModeFormField</code>, <code>IMaximumLengthFormField</code>, <code>IMinimumLengthFormField</code>, <code>IPatternFormField</code>, and <code>IPlaceholderFormField</code>.</p>
3609 <h3 id="titleformfield"><code>TitleFormField</code><a class="headerlink" href="#titleformfield" title="Permanent link">#</a></h3>
3610 <p><code>TitleFormField</code> is a <a href="#textformfield">text form field</a> with <code>title</code> as the default id and <code>wcf.global.title</code> as the default label.</p>
3611 <h3 id="urlformfield"><code>UrlFormField</code><a class="headerlink" href="#urlformfield" title="Permanent link">#</a></h3>
3612 <p><code>UrlFormField</code> is a <a href="#textformfield">text form field</a> whose values are checked via <code>Url::is()</code>.</p>
3613 <h2 id="specific-fields">Specific Fields<a class="headerlink" href="#specific-fields" title="Permanent link">#</a></h2>
3614 <p>The following form fields are reusable fields that generally are bound to a certain API or <code>DatabaseObject</code> implementation.</p>
3615 <h3 id="aclformfield"><code>AclFormField</code><a class="headerlink" href="#aclformfield" title="Permanent link">#</a></h3>
3616 <p><code>AclFormField</code> is used for setting up acl values for specific objects.
3617 The class implements <code>IObjectTypeFormField</code> and requires an object type of the object type definition <code>com.woltlab.wcf.acl</code>.
3618 Additionally, the class provides the methods <code>categoryName($categoryName)</code> and <code>getCategoryName()</code> that allow setting a specific name or filter for the acl option categories whose acl options are shown.
3619 A category name of <code>null</code> signals that no category filter is used.</p>
3620 <div class="admonition info">
3621 <p class="admonition-title">Since version 5.5, the category name also supports filtering using a wildcard like <code>user.*</code>, see <a href="https://github.com/WoltLab/WCF/pull/4355">WoltLab/WCF#4355</a>.</p>
3622 </div>
3623 <p><code>AclFormField</code> objects register a <a href="../validation_data/#customformfielddataprocessor">custom form field data processor</a> to add the relevant ACL object type id into the <code>$parameters</code> array directly using <code>{$objectProperty}_aclObjectTypeID</code> as the array key.
3624 The relevant database object action method is expected, based on the given ACL object type id, to save the ACL option values appropriately.</p>
3625 <h3 id="buttonformfield"><code>ButtonFormField</code><a class="headerlink" href="#buttonformfield" title="Permanent link">#</a></h3>
3626 <div class="admonition info">
3627 <p class="admonition-title">Only available since version 5.4.</p>
3628 </div>
3629 <p><code>ButtonFormField</code> shows a submit button as part of the form.
3630 The class implements <code>IAttributeFormField</code> and <code>ICssClassFormField</code>.</p>
3631 <p>Specifically for this form field, there is the <code>IsNotClickedFormFieldDependency</code> dependency with which certain parts of the form will only be processed if the relevent button has not clicked. </p>
3632 <h3 id="captchaformfield"><code>CaptchaFormField</code><a class="headerlink" href="#captchaformfield" title="Permanent link">#</a></h3>
3633 <p><code>CaptchaFormField</code> is used to add captcha protection to the form.</p>
3634 <p>You must specify a captcha object type (<code>com.woltlab.wcf.captcha</code>) using the <code>objectType()</code> method.</p>
3635 <h3 id="colorformfield"><code>ColorFormField</code><a class="headerlink" href="#colorformfield" title="Permanent link">#</a></h3>
3636 <div class="admonition info">
3637 <p class="admonition-title">Only available since version 5.5.</p>
3638 </div>
3639 <p><code>ColorFormField</code> is used to specify RGBA colors using the <code>rgba(r, g, b, a)</code> format.
3640 The class implements <code>IImmutableFormField</code>.</p>
3641 <h3 id="contentlanguageformfield"><code>ContentLanguageFormField</code><a class="headerlink" href="#contentlanguageformfield" title="Permanent link">#</a></h3>
3642 <p><code>ContentLanguageFormField</code> is used to select the content language of an object.
3643 Fields of this class are only available if multilingualism is enabled and if there are content languages.
3644 The class implements <code>IImmutableFormField</code>.</p>
3645 <h3 id="labelformfield"><code>LabelFormField</code><a class="headerlink" href="#labelformfield" title="Permanent link">#</a></h3>
3646 <p><code>LabelFormField</code> is used to select a label from a specific label group.
3647 The class implements <code>IObjectTypeFormNode</code>.</p>
3648 <p>The <code>labelGroup(ViewableLabelGroup $labelGroup)</code> and <code>getLabelGroup()</code> methods are specific to this form field class and can be used to set and get the label group whose labels can be selected.
3649 Additionally, there is the static method <code>createFields($objectType, array $labelGroups, $objectProperty = 'labelIDs)</code> that can be used to create all relevant label form fields for a given list of label groups.
3650 In most cases, <code>LabelFormField::createFields()</code> should be used.</p>
3651 <h3 id="optionformfield"><code>OptionFormField</code><a class="headerlink" href="#optionformfield" title="Permanent link">#</a></h3>
3652 <p><code>OptionFormField</code> is an <a href="#itemlistformfield">item list form field</a> to set a list of options.
3653 The class implements <code>IPackagesFormField</code> and only options of the set packages are considered available.
3654 The default label of instances of this class is <code>wcf.form.field.option</code> and their default id is <code>options</code>.</p>
3655 <h3 id="simpleaclformfield"><code>SimpleAclFormField</code><a class="headerlink" href="#simpleaclformfield" title="Permanent link">#</a></h3>
3656 <p><code>SimpleAclFormField</code> is used for setting up simple acl values (one <code>yes</code>/<code>no</code> option per user and user group) for specific objects.</p>
3657 <p><code>SimpleAclFormField</code> objects register a <a href="../validation_data/#customformfielddataprocessor">custom form field data processor</a> to add the relevant simple ACL data array into the <code>$parameters</code> array directly using the object property as the array key.</p>
3658 <div class="admonition info">
3659 <p class="admonition-title">Since version 5.5, the field also supports inverted permissions, see <a href="https://github.com/WoltLab/WCF/pull/4570">WoltLab/WCF#4570</a>.</p>
3660 </div>
3661 <p>The <code>SimpleAclFormField</code> supports inverted permissions, allowing the administrator to grant access to all non-selected users and groups. If this behavior is desired, it needs to be enabled by calling <code>supportInvertedPermissions</code>. An <code>invertPermissions</code> key containing a boolean value with the users selection will be provided together with the ACL values when saving the field.</p>
3662 <h3 id="singlemediaselectionformfield"><code>SingleMediaSelectionFormField</code><a class="headerlink" href="#singlemediaselectionformfield" title="Permanent link">#</a></h3>
3663 <p><code>SingleMediaSelectionFormField</code> is used to select a specific media file.
3664 The class implements <code>IImmutableFormField</code>.</p>
3665 <p>The following methods are specific to this form field class:</p>
3666 <ul>
3667 <li><code>imageOnly($imageOnly = true)</code> and <code>isImageOnly()</code> can be used to set and check if only images may be selected.</li>
3668 <li><code>getMedia()</code> returns the media file based on the current field value if a field is set.</li>
3669 </ul>
3670 <h3 id="tagformfield"><code>TagFormField</code><a class="headerlink" href="#tagformfield" title="Permanent link">#</a></h3>
3671 <p><code>TagFormField</code> is a form field to enter tags.
3672 The class implements <code>IAttributeFormField</code> and <code>IObjectTypeFormNode</code>.
3673 Arrays passed to <code>TagFormField::values()</code> can contain tag names as strings and <code>Tag</code> objects.
3674 The default label of instances of this class is <code>wcf.tagging.tags</code> and their default description is <code>wcf.tagging.tags.description</code>.</p>
3675 <p><code>TagFormField</code> objects register a <a href="../validation_data/#customformfielddataprocessor">custom form field data processor</a> to add the array with entered tag names into the <code>$parameters</code> array directly using the object property as the array key.</p>
3676 <h3 id="uploadformfield"><code>UploadFormField</code><a class="headerlink" href="#uploadformfield" title="Permanent link">#</a></h3>
3677 <p><code>UploadFormField</code> is a form field that allows uploading files by the user.</p>
3678 <p><code>UploadFormField</code> objects register a <a href="../validation_data/#customformfielddataprocessor">custom form field data processor</a> to add the array of <code>wcf\system\file\upload\UploadFile\UploadFile</code> into the <code>$parameters</code> array directly using the object property as the array key. Also it registers the removed files as an array of <code>wcf\system\file\upload\UploadFile\UploadFile</code> into the <code>$parameters</code> array directly using the object property with the suffix <code>_removedFiles</code> as the array key. </p>
3679 <p>The field supports additional settings:
3680 - <code>imageOnly($imageOnly = true)</code> and <code>isImageOnly()</code> can be used to ensure that the uploaded files are only images.
3681 - <code>allowSvgImage($allowSvgImages = true)</code> and <code>svgImageAllowed()</code> can be used to allow SVG images, if the image only mode is enabled (otherwise, the method will throw an exception). By default, SVG images are not allowed.</p>
3682 <h4 id="provide-value-from-database-object">Provide value from database object<a class="headerlink" href="#provide-value-from-database-object" title="Permanent link">#</a></h4>
3683 <p>To provide values from a database object, you should implement the method <code>get{$objectProperty}UploadFileLocations()</code> to your database object class. This method must return an array of strings with the locations of the files.</p>
3684 <h4 id="process-files">Process files<a class="headerlink" href="#process-files" title="Permanent link">#</a></h4>
3685 <p>To process files in the database object action class, you must <a href="https://secure.php.net/manual/en/function.rename.php"><code>rename</code></a> the file to the final destination. You get the temporary location, by calling the method <code>getLocation()</code> on the given <code>UploadFile</code> objects. After that, you call <code>setProcessed($location)</code> with <code>$location</code> contains the new file location. This method sets the <code>isProcessed</code> flag to true and saves the new location. For updating files, it is relevant, whether a given file is already processed or not. For this case, the <code>UploadFile</code> object has an method <code>isProcessed()</code> which indicates, whether a file is already processed or new uploaded.</p>
3686 <h3 id="userformfield"><code>UserFormField</code><a class="headerlink" href="#userformfield" title="Permanent link">#</a></h3>
3687 <p><code>UserFormField</code> is a form field to enter existing users.
3688 The class implements <code>IAutoCompleteFormField</code>, <code>IAutoFocusFormField</code>, <code>IImmutableFormField</code>, <code>IMultipleFormField</code>, and <code>INullableFormField</code>.
3689 While the user is presented the names of the specified users in the user interface, the field returns the ids of the users as data.
3690 The relevant <code>UserProfile</code> objects can be accessed via the <code>getUsers()</code> method.</p>
3691 <h3 id="userpasswordfield"><code>UserPasswordField</code><a class="headerlink" href="#userpasswordfield" title="Permanent link">#</a></h3>
3692 <div class="admonition info">
3693 <p class="admonition-title">Only available since version 5.4.</p>
3694 </div>
3695 <p><code>UserPasswordField</code> is a form field for users' to enter their current password.
3696 The class implements <code>IAttributeFormField</code>, <code>IAttributeFormField</code>, <code>IAutoCompleteFormField</code>, <code>IAutoFocusFormField</code>, and <code>IPlaceholderFormField</code></p>
3697 <h3 id="usergroupoptionformfield"><code>UserGroupOptionFormField</code><a class="headerlink" href="#usergroupoptionformfield" title="Permanent link">#</a></h3>
3698 <p><code>UserGroupOptionFormField</code> is an <a href="#itemlistformfield">item list form field</a> to set a list of user group options/permissions.
3699 The class implements <code>IPackagesFormField</code> and only user group options of the set packages are considered available.
3700 The default label of instances of this class is <code>wcf.form.field.userGroupOption</code> and their default id is <code>permissions</code>.</p>
3701 <h3 id="usernameformfield"><code>UsernameFormField</code><a class="headerlink" href="#usernameformfield" title="Permanent link">#</a></h3>
3702 <p><code>UsernameFormField</code> is used for entering one non-existing username.
3703 The class implements <code>IAttributeFormField</code>, <code>IImmutableFormField</code>, <code>IMaximumLengthFormField</code>, <code>IMinimumLengthFormField</code>, <code>INullableFormField</code>, and <code>IPlaceholderFormField</code>.
3704 As usernames have a system-wide restriction of a minimum length of 3 and a maximum length of 100 characters, these values are also used as the default value for the field’s minimum and maximum length.</p>
3705 <h2 id="wysiwyg-form-container">Wysiwyg form container<a class="headerlink" href="#wysiwyg-form-container" title="Permanent link">#</a></h2>
3706 <p>To integrate a wysiwyg editor into a form, you have to create a <code>WysiwygFormContainer</code> object.
3707 This container takes care of creating all necessary form nodes listed below for a wysiwyg editor.</p>
3708 <div class="admonition warning">
3709 <p class="admonition-title">When creating the container object, its id has to be the id of the form field that will manage the actual text.</p>
3710 </div>
3711 <p>The following methods are specific to this form container class:</p>
3712 <ul>
3713 <li><code>addSettingsNode(IFormChildNode $settingsNode)</code> and <code>addSettingsNodes(array $settingsNodes)</code> can be used to add nodes to the settings tab container.</li>
3714 <li><code>attachmentData($objectType, $parentObjectID)</code> can be used to set the data relevant for attachment support.
3715 By default, not attachment data is set, thus attachments are not supported.</li>
3716 <li><code>getAttachmentField()</code>, <code>getPollContainer()</code>, <code>getSettingsContainer()</code>, <code>getSmiliesContainer()</code>, and <code>getWysiwygField()</code> can be used to get the different components of the wysiwyg form container once the form has been built.</li>
3717 <li><code>enablePreviewButton($enablePreviewButton)</code> can be used to set whether the preview button for the message is shown or not.
3718 By default, the preview button is shown.
3719 This method is only relevant before the form is built.
3720 Afterwards, the preview button availability can not be changed.
3721 Only available since WoltLab Suite Core 5.3.</li>
3722 <li><code>getObjectId()</code> returns the id of the edited object or <code>0</code> if no object is edited.</li>
3723 <li><code>getPreselect()</code>, <code>preselect($preselect)</code> can be used to set the value of the wysiwyg tab menu's <code>data-preselect</code> attribute used to determine which tab is preselected.
3724 By default, the preselect is <code>'true'</code> which is used to pre-select the first tab.</li>
3725 <li><code>messageObjectType($messageObjectType)</code> can be used to set the message object type.</li>
3726 <li><code>pollObjectType($pollObjectType)</code> can be used to set the poll object type.
3727 By default, no poll object type is set, thus the poll form field container is not available.</li>
3728 <li><code>supportMentions($supportMentions)</code> can be used to set if mentions are supported.
3729 By default, mentions are not supported.
3730 This method is only relevant before the form is built.
3731 Afterwards, mention support can only be changed via the wysiwyg form field.</li>
3732 <li><code>supportSmilies($supportSmilies)</code> can be used to set if smilies are supported.
3733 By default, smilies are supported.
3734 This method is only relevant before the form is built.
3735 Afterwards, smiley availability can only be changed via changing the availability of the smilies form container.</li>
3736 </ul>
3737 <h3 id="wysiwygattachmentformfield"><code>WysiwygAttachmentFormField</code><a class="headerlink" href="#wysiwygattachmentformfield" title="Permanent link">#</a></h3>
3738 <p><code>WysiwygAttachmentFormField</code> provides attachment support for a wysiwyg editor via a tab in the menu below the editor.
3739 This class should not be used directly but only via <code>WysiwygFormContainer</code>.
3740 The methods <code>attachmentHandler(AttachmentHandler $attachmentHandler)</code> and <code>getAttachmentHandler()</code> can be used to set and get the <code>AttachmentHandler</code> object that is used for uploaded attachments.</p>
3741 <h3 id="wysiwygpollformcontainer"><code>WysiwygPollFormContainer</code><a class="headerlink" href="#wysiwygpollformcontainer" title="Permanent link">#</a></h3>
3742 <p><code>WysiwygPollFormContainer</code> provides poll support for a wysiwyg editor via a tab in the menu below the editor.
3743 This class should not be used directly but only via <code>WysiwygFormContainer</code>.
3744 <code>WysiwygPollFormContainer</code> contains all form fields that are required to create polls and requires edited objects to implement <code>IPollContainer</code>.</p>
3745 <p>The following methods are specific to this form container class:</p>
3746 <ul>
3747 <li><code>getEndTimeField()</code> returns the form field to set the end time of the poll once the form has been built.</li>
3748 <li><code>getIsChangeableField()</code> returns the form field to set if poll votes can be changed once the form has been built.</li>
3749 <li><code>getIsPublicField()</code> returns the form field to set if poll results are public once the form has been built.</li>
3750 <li><code>getMaxVotesField()</code> returns the form field to set the maximum number of votes once the form has been built.</li>
3751 <li><code>getOptionsField()</code> returns the form field to set the poll options once the form has been built.</li>
3752 <li><code>getQuestionField()</code> returns the form field to set the poll question once the form has been built.</li>
3753 <li><code>getResultsRequireVoteField()</code> returns the form field to set if viewing the poll results requires voting once the form has been built.</li>
3754 <li><code>getSortByVotesField()</code> returns the form field to set if the results are sorted by votes once the form has been built.</li>
3755 </ul>
3756 <h3 id="wysiwygsmileyformcontainer"><code>WysiwygSmileyFormContainer</code><a class="headerlink" href="#wysiwygsmileyformcontainer" title="Permanent link">#</a></h3>
3757 <p><code>WysiwygSmileyFormContainer</code> provides smiley support for a wysiwyg editor via a tab in the menu below the editor.
3758 This class should not be used directly but only via <code>WysiwygFormContainer</code>.
3759 <code>WysiwygSmileyFormContainer</code> creates a sub-tab for each smiley category.</p>
3760 <h4 id="wysiwygsmileyformnode"><code>WysiwygSmileyFormNode</code><a class="headerlink" href="#wysiwygsmileyformnode" title="Permanent link">#</a></h4>
3761 <p><code>WysiwygSmileyFormNode</code> is contains the smilies of a specific category.
3762 This class should not be used directly but only via <code>WysiwygSmileyFormContainer</code>.</p>
3763 <h3 id="example">Example<a class="headerlink" href="#example" title="Permanent link">#</a></h3>
3764 <p>The following code creates a WYSIWYG editor component for a <code>message</code> object property.
3765 As smilies are supported by default and an attachment object type is given, the tab menu below the editor has two tabs: “Smilies” and “Attachments”.
3766 Additionally, mentions and quotes are supported.</p>
3767 <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
3768 <span class="normal">2</span>
3769 <span class="normal">3</span>
3770 <span class="normal">4</span>
3771 <span class="normal">5</span>
3772 <span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nx">WysiwygFormContainer</span><span class="o">::</span><span class="na">create</span><span class="p">(</span><span class="s1">&#39;message&#39;</span><span class="p">)</span>
3773 <span class="o">-&gt;</span><span class="na">label</span><span class="p">(</span><span class="s1">&#39;foo.bar.message&#39;</span><span class="p">)</span>
3774 <span class="o">-&gt;</span><span class="na">messageObjectType</span><span class="p">(</span><span class="s1">&#39;com.example.foo.bar&#39;</span><span class="p">)</span>
3775 <span class="o">-&gt;</span><span class="na">attachmentData</span><span class="p">(</span><span class="s1">&#39;com.example.foo.bar&#39;</span><span class="p">)</span>
3776 <span class="o">-&gt;</span><span class="na">supportMentions</span><span class="p">()</span>
3777 <span class="o">-&gt;</span><span class="na">supportQuotes</span><span class="p">()</span>
3778 </code></pre></div></td></tr></table></div>
3779 <h3 id="wysiwygformfield"><code>WysiwygFormField</code><a class="headerlink" href="#wysiwygformfield" title="Permanent link">#</a></h3>
3780 <p><code>WysiwygFormField</code> is used for wysiwyg editor form fields.
3781 This class should, in general, not be used directly but only via <code>WysiwygFormContainer</code>.
3782 The class implements <code>IAttributeFormField</code>, <code>IMaximumLengthFormField</code>, <code>IMinimumLengthFormField</code>, and <code>IObjectTypeFormNode</code> and requires an object type of the object type definition <code>com.woltlab.wcf.message</code>.
3783 The following methods are specific to this form field class:</p>
3784 <ul>
3785 <li><code>autosaveId($autosaveId)</code> and <code>getAutosaveId()</code> can be used enable automatically saving the current editor contents in the browser using the given id.
3786 An empty string signals that autosaving is disabled.</li>
3787 <li><code>lastEditTime($lastEditTime)</code> and <code>getLastEditTime()</code> can be used to set the last time the contents have been edited and saved so that the JavaScript can determine if the contents stored in the browser are older or newer.
3788 <code>0</code> signals that no last edit time has been set.</li>
3789 <li>
3790 <p><code>supportAttachments($supportAttachments)</code> and <code>supportsAttachments()</code> can be used to set and check if the form field supports attachments.</p>
3791 <div class="admonition warning">
3792 <p class="admonition-title">It is not sufficient to simply signal attachment support via these methods for attachments to work. These methods are relevant internally to signal the Javascript code that the editor supports attachments. Actual attachment support is provided by <code>WysiwygAttachmentFormField</code>.</p>
3793 </div>
3794 </li>
3795 <li>
3796 <p><code>supportMentions($supportMentions)</code> and <code>supportsMentions()</code> can be used to set and check if the form field supports mentions of other users.</p>
3797 </li>
3798 </ul>
3799 <p><code>WysiwygFormField</code> objects register a <a href="../validation_data/#customformfielddataprocessor">custom form field data processor</a> to add the relevant simple ACL data array into the <code>$parameters</code> array directly using the object property as the array key.</p>
3800 <h3 id="twysiwygformnode"><code>TWysiwygFormNode</code><a class="headerlink" href="#twysiwygformnode" title="Permanent link">#</a></h3>
3801 <p>All form nodes that need to know the id of the <code>WysiwygFormField</code> field should use <code>TWysiwygFormNode</code>.
3802 This trait provides <code>getWysiwygId()</code> and <code>wysiwygId($wysiwygId)</code> to get and set the relevant wysiwyg editor id.</p>
3803 <h2 id="application-specific-form-fields">Application-Specific Form Fields<a class="headerlink" href="#application-specific-form-fields" title="Permanent link">#</a></h2>
3804 <h3 id="woltlab-suite-forum">WoltLab Suite Forum<a class="headerlink" href="#woltlab-suite-forum" title="Permanent link">#</a></h3>
3805 <h4 id="multipleboardselectionformfield"><code>MultipleBoardSelectionFormField</code><a class="headerlink" href="#multipleboardselectionformfield" title="Permanent link">#</a></h4>
3806 <div class="admonition info">
3807 <p class="admonition-title">Only available since version 5.5.</p>
3808 </div>
3809 <p><code>MultipleBoardSelectionFormField</code> is used to select multiple forums.
3810 The class implements <code>IAttributeFormField</code>, <code>ICssClassFormField</code>, and <code>IImmutableFormField</code>.</p>
3811 <p>The field supports additional settings:</p>
3812 <ul>
3813 <li><code>boardNodeList(BoardNodeList $boardNodeList): self</code> and <code>getBoardNodeList(): BoardNodeList</code> are used to set and get the list of board nodes used to render the board selection.
3814 <code>boardNodeList(BoardNodeList $boardNodeList): self</code> will automatically call <code>readNodeTree()</code> on the given board node list.</li>
3815 <li><code>categoriesSelectable(bool $categoriesSelectable = true): self</code> and <code>areCategoriesSelectable(): bool</code> are used to set and check if the categories in the board node list are selectable.
3816 By default, categories are selectable.
3817 This option is useful if only actual boards, in which threads can be posted, should be selectable but the categories must still be shown so that the overall forum structure is still properly shown.</li>
3818 <li><code>supportExternalLinks(bool $supportExternalLinks): self</code> and <code>supportsExternalLinks(): bool</code> are used to set and check if external links will be shown in the selection list.
3819 By default, external links are shown.
3820 Like in the example given before, in cases where only actual boards, in which threads can be posted, are relevant, this option allows to exclude external links.</li>
3821 </ul>
3822 <h2 id="single-use-form-fields">Single-Use Form Fields<a class="headerlink" href="#single-use-form-fields" title="Permanent link">#</a></h2>
3823 <p>The following form fields are specific for certain forms and hardly reusable in other contexts.</p>
3824 <h3 id="bbcodeattributesformfield"><code>BBCodeAttributesFormField</code><a class="headerlink" href="#bbcodeattributesformfield" title="Permanent link">#</a></h3>
3825 <p><code>DevtoolsProjectExcludedPackagesFormField</code> is a form field for setting the attributes of a BBCode.</p>
3826 <h3 id="devtoolsprojectexcludedpackagesformfield"><code>DevtoolsProjectExcludedPackagesFormField</code><a class="headerlink" href="#devtoolsprojectexcludedpackagesformfield" title="Permanent link">#</a></h3>
3827 <p><code>DevtoolsProjectExcludedPackagesFormField</code> is a form field for setting the excluded packages of a devtools project.</p>
3828 <h3 id="devtoolsprojectinstructionsformfield"><code>DevtoolsProjectInstructionsFormField</code><a class="headerlink" href="#devtoolsprojectinstructionsformfield" title="Permanent link">#</a></h3>
3829 <p><code>DevtoolsProjectExcludedPackagesFormField</code> is a form field for setting the installation and update instructions of a devtools project.</p>
3830 <h3 id="devtoolsprojectoptionalpackagesformfield"><code>DevtoolsProjectOptionalPackagesFormField</code><a class="headerlink" href="#devtoolsprojectoptionalpackagesformfield" title="Permanent link">#</a></h3>
3831 <p><code>DevtoolsProjectExcludedPackagesFormField</code> is a form field for setting the optional packages of a devtools project.</p>
3832 <h3 id="devtoolsprojectrequiredpackagesformfield"><code>DevtoolsProjectRequiredPackagesFormField</code><a class="headerlink" href="#devtoolsprojectrequiredpackagesformfield" title="Permanent link">#</a></h3>
3833 <p><code>DevtoolsProjectExcludedPackagesFormField</code> is a form field for setting the required packages of a devtools project.</p>
3834
3835 <hr>
3836 <div class="md-source-file">
3837 <small>
3838
3839 Last update:
3840 2021-11-08
3841
3842 </small>
3843 </div>
3844
3845
3846 </article>
3847
3848 </div>
3849 </div>
3850
3851 </main>
3852
3853 <footer class="md-footer">
3854
3855
3856 <nav class="md-footer__inner md-grid" aria-label="Footer" >
3857
3858
3859 <a href="../structure/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Structure" rel="prev">
3860 <div class="md-footer__button md-icon">
3861 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
3862 </div>
3863 <div class="md-footer__title">
3864 <div class="md-ellipsis">
3865 <span class="md-footer__direction">
3866 Previous
3867 </span>
3868 Structure
3869 </div>
3870 </div>
3871 </a>
3872
3873
3874
3875 <a href="../validation_data/" class="md-footer__link md-footer__link--next" aria-label="Next: Validation and Data" rel="next">
3876 <div class="md-footer__title">
3877 <div class="md-ellipsis">
3878 <span class="md-footer__direction">
3879 Next
3880 </span>
3881 Validation and Data
3882 </div>
3883 </div>
3884 <div class="md-footer__button md-icon">
3885 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
3886 </div>
3887 </a>
3888
3889 </nav>
3890
3891 <div class="md-footer-meta md-typeset">
3892 <div class="md-footer-meta__inner md-grid">
3893 <div class="md-copyright">
3894
3895 <div class="md-copyright__highlight">
3896 Copyright © 2020 WoltLab GmbH
3897 </div>
3898
3899
3900 Made with
3901 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
3902 Material for MkDocs
3903 </a>
3904
3905 </div>
3906
3907 <div class="md-copyright">
3908 <a href="https://www.woltlab.com/legal-notice/">Legal Notice</a>
3909 <a href="https://www.woltlab.com/privacy-policy/">Privacy Policy</a>
3910 </div>
3911
3912 </div>
3913 </div>
3914 </footer>
3915
3916 </div>
3917 <div class="md-dialog" data-md-component="dialog">
3918 <div class="md-dialog__inner md-typeset"></div>
3919 </div>
3920 <script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.b97dbffb.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "version": {"provider": "mike"}}</script>
3921
3922
3923 <script src="../../../../assets/javascripts/bundle.6c7ad80a.min.js"></script>
3924
3925
3926 </body>
3927 </html>