Deployed da17ee2 to 5.4 with MkDocs 1.1.2 and mike 0.5.5
[GitHub/WoltLab/woltlab.github.io.git] / latest / package / pip / sql / 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
12 <link rel="shortcut icon" href="../../../assets/default.favicon.ico">
13 <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-7.0.3">
14
15
16
17 <title>sql - WoltLab Suite Documentation</title>
18
19
20
21 <link rel="stylesheet" href="../../../assets/stylesheets/main.1655a90d.min.css">
22
23
24 <link rel="stylesheet" href="../../../assets/stylesheets/palette.7fa14f5b.min.css">
25
26
27
28 <meta name="theme-color" content="#009485">
29
30
31
32
33
34
35
36
37 <link rel="stylesheet" href="../../../stylesheets/extra.css">
38
39
40
41
42
43 </head>
44
45
46
47
48
49
50
51 <body dir="ltr" data-md-color-scheme="" data-md-color-primary="teal" data-md-color-accent="">
52
53
54
55 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
56 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
57 <label class="md-overlay" for="__drawer"></label>
58 <div data-md-component="skip">
59
60
61 <a href="#sql-package-installation-plugin" class="md-skip">
62 Skip to content
63 </a>
64
65 </div>
66 <div data-md-component="announce">
67
68 <aside class="md-announce">
69 <div class="md-announce__inner md-grid md-typeset">
70
71 <a href="https://www.woltlab.com">Back to <strong>woltlab.com</strong></a>
72
73 </div>
74 </aside>
75
76 </div>
77
78
79
80 <header class="md-header" data-md-component="header">
81 <nav class="md-header__inner md-grid" aria-label="Header">
82 <a href="../../.." title="WoltLab Suite Documentation" class="md-header__button md-logo" aria-label="WoltLab Suite Documentation">
83
84 <img src="../../../assets/logo.png" alt="logo">
85
86 </a>
87 <label class="md-header__button md-icon" for="__drawer">
88 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
89 </label>
90 <div class="md-header__title" data-md-component="header-title">
91 <div class="md-header__ellipsis">
92 <div class="md-header__topic">
93 <span class="md-ellipsis">
94 WoltLab Suite Documentation
95 </span>
96 </div>
97 <div class="md-header__topic" data-md-component="header-topic">
98 <span class="md-ellipsis">
99
100 sql
101
102 </span>
103 </div>
104 </div>
105 </div>
106 <div class="md-header__options">
107
108 </div>
109
110 <label class="md-header__button md-icon" for="__search">
111 <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>
112 </label>
113
114 <div class="md-search" data-md-component="search" role="dialog">
115 <label class="md-search__overlay" for="__search"></label>
116 <div class="md-search__inner" role="search">
117 <form class="md-search__form" name="search">
118 <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" data-md-state="active" required>
119 <label class="md-search__icon md-icon" for="__search">
120 <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>
121 <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>
122 </label>
123 <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
124 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.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>
125 </button>
126 </form>
127 <div class="md-search__output">
128 <div class="md-search__scrollwrap" data-md-scrollfix>
129 <div class="md-search-result" data-md-component="search-result">
130 <div class="md-search-result__meta">
131 Initializing search
132 </div>
133 <ol class="md-search-result__list"></ol>
134 </div>
135 </div>
136 </div>
137 </div>
138 </div>
139
140
141 </nav>
142 </header>
143
144 <div class="md-container" data-md-component="container">
145
146
147
148
149 <main class="md-main" data-md-component="main">
150 <div class="md-main__inner md-grid">
151
152
153
154 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
155 <div class="md-sidebar__scrollwrap">
156 <div class="md-sidebar__inner">
157
158
159
160
161
162 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
163 <label class="md-nav__title" for="__drawer">
164 <a href="../../.." title="WoltLab Suite Documentation" class="md-nav__button md-logo" aria-label="WoltLab Suite Documentation">
165
166 <img src="../../../assets/logo.png" alt="logo">
167
168 </a>
169 WoltLab Suite Documentation
170 </label>
171
172 <ul class="md-nav__list" data-md-scrollfix>
173
174
175
176
177
178
179
180
181 <li class="md-nav__item">
182 <a href="../../../getting-started/" class="md-nav__link">
183 Getting Started
184 </a>
185 </li>
186
187
188
189
190
191
192
193
194
195
196
197 <li class="md-nav__item md-nav__item--nested">
198
199
200 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" >
201
202 <label class="md-nav__link" for="__nav_2">
203 PHP API
204 <span class="md-nav__icon md-icon"></span>
205 </label>
206 <nav class="md-nav" aria-label="PHP API" data-md-level="1">
207 <label class="md-nav__title" for="__nav_2">
208 <span class="md-nav__icon md-icon"></span>
209 PHP API
210 </label>
211 <ul class="md-nav__list" data-md-scrollfix>
212
213
214
215
216
217 <li class="md-nav__item">
218 <a href="../../../php/pages/" class="md-nav__link">
219 Pages
220 </a>
221 </li>
222
223
224
225
226
227
228
229 <li class="md-nav__item">
230 <a href="../../../php/database-objects/" class="md-nav__link">
231 Database Objects
232 </a>
233 </li>
234
235
236
237
238
239
240
241 <li class="md-nav__item">
242 <a href="../../../php/database-access/" class="md-nav__link">
243 Database Access
244 </a>
245 </li>
246
247
248
249
250
251
252
253 <li class="md-nav__item">
254 <a href="../../../php/exceptions/" class="md-nav__link">
255 Exceptions
256 </a>
257 </li>
258
259
260
261
262
263
264
265
266 <li class="md-nav__item md-nav__item--nested">
267
268
269 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
270
271 <label class="md-nav__link" for="__nav_2_5">
272 API
273 <span class="md-nav__icon md-icon"></span>
274 </label>
275 <nav class="md-nav" aria-label="API" data-md-level="2">
276 <label class="md-nav__title" for="__nav_2_5">
277 <span class="md-nav__icon md-icon"></span>
278 API
279 </label>
280 <ul class="md-nav__list" data-md-scrollfix>
281
282
283
284
285
286 <li class="md-nav__item">
287 <a href="../../../php/api/caches/" class="md-nav__link">
288 Caches
289 </a>
290 </li>
291
292
293
294
295
296
297
298 <li class="md-nav__item">
299 <a href="../../../php/api/comments/" class="md-nav__link">
300 Comments
301 </a>
302 </li>
303
304
305
306
307
308
309
310 <li class="md-nav__item">
311 <a href="../../../php/api/cronjobs/" class="md-nav__link">
312 Cronjobs
313 </a>
314 </li>
315
316
317
318
319
320
321
322 <li class="md-nav__item">
323 <a href="../../../php/api/events/" class="md-nav__link">
324 Events
325 </a>
326 </li>
327
328
329
330
331
332
333
334
335 <li class="md-nav__item md-nav__item--nested">
336
337
338 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5_5" type="checkbox" id="__nav_2_5_5" >
339
340 <label class="md-nav__link" for="__nav_2_5_5">
341 Form Builder
342 <span class="md-nav__icon md-icon"></span>
343 </label>
344 <nav class="md-nav" aria-label="Form Builder" data-md-level="3">
345 <label class="md-nav__title" for="__nav_2_5_5">
346 <span class="md-nav__icon md-icon"></span>
347 Form Builder
348 </label>
349 <ul class="md-nav__list" data-md-scrollfix>
350
351
352
353
354
355 <li class="md-nav__item">
356 <a href="../../../php/api/form_builder/overview/" class="md-nav__link">
357 Overview
358 </a>
359 </li>
360
361
362
363
364
365
366
367 <li class="md-nav__item">
368 <a href="../../../php/api/form_builder/structure/" class="md-nav__link">
369 Structure
370 </a>
371 </li>
372
373
374
375
376
377
378
379 <li class="md-nav__item">
380 <a href="../../../php/api/form_builder/form_fields/" class="md-nav__link">
381 Fields
382 </a>
383 </li>
384
385
386
387
388
389
390
391 <li class="md-nav__item">
392 <a href="../../../php/api/form_builder/validation_data/" class="md-nav__link">
393 Validation and Data
394 </a>
395 </li>
396
397
398
399
400
401
402
403 <li class="md-nav__item">
404 <a href="../../../php/api/form_builder/dependencies/" class="md-nav__link">
405 Dependencies
406 </a>
407 </li>
408
409
410
411 </ul>
412 </nav>
413 </li>
414
415
416
417
418
419
420
421 <li class="md-nav__item">
422 <a href="../../../php/api/package_installation_plugins/" class="md-nav__link">
423 Package Installation Plugins
424 </a>
425 </li>
426
427
428
429
430
431
432
433 <li class="md-nav__item">
434 <a href="../../../php/api/user_activity_points/" class="md-nav__link">
435 User Activity Points
436 </a>
437 </li>
438
439
440
441
442
443
444
445 <li class="md-nav__item">
446 <a href="../../../php/api/user_notifications/" class="md-nav__link">
447 User Notifications
448 </a>
449 </li>
450
451
452
453
454
455
456
457 <li class="md-nav__item">
458 <a href="../../../php/api/sitemaps/" class="md-nav__link">
459 Sitemaps
460 </a>
461 </li>
462
463
464
465 </ul>
466 </nav>
467 </li>
468
469
470
471
472
473
474
475 <li class="md-nav__item">
476 <a href="../../../php/code-style/" class="md-nav__link">
477 Code Style
478 </a>
479 </li>
480
481
482
483
484
485
486
487 <li class="md-nav__item">
488 <a href="../../../php/apps/" class="md-nav__link">
489 Apps
490 </a>
491 </li>
492
493
494
495
496
497
498
499 <li class="md-nav__item">
500 <a href="../../../php/gdpr/" class="md-nav__link">
501 GDPR
502 </a>
503 </li>
504
505
506
507 </ul>
508 </nav>
509 </li>
510
511
512
513
514
515
516
517
518
519
520
521 <li class="md-nav__item md-nav__item--nested">
522
523
524 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
525
526 <label class="md-nav__link" for="__nav_3">
527 Languages, Templates & CSS
528 <span class="md-nav__icon md-icon"></span>
529 </label>
530 <nav class="md-nav" aria-label="Languages, Templates & CSS" data-md-level="1">
531 <label class="md-nav__title" for="__nav_3">
532 <span class="md-nav__icon md-icon"></span>
533 Languages, Templates & CSS
534 </label>
535 <ul class="md-nav__list" data-md-scrollfix>
536
537
538
539
540
541 <li class="md-nav__item">
542 <a href="../../../view/languages/" class="md-nav__link">
543 Languages
544 </a>
545 </li>
546
547
548
549
550
551
552
553 <li class="md-nav__item">
554 <a href="../../../view/templates/" class="md-nav__link">
555 Templates
556 </a>
557 </li>
558
559
560
561
562
563
564
565 <li class="md-nav__item">
566 <a href="../../../view/css/" class="md-nav__link">
567 CSS
568 </a>
569 </li>
570
571
572
573 </ul>
574 </nav>
575 </li>
576
577
578
579
580
581
582
583
584
585
586
587 <li class="md-nav__item md-nav__item--nested">
588
589
590 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
591
592 <label class="md-nav__link" for="__nav_4">
593 JavaScript API
594 <span class="md-nav__icon md-icon"></span>
595 </label>
596 <nav class="md-nav" aria-label="JavaScript API" data-md-level="1">
597 <label class="md-nav__title" for="__nav_4">
598 <span class="md-nav__icon md-icon"></span>
599 JavaScript API
600 </label>
601 <ul class="md-nav__list" data-md-scrollfix>
602
603
604
605
606
607 <li class="md-nav__item">
608 <a href="../../../javascript/general-usage/" class="md-nav__link">
609 General Usage
610 </a>
611 </li>
612
613
614
615
616
617
618
619
620 <li class="md-nav__item md-nav__item--nested">
621
622
623 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2" type="checkbox" id="__nav_4_2" >
624
625 <label class="md-nav__link" for="__nav_4_2">
626 New API
627 <span class="md-nav__icon md-icon"></span>
628 </label>
629 <nav class="md-nav" aria-label="New API" data-md-level="2">
630 <label class="md-nav__title" for="__nav_4_2">
631 <span class="md-nav__icon md-icon"></span>
632 New API
633 </label>
634 <ul class="md-nav__list" data-md-scrollfix>
635
636
637
638
639
640 <li class="md-nav__item">
641 <a href="../../../javascript/new-api_writing-a-module/" class="md-nav__link">
642 Writing a module
643 </a>
644 </li>
645
646
647
648
649
650
651
652 <li class="md-nav__item">
653 <a href="../../../javascript/new-api_data-structures/" class="md-nav__link">
654 Data Structures
655 </a>
656 </li>
657
658
659
660
661
662
663
664 <li class="md-nav__item">
665 <a href="../../../javascript/new-api_core/" class="md-nav__link">
666 Core Functions
667 </a>
668 </li>
669
670
671
672
673
674
675
676 <li class="md-nav__item">
677 <a href="../../../javascript/new-api_dom/" class="md-nav__link">
678 DOM
679 </a>
680 </li>
681
682
683
684
685
686
687
688 <li class="md-nav__item">
689 <a href="../../../javascript/new-api_events/" class="md-nav__link">
690 Event Handling
691 </a>
692 </li>
693
694
695
696
697
698
699
700 <li class="md-nav__item">
701 <a href="../../../javascript/new-api_ajax/" class="md-nav__link">
702 Ajax
703 </a>
704 </li>
705
706
707
708
709
710
711
712 <li class="md-nav__item">
713 <a href="../../../javascript/new-api_dialogs/" class="md-nav__link">
714 Dialogs
715 </a>
716 </li>
717
718
719
720
721
722
723
724 <li class="md-nav__item">
725 <a href="../../../javascript/new-api_browser/" class="md-nav__link">
726 Browser and Screen Sizes
727 </a>
728 </li>
729
730
731
732
733
734
735
736 <li class="md-nav__item">
737 <a href="../../../javascript/new-api_ui/" class="md-nav__link">
738 User Interface
739 </a>
740 </li>
741
742
743
744 </ul>
745 </nav>
746 </li>
747
748
749
750
751
752
753
754 <li class="md-nav__item">
755 <a href="../../../javascript/legacy-api/" class="md-nav__link">
756 Legacy API
757 </a>
758 </li>
759
760
761
762
763
764
765
766 <li class="md-nav__item">
767 <a href="../../../javascript/helper-functions/" class="md-nav__link">
768 Helper Functions
769 </a>
770 </li>
771
772
773
774
775
776
777
778 <li class="md-nav__item">
779 <a href="../../../javascript/code-snippets/" class="md-nav__link">
780 Code Snippets
781 </a>
782 </li>
783
784
785
786 </ul>
787 </nav>
788 </li>
789
790
791
792
793
794
795
796
797
798
799
800
801
802 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
803
804
805 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" checked>
806
807 <label class="md-nav__link" for="__nav_5">
808 Package Components
809 <span class="md-nav__icon md-icon"></span>
810 </label>
811 <nav class="md-nav" aria-label="Package Components" data-md-level="1">
812 <label class="md-nav__title" for="__nav_5">
813 <span class="md-nav__icon md-icon"></span>
814 Package Components
815 </label>
816 <ul class="md-nav__list" data-md-scrollfix>
817
818
819
820
821
822 <li class="md-nav__item">
823 <a href="../../package-xml/" class="md-nav__link">
824 package.xml
825 </a>
826 </li>
827
828
829
830
831
832
833
834
835
836
837 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
838
839
840 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_2" type="checkbox" id="__nav_5_2" checked>
841
842 <label class="md-nav__link" for="__nav_5_2">
843 PIPs
844 <span class="md-nav__icon md-icon"></span>
845 </label>
846 <nav class="md-nav" aria-label="PIPs" data-md-level="2">
847 <label class="md-nav__title" for="__nav_5_2">
848 <span class="md-nav__icon md-icon"></span>
849 PIPs
850 </label>
851 <ul class="md-nav__list" data-md-scrollfix>
852
853
854
855
856
857 <li class="md-nav__item">
858 <a href="../" class="md-nav__link">
859 Overview
860 </a>
861 </li>
862
863
864
865
866
867
868
869 <li class="md-nav__item">
870 <a href="../acl-option/" class="md-nav__link">
871 aclOption
872 </a>
873 </li>
874
875
876
877
878
879
880
881 <li class="md-nav__item">
882 <a href="../acp-menu/" class="md-nav__link">
883 acpMenu
884 </a>
885 </li>
886
887
888
889
890
891
892
893 <li class="md-nav__item">
894 <a href="../acp-search-provider/" class="md-nav__link">
895 acpSearchProvider
896 </a>
897 </li>
898
899
900
901
902
903
904
905 <li class="md-nav__item">
906 <a href="../acp-template/" class="md-nav__link">
907 acpTemplate
908 </a>
909 </li>
910
911
912
913
914
915
916
917 <li class="md-nav__item">
918 <a href="../bbcode/" class="md-nav__link">
919 bbcode
920 </a>
921 </li>
922
923
924
925
926
927
928
929 <li class="md-nav__item">
930 <a href="../box/" class="md-nav__link">
931 box
932 </a>
933 </li>
934
935
936
937
938
939
940
941 <li class="md-nav__item">
942 <a href="../clipboard-action/" class="md-nav__link">
943 clipboardAction
944 </a>
945 </li>
946
947
948
949
950
951
952
953 <li class="md-nav__item">
954 <a href="../core-object/" class="md-nav__link">
955 coreObject
956 </a>
957 </li>
958
959
960
961
962
963
964
965 <li class="md-nav__item">
966 <a href="../cronjob/" class="md-nav__link">
967 cronjob
968 </a>
969 </li>
970
971
972
973
974
975
976
977 <li class="md-nav__item">
978 <a href="../event-listener/" class="md-nav__link">
979 eventListener
980 </a>
981 </li>
982
983
984
985
986
987
988
989 <li class="md-nav__item">
990 <a href="../file/" class="md-nav__link">
991 file
992 </a>
993 </li>
994
995
996
997
998
999
1000
1001 <li class="md-nav__item">
1002 <a href="../language/" class="md-nav__link">
1003 language
1004 </a>
1005 </li>
1006
1007
1008
1009
1010
1011
1012
1013 <li class="md-nav__item">
1014 <a href="../media-provider/" class="md-nav__link">
1015 mediaProvider
1016 </a>
1017 </li>
1018
1019
1020
1021
1022
1023
1024
1025 <li class="md-nav__item">
1026 <a href="../menu/" class="md-nav__link">
1027 menu
1028 </a>
1029 </li>
1030
1031
1032
1033
1034
1035
1036
1037 <li class="md-nav__item">
1038 <a href="../menu-item/" class="md-nav__link">
1039 menuItem
1040 </a>
1041 </li>
1042
1043
1044
1045
1046
1047
1048
1049 <li class="md-nav__item">
1050 <a href="../object-type/" class="md-nav__link">
1051 objectType
1052 </a>
1053 </li>
1054
1055
1056
1057
1058
1059
1060
1061 <li class="md-nav__item">
1062 <a href="../object-type-definition/" class="md-nav__link">
1063 objectTypeDefinition
1064 </a>
1065 </li>
1066
1067
1068
1069
1070
1071
1072
1073 <li class="md-nav__item">
1074 <a href="../option/" class="md-nav__link">
1075 option
1076 </a>
1077 </li>
1078
1079
1080
1081
1082
1083
1084
1085 <li class="md-nav__item">
1086 <a href="../page/" class="md-nav__link">
1087 page
1088 </a>
1089 </li>
1090
1091
1092
1093
1094
1095
1096
1097 <li class="md-nav__item">
1098 <a href="../pip/" class="md-nav__link">
1099 pip
1100 </a>
1101 </li>
1102
1103
1104
1105
1106
1107
1108
1109 <li class="md-nav__item">
1110 <a href="../script/" class="md-nav__link">
1111 script
1112 </a>
1113 </li>
1114
1115
1116
1117
1118
1119
1120
1121 <li class="md-nav__item">
1122 <a href="../smiley/" class="md-nav__link">
1123 smiley
1124 </a>
1125 </li>
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135 <li class="md-nav__item md-nav__item--active">
1136
1137 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
1138
1139
1140
1141
1142 <label class="md-nav__link md-nav__link--active" for="__toc">
1143 sql
1144 <span class="md-nav__icon md-icon"></span>
1145 </label>
1146
1147 <a href="./" class="md-nav__link md-nav__link--active">
1148 sql
1149 </a>
1150
1151
1152 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1153
1154
1155
1156
1157
1158 <label class="md-nav__title" for="__toc">
1159 <span class="md-nav__icon md-icon"></span>
1160 Table of contents
1161 </label>
1162 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1163
1164 <li class="md-nav__item">
1165 <a href="#expected-value" class="md-nav__link">
1166 Expected Value
1167 </a>
1168
1169 </li>
1170
1171 <li class="md-nav__item">
1172 <a href="#features" class="md-nav__link">
1173 Features
1174 </a>
1175
1176 <nav class="md-nav" aria-label="Features">
1177 <ul class="md-nav__list">
1178
1179 <li class="md-nav__item">
1180 <a href="#logging" class="md-nav__link">
1181 Logging
1182 </a>
1183
1184 </li>
1185
1186 <li class="md-nav__item">
1187 <a href="#instance-number" class="md-nav__link">
1188 Instance Number
1189 </a>
1190
1191 </li>
1192
1193 <li class="md-nav__item">
1194 <a href="#table-type" class="md-nav__link">
1195 Table Type
1196 </a>
1197
1198 </li>
1199
1200 </ul>
1201 </nav>
1202
1203 </li>
1204
1205 <li class="md-nav__item">
1206 <a href="#limitations" class="md-nav__link">
1207 Limitations
1208 </a>
1209
1210 <nav class="md-nav" aria-label="Limitations">
1211 <ul class="md-nav__list">
1212
1213 <li class="md-nav__item">
1214 <a href="#logging_1" class="md-nav__link">
1215 Logging
1216 </a>
1217
1218 </li>
1219
1220 <li class="md-nav__item">
1221 <a href="#triggers" class="md-nav__link">
1222 Triggers
1223 </a>
1224
1225 </li>
1226
1227 </ul>
1228 </nav>
1229
1230 </li>
1231
1232 <li class="md-nav__item">
1233 <a href="#example" class="md-nav__link">
1234 Example
1235 </a>
1236
1237 </li>
1238
1239 </ul>
1240
1241 </nav>
1242
1243 </li>
1244
1245
1246
1247
1248
1249
1250
1251 <li class="md-nav__item">
1252 <a href="../style/" class="md-nav__link">
1253 style
1254 </a>
1255 </li>
1256
1257
1258
1259
1260
1261
1262
1263 <li class="md-nav__item">
1264 <a href="../template/" class="md-nav__link">
1265 template
1266 </a>
1267 </li>
1268
1269
1270
1271
1272
1273
1274
1275 <li class="md-nav__item">
1276 <a href="../template-listener/" class="md-nav__link">
1277 templateListener
1278 </a>
1279 </li>
1280
1281
1282
1283
1284
1285
1286
1287 <li class="md-nav__item">
1288 <a href="../user-group-option/" class="md-nav__link">
1289 userGroupOption
1290 </a>
1291 </li>
1292
1293
1294
1295
1296
1297
1298
1299 <li class="md-nav__item">
1300 <a href="../user-menu/" class="md-nav__link">
1301 userMenu
1302 </a>
1303 </li>
1304
1305
1306
1307
1308
1309
1310
1311 <li class="md-nav__item">
1312 <a href="../user-notification-event/" class="md-nav__link">
1313 userNotificationEvent
1314 </a>
1315 </li>
1316
1317
1318
1319
1320
1321
1322
1323 <li class="md-nav__item">
1324 <a href="../user-option/" class="md-nav__link">
1325 userOption
1326 </a>
1327 </li>
1328
1329
1330
1331
1332
1333
1334
1335 <li class="md-nav__item">
1336 <a href="../user-profile-menu/" class="md-nav__link">
1337 userProfileMenu
1338 </a>
1339 </li>
1340
1341
1342
1343 </ul>
1344 </nav>
1345 </li>
1346
1347
1348
1349
1350
1351
1352
1353 <li class="md-nav__item">
1354 <a href="../../database-php-api/" class="md-nav__link">
1355 Database PHP API
1356 </a>
1357 </li>
1358
1359
1360
1361 </ul>
1362 </nav>
1363 </li>
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375 <li class="md-nav__item md-nav__item--nested">
1376
1377
1378 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
1379
1380 <label class="md-nav__link" for="__nav_6">
1381 Migration
1382 <span class="md-nav__icon md-icon"></span>
1383 </label>
1384 <nav class="md-nav" aria-label="Migration" data-md-level="1">
1385 <label class="md-nav__title" for="__nav_6">
1386 <span class="md-nav__icon md-icon"></span>
1387 Migration
1388 </label>
1389 <ul class="md-nav__list" data-md-scrollfix>
1390
1391
1392
1393
1394
1395
1396 <li class="md-nav__item md-nav__item--nested">
1397
1398
1399 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_1" type="checkbox" id="__nav_6_1" >
1400
1401 <label class="md-nav__link" for="__nav_6_1">
1402 Migrating from WSC 5.3
1403 <span class="md-nav__icon md-icon"></span>
1404 </label>
1405 <nav class="md-nav" aria-label="Migrating from WSC 5.3" data-md-level="2">
1406 <label class="md-nav__title" for="__nav_6_1">
1407 <span class="md-nav__icon md-icon"></span>
1408 Migrating from WSC 5.3
1409 </label>
1410 <ul class="md-nav__list" data-md-scrollfix>
1411
1412
1413
1414
1415
1416 <li class="md-nav__item">
1417 <a href="../../../migration/wsc53/php/" class="md-nav__link">
1418 PHP API
1419 </a>
1420 </li>
1421
1422
1423
1424
1425
1426
1427
1428 <li class="md-nav__item">
1429 <a href="../../../migration/wsc53/session/" class="md-nav__link">
1430 Session Handling and Authentication
1431 </a>
1432 </li>
1433
1434
1435
1436
1437
1438
1439
1440 <li class="md-nav__item">
1441 <a href="../../../migration/wsc53/javascript/" class="md-nav__link">
1442 JavaScript
1443 </a>
1444 </li>
1445
1446
1447
1448
1449
1450
1451
1452 <li class="md-nav__item">
1453 <a href="../../../migration/wsc53/templates/" class="md-nav__link">
1454 Templates
1455 </a>
1456 </li>
1457
1458
1459
1460
1461
1462
1463
1464 <li class="md-nav__item">
1465 <a href="../../../migration/wsc53/libraries/" class="md-nav__link">
1466 Third Party Libraries
1467 </a>
1468 </li>
1469
1470
1471
1472 </ul>
1473 </nav>
1474 </li>
1475
1476
1477
1478
1479
1480
1481
1482
1483 <li class="md-nav__item md-nav__item--nested">
1484
1485
1486 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
1487
1488 <label class="md-nav__link" for="__nav_6_2">
1489 Migrating from WSC 5.2
1490 <span class="md-nav__icon md-icon"></span>
1491 </label>
1492 <nav class="md-nav" aria-label="Migrating from WSC 5.2" data-md-level="2">
1493 <label class="md-nav__title" for="__nav_6_2">
1494 <span class="md-nav__icon md-icon"></span>
1495 Migrating from WSC 5.2
1496 </label>
1497 <ul class="md-nav__list" data-md-scrollfix>
1498
1499
1500
1501
1502
1503 <li class="md-nav__item">
1504 <a href="../../../migration/wsc52/php/" class="md-nav__link">
1505 PHP API
1506 </a>
1507 </li>
1508
1509
1510
1511
1512
1513
1514
1515 <li class="md-nav__item">
1516 <a href="../../../migration/wsc52/templates/" class="md-nav__link">
1517 Templates and Languages
1518 </a>
1519 </li>
1520
1521
1522
1523
1524
1525
1526
1527 <li class="md-nav__item">
1528 <a href="../../../migration/wsc52/libraries/" class="md-nav__link">
1529 Third Party Libraries
1530 </a>
1531 </li>
1532
1533
1534
1535 </ul>
1536 </nav>
1537 </li>
1538
1539
1540
1541
1542
1543
1544
1545
1546 <li class="md-nav__item md-nav__item--nested">
1547
1548
1549 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" >
1550
1551 <label class="md-nav__link" for="__nav_6_3">
1552 Migrating from WSC 3.1
1553 <span class="md-nav__icon md-icon"></span>
1554 </label>
1555 <nav class="md-nav" aria-label="Migrating from WSC 3.1" data-md-level="2">
1556 <label class="md-nav__title" for="__nav_6_3">
1557 <span class="md-nav__icon md-icon"></span>
1558 Migrating from WSC 3.1
1559 </label>
1560 <ul class="md-nav__list" data-md-scrollfix>
1561
1562
1563
1564
1565
1566 <li class="md-nav__item">
1567 <a href="../../../migration/wsc31/php/" class="md-nav__link">
1568 PHP API
1569 </a>
1570 </li>
1571
1572
1573
1574 </ul>
1575 </nav>
1576 </li>
1577
1578
1579
1580
1581
1582
1583
1584
1585 <li class="md-nav__item md-nav__item--nested">
1586
1587
1588 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_4" type="checkbox" id="__nav_6_4" >
1589
1590 <label class="md-nav__link" for="__nav_6_4">
1591 Migrating from WSC 3.0
1592 <span class="md-nav__icon md-icon"></span>
1593 </label>
1594 <nav class="md-nav" aria-label="Migrating from WSC 3.0" data-md-level="2">
1595 <label class="md-nav__title" for="__nav_6_4">
1596 <span class="md-nav__icon md-icon"></span>
1597 Migrating from WSC 3.0
1598 </label>
1599 <ul class="md-nav__list" data-md-scrollfix>
1600
1601
1602
1603
1604
1605 <li class="md-nav__item">
1606 <a href="../../../migration/wsc30/php/" class="md-nav__link">
1607 PHP API
1608 </a>
1609 </li>
1610
1611
1612
1613
1614
1615
1616
1617 <li class="md-nav__item">
1618 <a href="../../../migration/wsc30/javascript/" class="md-nav__link">
1619 JavaScript API
1620 </a>
1621 </li>
1622
1623
1624
1625
1626
1627
1628
1629 <li class="md-nav__item">
1630 <a href="../../../migration/wsc30/templates/" class="md-nav__link">
1631 Templates
1632 </a>
1633 </li>
1634
1635
1636
1637
1638
1639
1640
1641 <li class="md-nav__item">
1642 <a href="../../../migration/wsc30/css/" class="md-nav__link">
1643 CSS
1644 </a>
1645 </li>
1646
1647
1648
1649
1650
1651
1652
1653 <li class="md-nav__item">
1654 <a href="../../../migration/wsc30/package/" class="md-nav__link">
1655 Package Components
1656 </a>
1657 </li>
1658
1659
1660
1661 </ul>
1662 </nav>
1663 </li>
1664
1665
1666
1667
1668
1669
1670
1671
1672 <li class="md-nav__item md-nav__item--nested">
1673
1674
1675 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_5" type="checkbox" id="__nav_6_5" >
1676
1677 <label class="md-nav__link" for="__nav_6_5">
1678 Migrating from WCF 2.1
1679 <span class="md-nav__icon md-icon"></span>
1680 </label>
1681 <nav class="md-nav" aria-label="Migrating from WCF 2.1" data-md-level="2">
1682 <label class="md-nav__title" for="__nav_6_5">
1683 <span class="md-nav__icon md-icon"></span>
1684 Migrating from WCF 2.1
1685 </label>
1686 <ul class="md-nav__list" data-md-scrollfix>
1687
1688
1689
1690
1691
1692 <li class="md-nav__item">
1693 <a href="../../../migration/wcf21/php/" class="md-nav__link">
1694 PHP API
1695 </a>
1696 </li>
1697
1698
1699
1700
1701
1702
1703
1704 <li class="md-nav__item">
1705 <a href="../../../migration/wcf21/templates/" class="md-nav__link">
1706 Templates
1707 </a>
1708 </li>
1709
1710
1711
1712
1713
1714
1715
1716 <li class="md-nav__item">
1717 <a href="../../../migration/wcf21/css/" class="md-nav__link">
1718 CSS
1719 </a>
1720 </li>
1721
1722
1723
1724
1725
1726
1727
1728 <li class="md-nav__item">
1729 <a href="../../../migration/wcf21/package/" class="md-nav__link">
1730 Package Components
1731 </a>
1732 </li>
1733
1734
1735
1736 </ul>
1737 </nav>
1738 </li>
1739
1740
1741
1742 </ul>
1743 </nav>
1744 </li>
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756 <li class="md-nav__item md-nav__item--nested">
1757
1758
1759 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
1760
1761 <label class="md-nav__link" for="__nav_7">
1762 Tutorials
1763 <span class="md-nav__icon md-icon"></span>
1764 </label>
1765 <nav class="md-nav" aria-label="Tutorials" data-md-level="1">
1766 <label class="md-nav__title" for="__nav_7">
1767 <span class="md-nav__icon md-icon"></span>
1768 Tutorials
1769 </label>
1770 <ul class="md-nav__list" data-md-scrollfix>
1771
1772
1773
1774
1775
1776
1777 <li class="md-nav__item md-nav__item--nested">
1778
1779
1780 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_1" type="checkbox" id="__nav_7_1" >
1781
1782 <label class="md-nav__link" for="__nav_7_1">
1783 Tutorial Series
1784 <span class="md-nav__icon md-icon"></span>
1785 </label>
1786 <nav class="md-nav" aria-label="Tutorial Series" data-md-level="2">
1787 <label class="md-nav__title" for="__nav_7_1">
1788 <span class="md-nav__icon md-icon"></span>
1789 Tutorial Series
1790 </label>
1791 <ul class="md-nav__list" data-md-scrollfix>
1792
1793
1794
1795
1796
1797 <li class="md-nav__item">
1798 <a href="../../../tutorial/series/overview/" class="md-nav__link">
1799 Overview
1800 </a>
1801 </li>
1802
1803
1804
1805
1806
1807
1808
1809 <li class="md-nav__item">
1810 <a href="../../../tutorial/series/part_1/" class="md-nav__link">
1811 Part 1
1812 </a>
1813 </li>
1814
1815
1816
1817
1818
1819
1820
1821 <li class="md-nav__item">
1822 <a href="../../../tutorial/series/part_2/" class="md-nav__link">
1823 Part 2
1824 </a>
1825 </li>
1826
1827
1828
1829
1830
1831
1832
1833 <li class="md-nav__item">
1834 <a href="../../../tutorial/series/part_3/" class="md-nav__link">
1835 Part 3
1836 </a>
1837 </li>
1838
1839
1840
1841 </ul>
1842 </nav>
1843 </li>
1844
1845
1846
1847 </ul>
1848 </nav>
1849 </li>
1850
1851
1852
1853 </ul>
1854 </nav>
1855 </div>
1856 </div>
1857 </div>
1858
1859
1860
1861 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1862 <div class="md-sidebar__scrollwrap">
1863 <div class="md-sidebar__inner">
1864
1865 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1866
1867
1868
1869
1870
1871 <label class="md-nav__title" for="__toc">
1872 <span class="md-nav__icon md-icon"></span>
1873 Table of contents
1874 </label>
1875 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1876
1877 <li class="md-nav__item">
1878 <a href="#expected-value" class="md-nav__link">
1879 Expected Value
1880 </a>
1881
1882 </li>
1883
1884 <li class="md-nav__item">
1885 <a href="#features" class="md-nav__link">
1886 Features
1887 </a>
1888
1889 <nav class="md-nav" aria-label="Features">
1890 <ul class="md-nav__list">
1891
1892 <li class="md-nav__item">
1893 <a href="#logging" class="md-nav__link">
1894 Logging
1895 </a>
1896
1897 </li>
1898
1899 <li class="md-nav__item">
1900 <a href="#instance-number" class="md-nav__link">
1901 Instance Number
1902 </a>
1903
1904 </li>
1905
1906 <li class="md-nav__item">
1907 <a href="#table-type" class="md-nav__link">
1908 Table Type
1909 </a>
1910
1911 </li>
1912
1913 </ul>
1914 </nav>
1915
1916 </li>
1917
1918 <li class="md-nav__item">
1919 <a href="#limitations" class="md-nav__link">
1920 Limitations
1921 </a>
1922
1923 <nav class="md-nav" aria-label="Limitations">
1924 <ul class="md-nav__list">
1925
1926 <li class="md-nav__item">
1927 <a href="#logging_1" class="md-nav__link">
1928 Logging
1929 </a>
1930
1931 </li>
1932
1933 <li class="md-nav__item">
1934 <a href="#triggers" class="md-nav__link">
1935 Triggers
1936 </a>
1937
1938 </li>
1939
1940 </ul>
1941 </nav>
1942
1943 </li>
1944
1945 <li class="md-nav__item">
1946 <a href="#example" class="md-nav__link">
1947 Example
1948 </a>
1949
1950 </li>
1951
1952 </ul>
1953
1954 </nav>
1955 </div>
1956 </div>
1957 </div>
1958
1959
1960 <div class="md-content" data-md-component="content">
1961 <article class="md-content__inner md-typeset">
1962
1963
1964
1965 <h1 id="sql-package-installation-plugin">SQL Package Installation Plugin<a class="headerlink" href="#sql-package-installation-plugin" title="Permanent link">#</a></h1>
1966 <p>Execute SQL instructions using a MySQL-flavored syntax.</p>
1967 <div class="admonition warning">
1968 <p class="admonition-title">This file is parsed by WoltLab Suite Core to allow reverting of certain changes, but not every syntax MySQL supports is recognized by the parser. To avoid any troubles, you should always use statements relying on the SQL standard.</p>
1969 </div>
1970 <h2 id="expected-value">Expected Value<a class="headerlink" href="#expected-value" title="Permanent link">#</a></h2>
1971 <p>The <code>sql</code> package installation plugin expects a relative path to a <code>.sql</code> file.</p>
1972 <h2 id="features">Features<a class="headerlink" href="#features" title="Permanent link">#</a></h2>
1973 <h3 id="logging">Logging<a class="headerlink" href="#logging" title="Permanent link">#</a></h3>
1974 <p>WoltLab Suite Core uses a SQL parser to extract queries and log certain actions.
1975 This allows WoltLab Suite Core to revert some of the changes you apply upon package uninstallation.</p>
1976 <p>The logged changes are:</p>
1977 <ul>
1978 <li><code>CREATE TABLE</code></li>
1979 <li><code>ALTER TABLE … ADD COLUMN</code></li>
1980 <li><code>ALTER TABLE … ADD … KEY</code></li>
1981 </ul>
1982 <h3 id="instance-number">Instance Number<a class="headerlink" href="#instance-number" title="Permanent link">#</a></h3>
1983 <p>It is possible to use different instance numbers, e.g. two separate WoltLab Suite Core installations within one database.
1984 WoltLab Suite Core requires you to always use <code>wcf1_&lt;tableName&gt;</code> or <code>&lt;app&gt;1_&lt;tableName&gt;</code> (e.g. <code>blog1_blog</code> in WoltLab Suite Blog), the number (<code>1</code>) will be automatically replaced prior to execution.
1985 If you every use anything other but <code>1</code>, you will eventually break things, thus always use <code>1</code>!</p>
1986 <h3 id="table-type">Table Type<a class="headerlink" href="#table-type" title="Permanent link">#</a></h3>
1987 <p>WoltLab Suite Core will determine the type of database tables on its own:
1988 If the table contains a <code>FULLTEXT</code> index, it uses <code>MyISAM</code>, otherwise <code>InnoDB</code> is used.</p>
1989 <h2 id="limitations">Limitations<a class="headerlink" href="#limitations" title="Permanent link">#</a></h2>
1990 <h3 id="logging_1">Logging<a class="headerlink" href="#logging_1" title="Permanent link">#</a></h3>
1991 <p>WoltLab Suite Core cannot revert changes to the database structure which would cause to the data to be either changed or new data to be incompatible with the original format.
1992 Additionally, WoltLab Suite Core does not track regular SQL queries such as <code>DELETE</code> or <code>UPDATE</code>.</p>
1993 <h3 id="triggers">Triggers<a class="headerlink" href="#triggers" title="Permanent link">#</a></h3>
1994 <p>WoltLab Suite Core does not support trigger since MySQL does not support execution of triggers if the event was fired by a cascading foreign key action.
1995 If you really need triggers, you should consider adding them by custom SQL queries using a <a href="../script/">script</a>.</p>
1996 <h2 id="example">Example<a class="headerlink" href="#example" title="Permanent link">#</a></h2>
1997 <p><code>package.xml</code>:</p>
1998 <div class="highlight"><pre><span></span><code><span class="nt">&lt;instruction</span> <span class="na">type=</span><span class="s">&quot;sql&quot;</span><span class="nt">&gt;</span>install.sql<span class="nt">&lt;/instruction&gt;</span>
1999 </code></pre></div>
2000 <p>Example content:</p>
2001 <div class="highlight"><pre><span></span><code><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">wcf1_foo_bar</span> <span class="p">(</span>
2002 <span class="n">fooID</span> <span class="nb">INT</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="k">NOT</span> <span class="k">NULL</span> <span class="n">AUTO_INCREMENT</span> <span class="k">PRIMARY</span> <span class="k">KEY</span><span class="p">,</span>
2003 <span class="n">packageID</span> <span class="nb">INT</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
2004 <span class="n">bar</span> <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">255</span><span class="p">)</span> <span class="k">NOT</span> <span class="k">NULL</span> <span class="k">DEFAULT</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
2005 <span class="n">foobar</span> <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span> <span class="k">NOT</span> <span class="k">NULL</span> <span class="k">DEFAULT</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
2006
2007 <span class="k">UNIQUE</span> <span class="k">KEY</span> <span class="n">baz</span> <span class="p">(</span><span class="n">bar</span><span class="p">,</span> <span class="n">foobar</span><span class="p">)</span>
2008 <span class="p">);</span>
2009
2010 <span class="k">ALTER</span> <span class="k">TABLE</span> <span class="n">wcf1_foo_bar</span> <span class="k">ADD</span> <span class="k">FOREIGN</span> <span class="k">KEY</span> <span class="p">(</span><span class="n">packageID</span><span class="p">)</span> <span class="k">REFERENCES</span> <span class="n">wcf1_package</span> <span class="p">(</span><span class="n">packageID</span><span class="p">)</span> <span class="k">ON</span> <span class="k">DELETE</span> <span class="k">CASCADE</span><span class="p">;</span>
2011 </code></pre></div>
2012
2013
2014
2015
2016
2017
2018
2019 </article>
2020 </div>
2021 </div>
2022 </main>
2023
2024
2025 <footer class="md-footer">
2026
2027 <nav class="md-footer__inner md-grid" aria-label="Footer">
2028
2029 <a href="../smiley/" class="md-footer__link md-footer__link--prev" rel="prev">
2030 <div class="md-footer__button md-icon">
2031 <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>
2032 </div>
2033 <div class="md-footer__title">
2034 <div class="md-ellipsis">
2035 <span class="md-footer__direction">
2036 Previous
2037 </span>
2038 smiley
2039 </div>
2040 </div>
2041 </a>
2042
2043
2044 <a href="../style/" class="md-footer__link md-footer__link--next" rel="next">
2045 <div class="md-footer__title">
2046 <div class="md-ellipsis">
2047 <span class="md-footer__direction">
2048 Next
2049 </span>
2050 style
2051 </div>
2052 </div>
2053 <div class="md-footer__button md-icon">
2054 <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>
2055 </div>
2056 </a>
2057
2058 </nav>
2059
2060 <div class="md-footer-meta md-typeset">
2061 <div class="md-footer-meta__inner md-grid">
2062 <div class="md-footer-copyright">
2063
2064 <div class="md-footer-copyright__highlight">
2065 Copyright © 2020 WoltLab GmbH
2066 </div>
2067
2068 Made with
2069 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2070 Material for MkDocs
2071 </a>
2072 </div>
2073 <div class="md-footer-copyright">
2074 <a href="https://www.woltlab.com/legal-notice/">Legal Notice</a>
2075 <a href="https://www.woltlab.com/privacy-policy/">Privacy Policy</a>
2076 </div>
2077 </div>
2078 </div>
2079 </footer>
2080
2081 </div>
2082 <div class="md-dialog" data-md-component="dialog">
2083 <div class="md-dialog__inner md-typeset"></div>
2084 </div>
2085 <script id="__config" type="application/json">{"base": "../../..", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}, "search": "../../../assets/javascripts/workers/search.fb4a9340.min.js", "version": {"provider": "mike"}}</script>
2086
2087
2088 <script src="../../../assets/javascripts/bundle.ca5457b8.min.js"></script>
2089
2090
2091 </body>
2092 </html>