Deployed 506b5bb to 5.4 with MkDocs 1.1.2 and mike 0.5.5
[GitHub/WoltLab/woltlab.github.io.git] / latest / package / pip / 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.5">
14
15
16
17 <title>Overview - WoltLab Suite Documentation</title>
18
19
20
21 <link rel="stylesheet" href="../../assets/stylesheets/main.77f3fd56.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="#package-installation-plugins" 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 Overview
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
858
859 <li class="md-nav__item md-nav__item--active">
860
861 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
862
863
864
865
866 <label class="md-nav__link md-nav__link--active" for="__toc">
867 Overview
868 <span class="md-nav__icon md-icon"></span>
869 </label>
870
871 <a href="./" class="md-nav__link md-nav__link--active">
872 Overview
873 </a>
874
875
876 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
877
878
879
880
881
882 <label class="md-nav__title" for="__toc">
883 <span class="md-nav__icon md-icon"></span>
884 Table of contents
885 </label>
886 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
887
888 <li class="md-nav__item">
889 <a href="#built-in-pips" class="md-nav__link">
890 Built-In PIPs
891 </a>
892
893 </li>
894
895 </ul>
896
897 </nav>
898
899 </li>
900
901
902
903
904
905
906
907 <li class="md-nav__item">
908 <a href="acl-option/" class="md-nav__link">
909 aclOption
910 </a>
911 </li>
912
913
914
915
916
917
918
919 <li class="md-nav__item">
920 <a href="acp-menu/" class="md-nav__link">
921 acpMenu
922 </a>
923 </li>
924
925
926
927
928
929
930
931 <li class="md-nav__item">
932 <a href="acp-search-provider/" class="md-nav__link">
933 acpSearchProvider
934 </a>
935 </li>
936
937
938
939
940
941
942
943 <li class="md-nav__item">
944 <a href="acp-template/" class="md-nav__link">
945 acpTemplate
946 </a>
947 </li>
948
949
950
951
952
953
954
955 <li class="md-nav__item">
956 <a href="bbcode/" class="md-nav__link">
957 bbcode
958 </a>
959 </li>
960
961
962
963
964
965
966
967 <li class="md-nav__item">
968 <a href="box/" class="md-nav__link">
969 box
970 </a>
971 </li>
972
973
974
975
976
977
978
979 <li class="md-nav__item">
980 <a href="clipboard-action/" class="md-nav__link">
981 clipboardAction
982 </a>
983 </li>
984
985
986
987
988
989
990
991 <li class="md-nav__item">
992 <a href="core-object/" class="md-nav__link">
993 coreObject
994 </a>
995 </li>
996
997
998
999
1000
1001
1002
1003 <li class="md-nav__item">
1004 <a href="cronjob/" class="md-nav__link">
1005 cronjob
1006 </a>
1007 </li>
1008
1009
1010
1011
1012
1013
1014
1015 <li class="md-nav__item">
1016 <a href="event-listener/" class="md-nav__link">
1017 eventListener
1018 </a>
1019 </li>
1020
1021
1022
1023
1024
1025
1026
1027 <li class="md-nav__item">
1028 <a href="file/" class="md-nav__link">
1029 file
1030 </a>
1031 </li>
1032
1033
1034
1035
1036
1037
1038
1039 <li class="md-nav__item">
1040 <a href="language/" class="md-nav__link">
1041 language
1042 </a>
1043 </li>
1044
1045
1046
1047
1048
1049
1050
1051 <li class="md-nav__item">
1052 <a href="media-provider/" class="md-nav__link">
1053 mediaProvider
1054 </a>
1055 </li>
1056
1057
1058
1059
1060
1061
1062
1063 <li class="md-nav__item">
1064 <a href="menu/" class="md-nav__link">
1065 menu
1066 </a>
1067 </li>
1068
1069
1070
1071
1072
1073
1074
1075 <li class="md-nav__item">
1076 <a href="menu-item/" class="md-nav__link">
1077 menuItem
1078 </a>
1079 </li>
1080
1081
1082
1083
1084
1085
1086
1087 <li class="md-nav__item">
1088 <a href="object-type/" class="md-nav__link">
1089 objectType
1090 </a>
1091 </li>
1092
1093
1094
1095
1096
1097
1098
1099 <li class="md-nav__item">
1100 <a href="object-type-definition/" class="md-nav__link">
1101 objectTypeDefinition
1102 </a>
1103 </li>
1104
1105
1106
1107
1108
1109
1110
1111 <li class="md-nav__item">
1112 <a href="option/" class="md-nav__link">
1113 option
1114 </a>
1115 </li>
1116
1117
1118
1119
1120
1121
1122
1123 <li class="md-nav__item">
1124 <a href="page/" class="md-nav__link">
1125 page
1126 </a>
1127 </li>
1128
1129
1130
1131
1132
1133
1134
1135 <li class="md-nav__item">
1136 <a href="pip/" class="md-nav__link">
1137 pip
1138 </a>
1139 </li>
1140
1141
1142
1143
1144
1145
1146
1147 <li class="md-nav__item">
1148 <a href="script/" class="md-nav__link">
1149 script
1150 </a>
1151 </li>
1152
1153
1154
1155
1156
1157
1158
1159 <li class="md-nav__item">
1160 <a href="smiley/" class="md-nav__link">
1161 smiley
1162 </a>
1163 </li>
1164
1165
1166
1167
1168
1169
1170
1171 <li class="md-nav__item">
1172 <a href="sql/" class="md-nav__link">
1173 sql
1174 </a>
1175 </li>
1176
1177
1178
1179
1180
1181
1182
1183 <li class="md-nav__item">
1184 <a href="style/" class="md-nav__link">
1185 style
1186 </a>
1187 </li>
1188
1189
1190
1191
1192
1193
1194
1195 <li class="md-nav__item">
1196 <a href="template/" class="md-nav__link">
1197 template
1198 </a>
1199 </li>
1200
1201
1202
1203
1204
1205
1206
1207 <li class="md-nav__item">
1208 <a href="template-listener/" class="md-nav__link">
1209 templateListener
1210 </a>
1211 </li>
1212
1213
1214
1215
1216
1217
1218
1219 <li class="md-nav__item">
1220 <a href="user-group-option/" class="md-nav__link">
1221 userGroupOption
1222 </a>
1223 </li>
1224
1225
1226
1227
1228
1229
1230
1231 <li class="md-nav__item">
1232 <a href="user-menu/" class="md-nav__link">
1233 userMenu
1234 </a>
1235 </li>
1236
1237
1238
1239
1240
1241
1242
1243 <li class="md-nav__item">
1244 <a href="user-notification-event/" class="md-nav__link">
1245 userNotificationEvent
1246 </a>
1247 </li>
1248
1249
1250
1251
1252
1253
1254
1255 <li class="md-nav__item">
1256 <a href="user-option/" class="md-nav__link">
1257 userOption
1258 </a>
1259 </li>
1260
1261
1262
1263
1264
1265
1266
1267 <li class="md-nav__item">
1268 <a href="user-profile-menu/" class="md-nav__link">
1269 userProfileMenu
1270 </a>
1271 </li>
1272
1273
1274
1275 </ul>
1276 </nav>
1277 </li>
1278
1279
1280
1281
1282
1283
1284
1285 <li class="md-nav__item">
1286 <a href="../database-php-api/" class="md-nav__link">
1287 Database PHP API
1288 </a>
1289 </li>
1290
1291
1292
1293 </ul>
1294 </nav>
1295 </li>
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307 <li class="md-nav__item md-nav__item--nested">
1308
1309
1310 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
1311
1312 <label class="md-nav__link" for="__nav_6">
1313 Migration
1314 <span class="md-nav__icon md-icon"></span>
1315 </label>
1316 <nav class="md-nav" aria-label="Migration" data-md-level="1">
1317 <label class="md-nav__title" for="__nav_6">
1318 <span class="md-nav__icon md-icon"></span>
1319 Migration
1320 </label>
1321 <ul class="md-nav__list" data-md-scrollfix>
1322
1323
1324
1325
1326
1327
1328 <li class="md-nav__item md-nav__item--nested">
1329
1330
1331 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_1" type="checkbox" id="__nav_6_1" >
1332
1333 <label class="md-nav__link" for="__nav_6_1">
1334 Migrating from WSC 5.3
1335 <span class="md-nav__icon md-icon"></span>
1336 </label>
1337 <nav class="md-nav" aria-label="Migrating from WSC 5.3" data-md-level="2">
1338 <label class="md-nav__title" for="__nav_6_1">
1339 <span class="md-nav__icon md-icon"></span>
1340 Migrating from WSC 5.3
1341 </label>
1342 <ul class="md-nav__list" data-md-scrollfix>
1343
1344
1345
1346
1347
1348 <li class="md-nav__item">
1349 <a href="../../migration/wsc53/php/" class="md-nav__link">
1350 PHP API
1351 </a>
1352 </li>
1353
1354
1355
1356
1357
1358
1359
1360 <li class="md-nav__item">
1361 <a href="../../migration/wsc53/session/" class="md-nav__link">
1362 Session Handling and Authentication
1363 </a>
1364 </li>
1365
1366
1367
1368
1369
1370
1371
1372 <li class="md-nav__item">
1373 <a href="../../migration/wsc53/javascript/" class="md-nav__link">
1374 JavaScript
1375 </a>
1376 </li>
1377
1378
1379
1380
1381
1382
1383
1384 <li class="md-nav__item">
1385 <a href="../../migration/wsc53/templates/" class="md-nav__link">
1386 Templates
1387 </a>
1388 </li>
1389
1390
1391
1392
1393
1394
1395
1396 <li class="md-nav__item">
1397 <a href="../../migration/wsc53/libraries/" class="md-nav__link">
1398 Third Party Libraries
1399 </a>
1400 </li>
1401
1402
1403
1404 </ul>
1405 </nav>
1406 </li>
1407
1408
1409
1410
1411
1412
1413
1414
1415 <li class="md-nav__item md-nav__item--nested">
1416
1417
1418 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
1419
1420 <label class="md-nav__link" for="__nav_6_2">
1421 Migrating from WSC 5.2
1422 <span class="md-nav__icon md-icon"></span>
1423 </label>
1424 <nav class="md-nav" aria-label="Migrating from WSC 5.2" data-md-level="2">
1425 <label class="md-nav__title" for="__nav_6_2">
1426 <span class="md-nav__icon md-icon"></span>
1427 Migrating from WSC 5.2
1428 </label>
1429 <ul class="md-nav__list" data-md-scrollfix>
1430
1431
1432
1433
1434
1435 <li class="md-nav__item">
1436 <a href="../../migration/wsc52/php/" class="md-nav__link">
1437 PHP API
1438 </a>
1439 </li>
1440
1441
1442
1443
1444
1445
1446
1447 <li class="md-nav__item">
1448 <a href="../../migration/wsc52/templates/" class="md-nav__link">
1449 Templates and Languages
1450 </a>
1451 </li>
1452
1453
1454
1455
1456
1457
1458
1459 <li class="md-nav__item">
1460 <a href="../../migration/wsc52/libraries/" class="md-nav__link">
1461 Third Party Libraries
1462 </a>
1463 </li>
1464
1465
1466
1467 </ul>
1468 </nav>
1469 </li>
1470
1471
1472
1473
1474
1475
1476
1477
1478 <li class="md-nav__item md-nav__item--nested">
1479
1480
1481 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" >
1482
1483 <label class="md-nav__link" for="__nav_6_3">
1484 Migrating from WSC 3.1
1485 <span class="md-nav__icon md-icon"></span>
1486 </label>
1487 <nav class="md-nav" aria-label="Migrating from WSC 3.1" data-md-level="2">
1488 <label class="md-nav__title" for="__nav_6_3">
1489 <span class="md-nav__icon md-icon"></span>
1490 Migrating from WSC 3.1
1491 </label>
1492 <ul class="md-nav__list" data-md-scrollfix>
1493
1494
1495
1496
1497
1498 <li class="md-nav__item">
1499 <a href="../../migration/wsc31/php/" class="md-nav__link">
1500 PHP API
1501 </a>
1502 </li>
1503
1504
1505
1506 </ul>
1507 </nav>
1508 </li>
1509
1510
1511
1512
1513
1514
1515
1516
1517 <li class="md-nav__item md-nav__item--nested">
1518
1519
1520 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_4" type="checkbox" id="__nav_6_4" >
1521
1522 <label class="md-nav__link" for="__nav_6_4">
1523 Migrating from WSC 3.0
1524 <span class="md-nav__icon md-icon"></span>
1525 </label>
1526 <nav class="md-nav" aria-label="Migrating from WSC 3.0" data-md-level="2">
1527 <label class="md-nav__title" for="__nav_6_4">
1528 <span class="md-nav__icon md-icon"></span>
1529 Migrating from WSC 3.0
1530 </label>
1531 <ul class="md-nav__list" data-md-scrollfix>
1532
1533
1534
1535
1536
1537 <li class="md-nav__item">
1538 <a href="../../migration/wsc30/php/" class="md-nav__link">
1539 PHP API
1540 </a>
1541 </li>
1542
1543
1544
1545
1546
1547
1548
1549 <li class="md-nav__item">
1550 <a href="../../migration/wsc30/javascript/" class="md-nav__link">
1551 JavaScript API
1552 </a>
1553 </li>
1554
1555
1556
1557
1558
1559
1560
1561 <li class="md-nav__item">
1562 <a href="../../migration/wsc30/templates/" class="md-nav__link">
1563 Templates
1564 </a>
1565 </li>
1566
1567
1568
1569
1570
1571
1572
1573 <li class="md-nav__item">
1574 <a href="../../migration/wsc30/css/" class="md-nav__link">
1575 CSS
1576 </a>
1577 </li>
1578
1579
1580
1581
1582
1583
1584
1585 <li class="md-nav__item">
1586 <a href="../../migration/wsc30/package/" class="md-nav__link">
1587 Package Components
1588 </a>
1589 </li>
1590
1591
1592
1593 </ul>
1594 </nav>
1595 </li>
1596
1597
1598
1599
1600
1601
1602
1603
1604 <li class="md-nav__item md-nav__item--nested">
1605
1606
1607 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_5" type="checkbox" id="__nav_6_5" >
1608
1609 <label class="md-nav__link" for="__nav_6_5">
1610 Migrating from WCF 2.1
1611 <span class="md-nav__icon md-icon"></span>
1612 </label>
1613 <nav class="md-nav" aria-label="Migrating from WCF 2.1" data-md-level="2">
1614 <label class="md-nav__title" for="__nav_6_5">
1615 <span class="md-nav__icon md-icon"></span>
1616 Migrating from WCF 2.1
1617 </label>
1618 <ul class="md-nav__list" data-md-scrollfix>
1619
1620
1621
1622
1623
1624 <li class="md-nav__item">
1625 <a href="../../migration/wcf21/php/" class="md-nav__link">
1626 PHP API
1627 </a>
1628 </li>
1629
1630
1631
1632
1633
1634
1635
1636 <li class="md-nav__item">
1637 <a href="../../migration/wcf21/templates/" class="md-nav__link">
1638 Templates
1639 </a>
1640 </li>
1641
1642
1643
1644
1645
1646
1647
1648 <li class="md-nav__item">
1649 <a href="../../migration/wcf21/css/" class="md-nav__link">
1650 CSS
1651 </a>
1652 </li>
1653
1654
1655
1656
1657
1658
1659
1660 <li class="md-nav__item">
1661 <a href="../../migration/wcf21/package/" class="md-nav__link">
1662 Package Components
1663 </a>
1664 </li>
1665
1666
1667
1668 </ul>
1669 </nav>
1670 </li>
1671
1672
1673
1674 </ul>
1675 </nav>
1676 </li>
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688 <li class="md-nav__item md-nav__item--nested">
1689
1690
1691 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
1692
1693 <label class="md-nav__link" for="__nav_7">
1694 Tutorials
1695 <span class="md-nav__icon md-icon"></span>
1696 </label>
1697 <nav class="md-nav" aria-label="Tutorials" data-md-level="1">
1698 <label class="md-nav__title" for="__nav_7">
1699 <span class="md-nav__icon md-icon"></span>
1700 Tutorials
1701 </label>
1702 <ul class="md-nav__list" data-md-scrollfix>
1703
1704
1705
1706
1707
1708
1709 <li class="md-nav__item md-nav__item--nested">
1710
1711
1712 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_1" type="checkbox" id="__nav_7_1" >
1713
1714 <label class="md-nav__link" for="__nav_7_1">
1715 Tutorial Series
1716 <span class="md-nav__icon md-icon"></span>
1717 </label>
1718 <nav class="md-nav" aria-label="Tutorial Series" data-md-level="2">
1719 <label class="md-nav__title" for="__nav_7_1">
1720 <span class="md-nav__icon md-icon"></span>
1721 Tutorial Series
1722 </label>
1723 <ul class="md-nav__list" data-md-scrollfix>
1724
1725
1726
1727
1728
1729 <li class="md-nav__item">
1730 <a href="../../tutorial/series/overview/" class="md-nav__link">
1731 Overview
1732 </a>
1733 </li>
1734
1735
1736
1737
1738
1739
1740
1741 <li class="md-nav__item">
1742 <a href="../../tutorial/series/part_1/" class="md-nav__link">
1743 Part 1
1744 </a>
1745 </li>
1746
1747
1748
1749
1750
1751
1752
1753 <li class="md-nav__item">
1754 <a href="../../tutorial/series/part_2/" class="md-nav__link">
1755 Part 2
1756 </a>
1757 </li>
1758
1759
1760
1761
1762
1763
1764
1765 <li class="md-nav__item">
1766 <a href="../../tutorial/series/part_3/" class="md-nav__link">
1767 Part 3
1768 </a>
1769 </li>
1770
1771
1772
1773 </ul>
1774 </nav>
1775 </li>
1776
1777
1778
1779 </ul>
1780 </nav>
1781 </li>
1782
1783
1784
1785 </ul>
1786 </nav>
1787 </div>
1788 </div>
1789 </div>
1790
1791
1792
1793 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1794 <div class="md-sidebar__scrollwrap">
1795 <div class="md-sidebar__inner">
1796
1797 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1798
1799
1800
1801
1802
1803 <label class="md-nav__title" for="__toc">
1804 <span class="md-nav__icon md-icon"></span>
1805 Table of contents
1806 </label>
1807 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1808
1809 <li class="md-nav__item">
1810 <a href="#built-in-pips" class="md-nav__link">
1811 Built-In PIPs
1812 </a>
1813
1814 </li>
1815
1816 </ul>
1817
1818 </nav>
1819 </div>
1820 </div>
1821 </div>
1822
1823
1824 <div class="md-content" data-md-component="content">
1825 <article class="md-content__inner md-typeset">
1826
1827
1828
1829 <h1 id="package-installation-plugins">Package Installation Plugins<a class="headerlink" href="#package-installation-plugins" title="Permanent link">#</a></h1>
1830 <p>Package Installation Plugins (PIPs) are interfaces to deploy and edit content as well as components.</p>
1831 <div class="admonition info">
1832 <p class="admonition-title">For XML-based PIPs: <code>&lt;![CDATA[]]&gt;</code> must be used for language items and page contents. In all other cases it may only be used when necessary.</p>
1833 </div>
1834 <h2 id="built-in-pips">Built-In PIPs<a class="headerlink" href="#built-in-pips" title="Permanent link">#</a></h2>
1835 <table>
1836 <thead>
1837 <tr>
1838 <th>Name</th>
1839 <th>Description</th>
1840 </tr>
1841 </thead>
1842 <tbody>
1843 <tr>
1844 <td><a href="acl-option/">aclOption</a></td>
1845 <td>Customizable permissions for individual objects</td>
1846 </tr>
1847 <tr>
1848 <td><a href="acp-menu/">acpMenu</a></td>
1849 <td>Admin panel menu categories and items</td>
1850 </tr>
1851 <tr>
1852 <td><a href="acp-search-provider/">acpSearchProvider</a></td>
1853 <td>Data provider for the admin panel search</td>
1854 </tr>
1855 <tr>
1856 <td><a href="acp-template/">acpTemplate</a></td>
1857 <td>Admin panel templates</td>
1858 </tr>
1859 <tr>
1860 <td><a href="bbcode/">bbcode</a></td>
1861 <td>BBCodes for rich message formatting</td>
1862 </tr>
1863 <tr>
1864 <td><a href="box/">box</a></td>
1865 <td>Boxes that can be placed anywhere on a page</td>
1866 </tr>
1867 <tr>
1868 <td><a href="clipboard-action/">clipboardAction</a></td>
1869 <td>Perform bulk operations on marked objects</td>
1870 </tr>
1871 <tr>
1872 <td><a href="core-object/">coreObject</a></td>
1873 <td>Access Singletons from within the template</td>
1874 </tr>
1875 <tr>
1876 <td><a href="cronjob/">cronjob</a></td>
1877 <td>Periodically execute code with customizable intervals</td>
1878 </tr>
1879 <tr>
1880 <td><a href="event-listener/">eventListener</a></td>
1881 <td>Register listeners for the event system</td>
1882 </tr>
1883 <tr>
1884 <td><a href="file/">file</a></td>
1885 <td>Deploy any type of files with the exception of templates</td>
1886 </tr>
1887 <tr>
1888 <td><a href="language/">language</a></td>
1889 <td>Language items</td>
1890 </tr>
1891 <tr>
1892 <td><a href="media-provider/">mediaProvider</a></td>
1893 <td>Detect and convert links to media providers</td>
1894 </tr>
1895 <tr>
1896 <td><a href="menu/">menu</a></td>
1897 <td>Side-wide and custom per-page menus</td>
1898 </tr>
1899 <tr>
1900 <td><a href="menu-item/">menuItem</a></td>
1901 <td>Menu items for menus created through the menu PIP</td>
1902 </tr>
1903 <tr>
1904 <td><a href="object-type/">objectType</a></td>
1905 <td>Flexible type registry based on definitions</td>
1906 </tr>
1907 <tr>
1908 <td><a href="object-type-definition/">objectTypeDefinition</a></td>
1909 <td>Groups objects and classes by functionality</td>
1910 </tr>
1911 <tr>
1912 <td><a href="option/">option</a></td>
1913 <td>Side-wide configuration options</td>
1914 </tr>
1915 <tr>
1916 <td><a href="page/">page</a></td>
1917 <td>Register page controllers and text-based pages</td>
1918 </tr>
1919 <tr>
1920 <td><a href="pip/">pip</a></td>
1921 <td>Package Installation Plugins</td>
1922 </tr>
1923 <tr>
1924 <td><a href="script/">script</a></td>
1925 <td>Execute arbitrary PHP code during installation, update and uninstallation</td>
1926 </tr>
1927 <tr>
1928 <td><a href="smiley/">smiley</a></td>
1929 <td>Smileys</td>
1930 </tr>
1931 <tr>
1932 <td><a href="sql/">sql</a></td>
1933 <td>Execute SQL instructions using a MySQL-flavored syntax (also see <a href="../database-php-api/">database PHP API</a>)</td>
1934 </tr>
1935 <tr>
1936 <td><a href="style/">style</a></td>
1937 <td>Style</td>
1938 </tr>
1939 <tr>
1940 <td><a href="template/">template</a></td>
1941 <td>Frontend templates</td>
1942 </tr>
1943 <tr>
1944 <td><a href="template-listener/">templateListener</a></td>
1945 <td>Embed template code into templates without altering the original</td>
1946 </tr>
1947 <tr>
1948 <td><a href="user-group-option/">userGroupOption</a></td>
1949 <td>Permissions for user groups</td>
1950 </tr>
1951 <tr>
1952 <td><a href="user-menu/">userMenu</a></td>
1953 <td>User menu categories and items</td>
1954 </tr>
1955 <tr>
1956 <td><a href="user-notification-event/">userNotificationEvent</a></td>
1957 <td>Events of the user notification system</td>
1958 </tr>
1959 <tr>
1960 <td><a href="user-option/">userOption</a></td>
1961 <td>User settings</td>
1962 </tr>
1963 <tr>
1964 <td><a href="user-profile-menu/">userProfileMenu</a></td>
1965 <td>User profile tabs</td>
1966 </tr>
1967 </tbody>
1968 </table>
1969
1970
1971
1972
1973
1974
1975
1976 </article>
1977 </div>
1978 </div>
1979 </main>
1980
1981
1982 <footer class="md-footer">
1983
1984 <nav class="md-footer__inner md-grid" aria-label="Footer">
1985
1986 <a href="../package-xml/" class="md-footer__link md-footer__link--prev" rel="prev">
1987 <div class="md-footer__button md-icon">
1988 <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>
1989 </div>
1990 <div class="md-footer__title">
1991 <div class="md-ellipsis">
1992 <span class="md-footer__direction">
1993 Previous
1994 </span>
1995 package.xml
1996 </div>
1997 </div>
1998 </a>
1999
2000
2001 <a href="acl-option/" class="md-footer__link md-footer__link--next" rel="next">
2002 <div class="md-footer__title">
2003 <div class="md-ellipsis">
2004 <span class="md-footer__direction">
2005 Next
2006 </span>
2007 aclOption
2008 </div>
2009 </div>
2010 <div class="md-footer__button md-icon">
2011 <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>
2012 </div>
2013 </a>
2014
2015 </nav>
2016
2017 <div class="md-footer-meta md-typeset">
2018 <div class="md-footer-meta__inner md-grid">
2019 <div class="md-footer-copyright">
2020
2021 <div class="md-footer-copyright__highlight">
2022 Copyright © 2020 WoltLab GmbH
2023 </div>
2024
2025 Made with
2026 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2027 Material for MkDocs
2028 </a>
2029
2030 </div>
2031 <div class="md-footer-copyright">
2032 <a href="https://www.woltlab.com/legal-notice/">Legal Notice</a>
2033 <a href="https://www.woltlab.com/privacy-policy/">Privacy Policy</a>
2034 </div>
2035 </div>
2036 </div>
2037 </footer>
2038
2039 </div>
2040 <div class="md-dialog" data-md-component="dialog">
2041 <div class="md-dialog__inner md-typeset"></div>
2042 </div>
2043 <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>
2044
2045
2046 <script src="../../assets/javascripts/bundle.5cf3e710.min.js"></script>
2047
2048
2049 </body>
2050 </html>