Deployed c4a26d0 to 5.4 with MkDocs 1.1.2 and mike 0.5.5
[GitHub/WoltLab/woltlab.github.io.git] / 5.4 / package / package-xml / 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>package.xml - 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
38 <link rel="stylesheet" href="../../stylesheets/extra.css">
39
40
41
42
43
44 </head>
45
46
47
48
49
50
51
52 <body dir="ltr" data-md-color-scheme="" data-md-color-primary="teal" data-md-color-accent="">
53
54
55
56 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
57 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
58 <label class="md-overlay" for="__drawer"></label>
59 <div data-md-component="skip">
60
61
62 <a href="#packagexml" class="md-skip">
63 Skip to content
64 </a>
65
66 </div>
67 <div data-md-component="announce">
68
69 <aside class="md-announce">
70 <div class="md-announce__inner md-grid md-typeset">
71
72 <a href="https://www.woltlab.com">Back to <strong>woltlab.com</strong></a>
73
74 </div>
75 </aside>
76
77 </div>
78
79
80
81 <header class="md-header" data-md-component="header">
82 <nav class="md-header__inner md-grid" aria-label="Header">
83 <a href="../.." title="WoltLab Suite Documentation" class="md-header__button md-logo" aria-label="WoltLab Suite Documentation">
84
85 <img src="../../assets/logo.png" alt="logo">
86
87 </a>
88 <label class="md-header__button md-icon" for="__drawer">
89 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
90 </label>
91 <div class="md-header__title" data-md-component="header-title">
92 <div class="md-header__ellipsis">
93 <div class="md-header__topic">
94 <span class="md-ellipsis">
95 WoltLab Suite Documentation
96 </span>
97 </div>
98 <div class="md-header__topic" data-md-component="header-topic">
99 <span class="md-ellipsis">
100
101 package.xml
102
103 </span>
104 </div>
105 </div>
106 </div>
107 <div class="md-header__options">
108
109 </div>
110
111 <label class="md-header__button md-icon" for="__search">
112 <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>
113 </label>
114
115 <div class="md-search" data-md-component="search" role="dialog">
116 <label class="md-search__overlay" for="__search"></label>
117 <div class="md-search__inner" role="search">
118 <form class="md-search__form" name="search">
119 <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>
120 <label class="md-search__icon 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 <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>
123 </label>
124 <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
125 <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>
126 </button>
127 </form>
128 <div class="md-search__output">
129 <div class="md-search__scrollwrap" data-md-scrollfix>
130 <div class="md-search-result" data-md-component="search-result">
131 <div class="md-search-result__meta">
132 Initializing search
133 </div>
134 <ol class="md-search-result__list"></ol>
135 </div>
136 </div>
137 </div>
138 </div>
139 </div>
140
141
142 </nav>
143 </header>
144
145 <div class="md-container" data-md-component="container">
146
147
148
149
150 <main class="md-main" data-md-component="main">
151 <div class="md-main__inner md-grid">
152
153
154
155 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
156 <div class="md-sidebar__scrollwrap">
157 <div class="md-sidebar__inner">
158
159
160
161
162
163 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
164 <label class="md-nav__title" for="__drawer">
165 <a href="../.." title="WoltLab Suite Documentation" class="md-nav__button md-logo" aria-label="WoltLab Suite Documentation">
166
167 <img src="../../assets/logo.png" alt="logo">
168
169 </a>
170 WoltLab Suite Documentation
171 </label>
172
173 <ul class="md-nav__list" data-md-scrollfix>
174
175
176
177
178
179
180
181
182 <li class="md-nav__item">
183 <a href="../../getting-started/" class="md-nav__link">
184 Getting Started
185 </a>
186 </li>
187
188
189
190
191
192
193
194
195
196
197
198 <li class="md-nav__item md-nav__item--nested">
199
200
201 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" >
202
203 <label class="md-nav__link" for="__nav_2">
204 PHP API
205 <span class="md-nav__icon md-icon"></span>
206 </label>
207 <nav class="md-nav" aria-label="PHP API" data-md-level="1">
208 <label class="md-nav__title" for="__nav_2">
209 <span class="md-nav__icon md-icon"></span>
210 PHP API
211 </label>
212 <ul class="md-nav__list" data-md-scrollfix>
213
214
215
216
217
218 <li class="md-nav__item">
219 <a href="../../php/pages/" class="md-nav__link">
220 Pages
221 </a>
222 </li>
223
224
225
226
227
228
229
230 <li class="md-nav__item">
231 <a href="../../php/database-objects/" class="md-nav__link">
232 Database Objects
233 </a>
234 </li>
235
236
237
238
239
240
241
242 <li class="md-nav__item">
243 <a href="../../php/database-access/" class="md-nav__link">
244 Database Access
245 </a>
246 </li>
247
248
249
250
251
252
253
254 <li class="md-nav__item">
255 <a href="../../php/exceptions/" class="md-nav__link">
256 Exceptions
257 </a>
258 </li>
259
260
261
262
263
264
265
266
267 <li class="md-nav__item md-nav__item--nested">
268
269
270 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
271
272 <label class="md-nav__link" for="__nav_2_5">
273 API
274 <span class="md-nav__icon md-icon"></span>
275 </label>
276 <nav class="md-nav" aria-label="API" data-md-level="2">
277 <label class="md-nav__title" for="__nav_2_5">
278 <span class="md-nav__icon md-icon"></span>
279 API
280 </label>
281 <ul class="md-nav__list" data-md-scrollfix>
282
283
284
285
286
287 <li class="md-nav__item">
288 <a href="../../php/api/caches/" class="md-nav__link">
289 Caches
290 </a>
291 </li>
292
293
294
295
296
297
298
299 <li class="md-nav__item">
300 <a href="../../php/api/comments/" class="md-nav__link">
301 Comments
302 </a>
303 </li>
304
305
306
307
308
309
310
311 <li class="md-nav__item">
312 <a href="../../php/api/cronjobs/" class="md-nav__link">
313 Cronjobs
314 </a>
315 </li>
316
317
318
319
320
321
322
323 <li class="md-nav__item">
324 <a href="../../php/api/events/" class="md-nav__link">
325 Events
326 </a>
327 </li>
328
329
330
331
332
333
334
335
336 <li class="md-nav__item md-nav__item--nested">
337
338
339 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5_5" type="checkbox" id="__nav_2_5_5" >
340
341 <label class="md-nav__link" for="__nav_2_5_5">
342 Form Builder
343 <span class="md-nav__icon md-icon"></span>
344 </label>
345 <nav class="md-nav" aria-label="Form Builder" data-md-level="3">
346 <label class="md-nav__title" for="__nav_2_5_5">
347 <span class="md-nav__icon md-icon"></span>
348 Form Builder
349 </label>
350 <ul class="md-nav__list" data-md-scrollfix>
351
352
353
354
355
356 <li class="md-nav__item">
357 <a href="../../php/api/form_builder/overview/" class="md-nav__link">
358 Overview
359 </a>
360 </li>
361
362
363
364
365
366
367
368 <li class="md-nav__item">
369 <a href="../../php/api/form_builder/structure/" class="md-nav__link">
370 Structure
371 </a>
372 </li>
373
374
375
376
377
378
379
380 <li class="md-nav__item">
381 <a href="../../php/api/form_builder/form_fields/" class="md-nav__link">
382 Fields
383 </a>
384 </li>
385
386
387
388
389
390
391
392 <li class="md-nav__item">
393 <a href="../../php/api/form_builder/validation_data/" class="md-nav__link">
394 Validation and Data
395 </a>
396 </li>
397
398
399
400
401
402
403
404 <li class="md-nav__item">
405 <a href="../../php/api/form_builder/dependencies/" class="md-nav__link">
406 Dependencies
407 </a>
408 </li>
409
410
411
412 </ul>
413 </nav>
414 </li>
415
416
417
418
419
420
421
422 <li class="md-nav__item">
423 <a href="../../php/api/package_installation_plugins/" class="md-nav__link">
424 Package Installation Plugins
425 </a>
426 </li>
427
428
429
430
431
432
433
434 <li class="md-nav__item">
435 <a href="../../php/api/user_activity_points/" class="md-nav__link">
436 User Activity Points
437 </a>
438 </li>
439
440
441
442
443
444
445
446 <li class="md-nav__item">
447 <a href="../../php/api/user_notifications/" class="md-nav__link">
448 User Notifications
449 </a>
450 </li>
451
452
453
454
455
456
457
458 <li class="md-nav__item">
459 <a href="../../php/api/sitemaps/" class="md-nav__link">
460 Sitemaps
461 </a>
462 </li>
463
464
465
466 </ul>
467 </nav>
468 </li>
469
470
471
472
473
474
475
476 <li class="md-nav__item">
477 <a href="../../php/code-style/" class="md-nav__link">
478 Code Style
479 </a>
480 </li>
481
482
483
484
485
486
487
488 <li class="md-nav__item">
489 <a href="../../php/apps/" class="md-nav__link">
490 Apps
491 </a>
492 </li>
493
494
495
496
497
498
499
500 <li class="md-nav__item">
501 <a href="../../php/gdpr/" class="md-nav__link">
502 GDPR
503 </a>
504 </li>
505
506
507
508 </ul>
509 </nav>
510 </li>
511
512
513
514
515
516
517
518
519
520
521
522 <li class="md-nav__item md-nav__item--nested">
523
524
525 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
526
527 <label class="md-nav__link" for="__nav_3">
528 Languages, Templates & CSS
529 <span class="md-nav__icon md-icon"></span>
530 </label>
531 <nav class="md-nav" aria-label="Languages, Templates & CSS" data-md-level="1">
532 <label class="md-nav__title" for="__nav_3">
533 <span class="md-nav__icon md-icon"></span>
534 Languages, Templates & CSS
535 </label>
536 <ul class="md-nav__list" data-md-scrollfix>
537
538
539
540
541
542 <li class="md-nav__item">
543 <a href="../../view/languages/" class="md-nav__link">
544 Languages
545 </a>
546 </li>
547
548
549
550
551
552
553
554 <li class="md-nav__item">
555 <a href="../../view/templates/" class="md-nav__link">
556 Templates
557 </a>
558 </li>
559
560
561
562
563
564
565
566 <li class="md-nav__item">
567 <a href="../../view/css/" class="md-nav__link">
568 CSS
569 </a>
570 </li>
571
572
573
574 </ul>
575 </nav>
576 </li>
577
578
579
580
581
582
583
584
585
586
587
588 <li class="md-nav__item md-nav__item--nested">
589
590
591 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
592
593 <label class="md-nav__link" for="__nav_4">
594 JavaScript API
595 <span class="md-nav__icon md-icon"></span>
596 </label>
597 <nav class="md-nav" aria-label="JavaScript API" data-md-level="1">
598 <label class="md-nav__title" for="__nav_4">
599 <span class="md-nav__icon md-icon"></span>
600 JavaScript API
601 </label>
602 <ul class="md-nav__list" data-md-scrollfix>
603
604
605
606
607
608 <li class="md-nav__item">
609 <a href="../../javascript/general-usage/" class="md-nav__link">
610 General Usage
611 </a>
612 </li>
613
614
615
616
617
618
619
620
621 <li class="md-nav__item md-nav__item--nested">
622
623
624 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2" type="checkbox" id="__nav_4_2" >
625
626 <label class="md-nav__link" for="__nav_4_2">
627 New API
628 <span class="md-nav__icon md-icon"></span>
629 </label>
630 <nav class="md-nav" aria-label="New API" data-md-level="2">
631 <label class="md-nav__title" for="__nav_4_2">
632 <span class="md-nav__icon md-icon"></span>
633 New API
634 </label>
635 <ul class="md-nav__list" data-md-scrollfix>
636
637
638
639
640
641 <li class="md-nav__item">
642 <a href="../../javascript/new-api_writing-a-module/" class="md-nav__link">
643 Writing a module
644 </a>
645 </li>
646
647
648
649
650
651
652
653 <li class="md-nav__item">
654 <a href="../../javascript/new-api_data-structures/" class="md-nav__link">
655 Data Structures
656 </a>
657 </li>
658
659
660
661
662
663
664
665 <li class="md-nav__item">
666 <a href="../../javascript/new-api_core/" class="md-nav__link">
667 Core Functions
668 </a>
669 </li>
670
671
672
673
674
675
676
677 <li class="md-nav__item">
678 <a href="../../javascript/new-api_dom/" class="md-nav__link">
679 DOM
680 </a>
681 </li>
682
683
684
685
686
687
688
689 <li class="md-nav__item">
690 <a href="../../javascript/new-api_events/" class="md-nav__link">
691 Event Handling
692 </a>
693 </li>
694
695
696
697
698
699
700
701 <li class="md-nav__item">
702 <a href="../../javascript/new-api_ajax/" class="md-nav__link">
703 Ajax
704 </a>
705 </li>
706
707
708
709
710
711
712
713 <li class="md-nav__item">
714 <a href="../../javascript/new-api_dialogs/" class="md-nav__link">
715 Dialogs
716 </a>
717 </li>
718
719
720
721
722
723
724
725 <li class="md-nav__item">
726 <a href="../../javascript/new-api_browser/" class="md-nav__link">
727 Browser and Screen Sizes
728 </a>
729 </li>
730
731
732
733
734
735
736
737 <li class="md-nav__item">
738 <a href="../../javascript/new-api_ui/" class="md-nav__link">
739 User Interface
740 </a>
741 </li>
742
743
744
745 </ul>
746 </nav>
747 </li>
748
749
750
751
752
753
754
755 <li class="md-nav__item">
756 <a href="../../javascript/legacy-api/" class="md-nav__link">
757 Legacy API
758 </a>
759 </li>
760
761
762
763
764
765
766
767 <li class="md-nav__item">
768 <a href="../../javascript/helper-functions/" class="md-nav__link">
769 Helper Functions
770 </a>
771 </li>
772
773
774
775
776
777
778
779 <li class="md-nav__item">
780 <a href="../../javascript/code-snippets/" class="md-nav__link">
781 Code Snippets
782 </a>
783 </li>
784
785
786
787 </ul>
788 </nav>
789 </li>
790
791
792
793
794
795
796
797
798
799
800
801
802
803 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
804
805
806 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" checked>
807
808 <label class="md-nav__link" for="__nav_5">
809 Package Components
810 <span class="md-nav__icon md-icon"></span>
811 </label>
812 <nav class="md-nav" aria-label="Package Components" data-md-level="1">
813 <label class="md-nav__title" for="__nav_5">
814 <span class="md-nav__icon md-icon"></span>
815 Package Components
816 </label>
817 <ul class="md-nav__list" data-md-scrollfix>
818
819
820
821
822
823
824
825 <li class="md-nav__item md-nav__item--active">
826
827 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
828
829
830
831
832 <label class="md-nav__link md-nav__link--active" for="__toc">
833 package.xml
834 <span class="md-nav__icon md-icon"></span>
835 </label>
836
837 <a href="./" class="md-nav__link md-nav__link--active">
838 package.xml
839 </a>
840
841
842 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
843
844
845
846
847
848 <label class="md-nav__title" for="__toc">
849 <span class="md-nav__icon md-icon"></span>
850 Table of contents
851 </label>
852 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
853
854 <li class="md-nav__item">
855 <a href="#example" class="md-nav__link">
856 Example
857 </a>
858
859 </li>
860
861 <li class="md-nav__item">
862 <a href="#elements" class="md-nav__link">
863 Elements
864 </a>
865
866 <nav class="md-nav" aria-label="Elements">
867 <ul class="md-nav__list">
868
869 <li class="md-nav__item">
870 <a href="#package" class="md-nav__link">
871 &lt;package&gt;
872 </a>
873
874 </li>
875
876 <li class="md-nav__item">
877 <a href="#packageinformation" class="md-nav__link">
878 &lt;packageinformation&gt;
879 </a>
880
881 <nav class="md-nav" aria-label="&lt;packageinformation&gt;">
882 <ul class="md-nav__list">
883
884 <li class="md-nav__item">
885 <a href="#packagename" class="md-nav__link">
886 &lt;packagename&gt;
887 </a>
888
889 </li>
890
891 <li class="md-nav__item">
892 <a href="#packagedescription" class="md-nav__link">
893 &lt;packagedescription&gt;
894 </a>
895
896 </li>
897
898 <li class="md-nav__item">
899 <a href="#version" class="md-nav__link">
900 &lt;version&gt;
901 </a>
902
903 </li>
904
905 <li class="md-nav__item">
906 <a href="#date" class="md-nav__link">
907 &lt;date&gt;
908 </a>
909
910 </li>
911
912 </ul>
913 </nav>
914
915 </li>
916
917 <li class="md-nav__item">
918 <a href="#authorinformation" class="md-nav__link">
919 &lt;authorinformation&gt;
920 </a>
921
922 <nav class="md-nav" aria-label="&lt;authorinformation&gt;">
923 <ul class="md-nav__list">
924
925 <li class="md-nav__item">
926 <a href="#author" class="md-nav__link">
927 &lt;author&gt;
928 </a>
929
930 </li>
931
932 <li class="md-nav__item">
933 <a href="#authorurl" class="md-nav__link">
934 &lt;authorurl&gt;
935 </a>
936
937 </li>
938
939 </ul>
940 </nav>
941
942 </li>
943
944 <li class="md-nav__item">
945 <a href="#requiredpackages" class="md-nav__link">
946 &lt;requiredpackages&gt;
947 </a>
948
949 <nav class="md-nav" aria-label="&lt;requiredpackages&gt;">
950 <ul class="md-nav__list">
951
952 <li class="md-nav__item">
953 <a href="#requiredpackage" class="md-nav__link">
954 &lt;requiredpackage&gt;
955 </a>
956
957 </li>
958
959 </ul>
960 </nav>
961
962 </li>
963
964 <li class="md-nav__item">
965 <a href="#optionalpackage" class="md-nav__link">
966 &lt;optionalpackage&gt;
967 </a>
968
969 <nav class="md-nav" aria-label="&lt;optionalpackage&gt;">
970 <ul class="md-nav__list">
971
972 <li class="md-nav__item">
973 <a href="#optionalpackage_1" class="md-nav__link">
974 &lt;optionalpackage&gt;
975 </a>
976
977 </li>
978
979 </ul>
980 </nav>
981
982 </li>
983
984 <li class="md-nav__item">
985 <a href="#excludedpackages" class="md-nav__link">
986 &lt;excludedpackages&gt;
987 </a>
988
989 <nav class="md-nav" aria-label="&lt;excludedpackages&gt;">
990 <ul class="md-nav__list">
991
992 <li class="md-nav__item">
993 <a href="#excludedpackage" class="md-nav__link">
994 &lt;excludedpackage&gt;
995 </a>
996
997 </li>
998
999 </ul>
1000 </nav>
1001
1002 </li>
1003
1004 <li class="md-nav__item">
1005 <a href="#compatibility" class="md-nav__link">
1006 &lt;compatibility&gt;
1007 </a>
1008
1009 <nav class="md-nav" aria-label="&lt;compatibility&gt;">
1010 <ul class="md-nav__list">
1011
1012 <li class="md-nav__item">
1013 <a href="#existing-api-versions" class="md-nav__link">
1014 Existing API versions
1015 </a>
1016
1017 </li>
1018
1019 </ul>
1020 </nav>
1021
1022 </li>
1023
1024 <li class="md-nav__item">
1025 <a href="#instructions" class="md-nav__link">
1026 &lt;instructions&gt;
1027 </a>
1028
1029 <nav class="md-nav" aria-label="&lt;instructions&gt;">
1030 <ul class="md-nav__list">
1031
1032 <li class="md-nav__item">
1033 <a href="#instructions-typeinstall" class="md-nav__link">
1034 &lt;instructions type="install"&gt;
1035 </a>
1036
1037 </li>
1038
1039 <li class="md-nav__item">
1040 <a href="#instructions-typeupdate-fromversion" class="md-nav__link">
1041 &lt;instructions type="update" fromversion="…"&gt;
1042 </a>
1043
1044 </li>
1045
1046 <li class="md-nav__item">
1047 <a href="#instruction" class="md-nav__link">
1048 &lt;instruction&gt;
1049 </a>
1050
1051 </li>
1052
1053 <li class="md-nav__item">
1054 <a href="#void" class="md-nav__link">
1055 &lt;void/&gt;
1056 </a>
1057
1058 </li>
1059
1060 </ul>
1061 </nav>
1062
1063 </li>
1064
1065 </ul>
1066 </nav>
1067
1068 </li>
1069
1070 </ul>
1071
1072 </nav>
1073
1074 </li>
1075
1076
1077
1078
1079
1080
1081
1082
1083 <li class="md-nav__item md-nav__item--nested">
1084
1085
1086 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_2" type="checkbox" id="__nav_5_2" >
1087
1088 <label class="md-nav__link" for="__nav_5_2">
1089 PIPs
1090 <span class="md-nav__icon md-icon"></span>
1091 </label>
1092 <nav class="md-nav" aria-label="PIPs" data-md-level="2">
1093 <label class="md-nav__title" for="__nav_5_2">
1094 <span class="md-nav__icon md-icon"></span>
1095 PIPs
1096 </label>
1097 <ul class="md-nav__list" data-md-scrollfix>
1098
1099
1100
1101
1102
1103 <li class="md-nav__item">
1104 <a href="../pip/" class="md-nav__link">
1105 Overview
1106 </a>
1107 </li>
1108
1109
1110
1111
1112
1113
1114
1115 <li class="md-nav__item">
1116 <a href="../pip/acl-option/" class="md-nav__link">
1117 aclOption
1118 </a>
1119 </li>
1120
1121
1122
1123
1124
1125
1126
1127 <li class="md-nav__item">
1128 <a href="../pip/acp-menu/" class="md-nav__link">
1129 acpMenu
1130 </a>
1131 </li>
1132
1133
1134
1135
1136
1137
1138
1139 <li class="md-nav__item">
1140 <a href="../pip/acp-search-provider/" class="md-nav__link">
1141 acpSearchProvider
1142 </a>
1143 </li>
1144
1145
1146
1147
1148
1149
1150
1151 <li class="md-nav__item">
1152 <a href="../pip/acp-template/" class="md-nav__link">
1153 acpTemplate
1154 </a>
1155 </li>
1156
1157
1158
1159
1160
1161
1162
1163 <li class="md-nav__item">
1164 <a href="../pip/bbcode/" class="md-nav__link">
1165 bbcode
1166 </a>
1167 </li>
1168
1169
1170
1171
1172
1173
1174
1175 <li class="md-nav__item">
1176 <a href="../pip/box/" class="md-nav__link">
1177 box
1178 </a>
1179 </li>
1180
1181
1182
1183
1184
1185
1186
1187 <li class="md-nav__item">
1188 <a href="../pip/clipboard-action/" class="md-nav__link">
1189 clipboardAction
1190 </a>
1191 </li>
1192
1193
1194
1195
1196
1197
1198
1199 <li class="md-nav__item">
1200 <a href="../pip/core-object/" class="md-nav__link">
1201 coreObject
1202 </a>
1203 </li>
1204
1205
1206
1207
1208
1209
1210
1211 <li class="md-nav__item">
1212 <a href="../pip/cronjob/" class="md-nav__link">
1213 cronjob
1214 </a>
1215 </li>
1216
1217
1218
1219
1220
1221
1222
1223 <li class="md-nav__item">
1224 <a href="../pip/event-listener/" class="md-nav__link">
1225 eventListener
1226 </a>
1227 </li>
1228
1229
1230
1231
1232
1233
1234
1235 <li class="md-nav__item">
1236 <a href="../pip/file/" class="md-nav__link">
1237 file
1238 </a>
1239 </li>
1240
1241
1242
1243
1244
1245
1246
1247 <li class="md-nav__item">
1248 <a href="../pip/language/" class="md-nav__link">
1249 language
1250 </a>
1251 </li>
1252
1253
1254
1255
1256
1257
1258
1259 <li class="md-nav__item">
1260 <a href="../pip/media-provider/" class="md-nav__link">
1261 mediaProvider
1262 </a>
1263 </li>
1264
1265
1266
1267
1268
1269
1270
1271 <li class="md-nav__item">
1272 <a href="../pip/menu/" class="md-nav__link">
1273 menu
1274 </a>
1275 </li>
1276
1277
1278
1279
1280
1281
1282
1283 <li class="md-nav__item">
1284 <a href="../pip/menu-item/" class="md-nav__link">
1285 menuItem
1286 </a>
1287 </li>
1288
1289
1290
1291
1292
1293
1294
1295 <li class="md-nav__item">
1296 <a href="../pip/object-type/" class="md-nav__link">
1297 objectType
1298 </a>
1299 </li>
1300
1301
1302
1303
1304
1305
1306
1307 <li class="md-nav__item">
1308 <a href="../pip/object-type-definition/" class="md-nav__link">
1309 objectTypeDefinition
1310 </a>
1311 </li>
1312
1313
1314
1315
1316
1317
1318
1319 <li class="md-nav__item">
1320 <a href="../pip/option/" class="md-nav__link">
1321 option
1322 </a>
1323 </li>
1324
1325
1326
1327
1328
1329
1330
1331 <li class="md-nav__item">
1332 <a href="../pip/page/" class="md-nav__link">
1333 page
1334 </a>
1335 </li>
1336
1337
1338
1339
1340
1341
1342
1343 <li class="md-nav__item">
1344 <a href="../pip/pip/" class="md-nav__link">
1345 pip
1346 </a>
1347 </li>
1348
1349
1350
1351
1352
1353
1354
1355 <li class="md-nav__item">
1356 <a href="../pip/script/" class="md-nav__link">
1357 script
1358 </a>
1359 </li>
1360
1361
1362
1363
1364
1365
1366
1367 <li class="md-nav__item">
1368 <a href="../pip/smiley/" class="md-nav__link">
1369 smiley
1370 </a>
1371 </li>
1372
1373
1374
1375
1376
1377
1378
1379 <li class="md-nav__item">
1380 <a href="../pip/sql/" class="md-nav__link">
1381 sql
1382 </a>
1383 </li>
1384
1385
1386
1387
1388
1389
1390
1391 <li class="md-nav__item">
1392 <a href="../pip/style/" class="md-nav__link">
1393 style
1394 </a>
1395 </li>
1396
1397
1398
1399
1400
1401
1402
1403 <li class="md-nav__item">
1404 <a href="../pip/template/" class="md-nav__link">
1405 template
1406 </a>
1407 </li>
1408
1409
1410
1411
1412
1413
1414
1415 <li class="md-nav__item">
1416 <a href="../pip/template-listener/" class="md-nav__link">
1417 templateListener
1418 </a>
1419 </li>
1420
1421
1422
1423
1424
1425
1426
1427 <li class="md-nav__item">
1428 <a href="../pip/user-group-option/" class="md-nav__link">
1429 userGroupOption
1430 </a>
1431 </li>
1432
1433
1434
1435
1436
1437
1438
1439 <li class="md-nav__item">
1440 <a href="../pip/user-menu/" class="md-nav__link">
1441 userMenu
1442 </a>
1443 </li>
1444
1445
1446
1447
1448
1449
1450
1451 <li class="md-nav__item">
1452 <a href="../pip/user-notification-event/" class="md-nav__link">
1453 userNotificationEvent
1454 </a>
1455 </li>
1456
1457
1458
1459
1460
1461
1462
1463 <li class="md-nav__item">
1464 <a href="../pip/user-option/" class="md-nav__link">
1465 userOption
1466 </a>
1467 </li>
1468
1469
1470
1471
1472
1473
1474
1475 <li class="md-nav__item">
1476 <a href="../pip/user-profile-menu/" class="md-nav__link">
1477 userProfileMenu
1478 </a>
1479 </li>
1480
1481
1482
1483 </ul>
1484 </nav>
1485 </li>
1486
1487
1488
1489
1490
1491
1492
1493 <li class="md-nav__item">
1494 <a href="../database-php-api/" class="md-nav__link">
1495 Database PHP API
1496 </a>
1497 </li>
1498
1499
1500
1501 </ul>
1502 </nav>
1503 </li>
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515 <li class="md-nav__item md-nav__item--nested">
1516
1517
1518 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
1519
1520 <label class="md-nav__link" for="__nav_6">
1521 Migration
1522 <span class="md-nav__icon md-icon"></span>
1523 </label>
1524 <nav class="md-nav" aria-label="Migration" data-md-level="1">
1525 <label class="md-nav__title" for="__nav_6">
1526 <span class="md-nav__icon md-icon"></span>
1527 Migration
1528 </label>
1529 <ul class="md-nav__list" data-md-scrollfix>
1530
1531
1532
1533
1534
1535
1536 <li class="md-nav__item md-nav__item--nested">
1537
1538
1539 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_1" type="checkbox" id="__nav_6_1" >
1540
1541 <label class="md-nav__link" for="__nav_6_1">
1542 Migrating from WSC 5.3
1543 <span class="md-nav__icon md-icon"></span>
1544 </label>
1545 <nav class="md-nav" aria-label="Migrating from WSC 5.3" data-md-level="2">
1546 <label class="md-nav__title" for="__nav_6_1">
1547 <span class="md-nav__icon md-icon"></span>
1548 Migrating from WSC 5.3
1549 </label>
1550 <ul class="md-nav__list" data-md-scrollfix>
1551
1552
1553
1554
1555
1556 <li class="md-nav__item">
1557 <a href="../../migration/wsc53/php/" class="md-nav__link">
1558 PHP API
1559 </a>
1560 </li>
1561
1562
1563
1564
1565
1566
1567
1568 <li class="md-nav__item">
1569 <a href="../../migration/wsc53/session/" class="md-nav__link">
1570 Session Handling and Authentication
1571 </a>
1572 </li>
1573
1574
1575
1576
1577
1578
1579
1580 <li class="md-nav__item">
1581 <a href="../../migration/wsc53/javascript/" class="md-nav__link">
1582 JavaScript
1583 </a>
1584 </li>
1585
1586
1587
1588
1589
1590
1591
1592 <li class="md-nav__item">
1593 <a href="../../migration/wsc53/templates/" class="md-nav__link">
1594 Templates
1595 </a>
1596 </li>
1597
1598
1599
1600
1601
1602
1603
1604 <li class="md-nav__item">
1605 <a href="../../migration/wsc53/libraries/" class="md-nav__link">
1606 Third Party Libraries
1607 </a>
1608 </li>
1609
1610
1611
1612 </ul>
1613 </nav>
1614 </li>
1615
1616
1617
1618
1619
1620
1621
1622
1623 <li class="md-nav__item md-nav__item--nested">
1624
1625
1626 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
1627
1628 <label class="md-nav__link" for="__nav_6_2">
1629 Migrating from WSC 5.2
1630 <span class="md-nav__icon md-icon"></span>
1631 </label>
1632 <nav class="md-nav" aria-label="Migrating from WSC 5.2" data-md-level="2">
1633 <label class="md-nav__title" for="__nav_6_2">
1634 <span class="md-nav__icon md-icon"></span>
1635 Migrating from WSC 5.2
1636 </label>
1637 <ul class="md-nav__list" data-md-scrollfix>
1638
1639
1640
1641
1642
1643 <li class="md-nav__item">
1644 <a href="../../migration/wsc52/php/" class="md-nav__link">
1645 PHP API
1646 </a>
1647 </li>
1648
1649
1650
1651
1652
1653
1654
1655 <li class="md-nav__item">
1656 <a href="../../migration/wsc52/templates/" class="md-nav__link">
1657 Templates and Languages
1658 </a>
1659 </li>
1660
1661
1662
1663
1664
1665
1666
1667 <li class="md-nav__item">
1668 <a href="../../migration/wsc52/libraries/" class="md-nav__link">
1669 Third Party Libraries
1670 </a>
1671 </li>
1672
1673
1674
1675 </ul>
1676 </nav>
1677 </li>
1678
1679
1680
1681
1682
1683
1684
1685
1686 <li class="md-nav__item md-nav__item--nested">
1687
1688
1689 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" >
1690
1691 <label class="md-nav__link" for="__nav_6_3">
1692 Migrating from WSC 3.1
1693 <span class="md-nav__icon md-icon"></span>
1694 </label>
1695 <nav class="md-nav" aria-label="Migrating from WSC 3.1" data-md-level="2">
1696 <label class="md-nav__title" for="__nav_6_3">
1697 <span class="md-nav__icon md-icon"></span>
1698 Migrating from WSC 3.1
1699 </label>
1700 <ul class="md-nav__list" data-md-scrollfix>
1701
1702
1703
1704
1705
1706 <li class="md-nav__item">
1707 <a href="../../migration/wsc31/php/" class="md-nav__link">
1708 PHP API
1709 </a>
1710 </li>
1711
1712
1713
1714 </ul>
1715 </nav>
1716 </li>
1717
1718
1719
1720
1721
1722
1723
1724
1725 <li class="md-nav__item md-nav__item--nested">
1726
1727
1728 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_4" type="checkbox" id="__nav_6_4" >
1729
1730 <label class="md-nav__link" for="__nav_6_4">
1731 Migrating from WSC 3.0
1732 <span class="md-nav__icon md-icon"></span>
1733 </label>
1734 <nav class="md-nav" aria-label="Migrating from WSC 3.0" data-md-level="2">
1735 <label class="md-nav__title" for="__nav_6_4">
1736 <span class="md-nav__icon md-icon"></span>
1737 Migrating from WSC 3.0
1738 </label>
1739 <ul class="md-nav__list" data-md-scrollfix>
1740
1741
1742
1743
1744
1745 <li class="md-nav__item">
1746 <a href="../../migration/wsc30/php/" class="md-nav__link">
1747 PHP API
1748 </a>
1749 </li>
1750
1751
1752
1753
1754
1755
1756
1757 <li class="md-nav__item">
1758 <a href="../../migration/wsc30/javascript/" class="md-nav__link">
1759 JavaScript API
1760 </a>
1761 </li>
1762
1763
1764
1765
1766
1767
1768
1769 <li class="md-nav__item">
1770 <a href="../../migration/wsc30/templates/" class="md-nav__link">
1771 Templates
1772 </a>
1773 </li>
1774
1775
1776
1777
1778
1779
1780
1781 <li class="md-nav__item">
1782 <a href="../../migration/wsc30/css/" class="md-nav__link">
1783 CSS
1784 </a>
1785 </li>
1786
1787
1788
1789
1790
1791
1792
1793 <li class="md-nav__item">
1794 <a href="../../migration/wsc30/package/" class="md-nav__link">
1795 Package Components
1796 </a>
1797 </li>
1798
1799
1800
1801 </ul>
1802 </nav>
1803 </li>
1804
1805
1806
1807
1808
1809
1810
1811
1812 <li class="md-nav__item md-nav__item--nested">
1813
1814
1815 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_5" type="checkbox" id="__nav_6_5" >
1816
1817 <label class="md-nav__link" for="__nav_6_5">
1818 Migrating from WCF 2.1
1819 <span class="md-nav__icon md-icon"></span>
1820 </label>
1821 <nav class="md-nav" aria-label="Migrating from WCF 2.1" data-md-level="2">
1822 <label class="md-nav__title" for="__nav_6_5">
1823 <span class="md-nav__icon md-icon"></span>
1824 Migrating from WCF 2.1
1825 </label>
1826 <ul class="md-nav__list" data-md-scrollfix>
1827
1828
1829
1830
1831
1832 <li class="md-nav__item">
1833 <a href="../../migration/wcf21/php/" class="md-nav__link">
1834 PHP API
1835 </a>
1836 </li>
1837
1838
1839
1840
1841
1842
1843
1844 <li class="md-nav__item">
1845 <a href="../../migration/wcf21/templates/" class="md-nav__link">
1846 Templates
1847 </a>
1848 </li>
1849
1850
1851
1852
1853
1854
1855
1856 <li class="md-nav__item">
1857 <a href="../../migration/wcf21/css/" class="md-nav__link">
1858 CSS
1859 </a>
1860 </li>
1861
1862
1863
1864
1865
1866
1867
1868 <li class="md-nav__item">
1869 <a href="../../migration/wcf21/package/" class="md-nav__link">
1870 Package Components
1871 </a>
1872 </li>
1873
1874
1875
1876 </ul>
1877 </nav>
1878 </li>
1879
1880
1881
1882 </ul>
1883 </nav>
1884 </li>
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896 <li class="md-nav__item md-nav__item--nested">
1897
1898
1899 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
1900
1901 <label class="md-nav__link" for="__nav_7">
1902 Tutorials
1903 <span class="md-nav__icon md-icon"></span>
1904 </label>
1905 <nav class="md-nav" aria-label="Tutorials" data-md-level="1">
1906 <label class="md-nav__title" for="__nav_7">
1907 <span class="md-nav__icon md-icon"></span>
1908 Tutorials
1909 </label>
1910 <ul class="md-nav__list" data-md-scrollfix>
1911
1912
1913
1914
1915
1916
1917 <li class="md-nav__item md-nav__item--nested">
1918
1919
1920 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_1" type="checkbox" id="__nav_7_1" >
1921
1922 <label class="md-nav__link" for="__nav_7_1">
1923 Tutorial Series
1924 <span class="md-nav__icon md-icon"></span>
1925 </label>
1926 <nav class="md-nav" aria-label="Tutorial Series" data-md-level="2">
1927 <label class="md-nav__title" for="__nav_7_1">
1928 <span class="md-nav__icon md-icon"></span>
1929 Tutorial Series
1930 </label>
1931 <ul class="md-nav__list" data-md-scrollfix>
1932
1933
1934
1935
1936
1937 <li class="md-nav__item">
1938 <a href="../../tutorial/series/overview/" class="md-nav__link">
1939 Overview
1940 </a>
1941 </li>
1942
1943
1944
1945
1946
1947
1948
1949 <li class="md-nav__item">
1950 <a href="../../tutorial/series/part_1/" class="md-nav__link">
1951 Part 1
1952 </a>
1953 </li>
1954
1955
1956
1957
1958
1959
1960
1961 <li class="md-nav__item">
1962 <a href="../../tutorial/series/part_2/" class="md-nav__link">
1963 Part 2
1964 </a>
1965 </li>
1966
1967
1968
1969
1970
1971
1972
1973 <li class="md-nav__item">
1974 <a href="../../tutorial/series/part_3/" class="md-nav__link">
1975 Part 3
1976 </a>
1977 </li>
1978
1979
1980
1981 </ul>
1982 </nav>
1983 </li>
1984
1985
1986
1987 </ul>
1988 </nav>
1989 </li>
1990
1991
1992
1993 </ul>
1994 </nav>
1995 </div>
1996 </div>
1997 </div>
1998
1999
2000
2001 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
2002 <div class="md-sidebar__scrollwrap">
2003 <div class="md-sidebar__inner">
2004
2005 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2006
2007
2008
2009
2010
2011 <label class="md-nav__title" for="__toc">
2012 <span class="md-nav__icon md-icon"></span>
2013 Table of contents
2014 </label>
2015 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2016
2017 <li class="md-nav__item">
2018 <a href="#example" class="md-nav__link">
2019 Example
2020 </a>
2021
2022 </li>
2023
2024 <li class="md-nav__item">
2025 <a href="#elements" class="md-nav__link">
2026 Elements
2027 </a>
2028
2029 <nav class="md-nav" aria-label="Elements">
2030 <ul class="md-nav__list">
2031
2032 <li class="md-nav__item">
2033 <a href="#package" class="md-nav__link">
2034 &lt;package&gt;
2035 </a>
2036
2037 </li>
2038
2039 <li class="md-nav__item">
2040 <a href="#packageinformation" class="md-nav__link">
2041 &lt;packageinformation&gt;
2042 </a>
2043
2044 <nav class="md-nav" aria-label="&lt;packageinformation&gt;">
2045 <ul class="md-nav__list">
2046
2047 <li class="md-nav__item">
2048 <a href="#packagename" class="md-nav__link">
2049 &lt;packagename&gt;
2050 </a>
2051
2052 </li>
2053
2054 <li class="md-nav__item">
2055 <a href="#packagedescription" class="md-nav__link">
2056 &lt;packagedescription&gt;
2057 </a>
2058
2059 </li>
2060
2061 <li class="md-nav__item">
2062 <a href="#version" class="md-nav__link">
2063 &lt;version&gt;
2064 </a>
2065
2066 </li>
2067
2068 <li class="md-nav__item">
2069 <a href="#date" class="md-nav__link">
2070 &lt;date&gt;
2071 </a>
2072
2073 </li>
2074
2075 </ul>
2076 </nav>
2077
2078 </li>
2079
2080 <li class="md-nav__item">
2081 <a href="#authorinformation" class="md-nav__link">
2082 &lt;authorinformation&gt;
2083 </a>
2084
2085 <nav class="md-nav" aria-label="&lt;authorinformation&gt;">
2086 <ul class="md-nav__list">
2087
2088 <li class="md-nav__item">
2089 <a href="#author" class="md-nav__link">
2090 &lt;author&gt;
2091 </a>
2092
2093 </li>
2094
2095 <li class="md-nav__item">
2096 <a href="#authorurl" class="md-nav__link">
2097 &lt;authorurl&gt;
2098 </a>
2099
2100 </li>
2101
2102 </ul>
2103 </nav>
2104
2105 </li>
2106
2107 <li class="md-nav__item">
2108 <a href="#requiredpackages" class="md-nav__link">
2109 &lt;requiredpackages&gt;
2110 </a>
2111
2112 <nav class="md-nav" aria-label="&lt;requiredpackages&gt;">
2113 <ul class="md-nav__list">
2114
2115 <li class="md-nav__item">
2116 <a href="#requiredpackage" class="md-nav__link">
2117 &lt;requiredpackage&gt;
2118 </a>
2119
2120 </li>
2121
2122 </ul>
2123 </nav>
2124
2125 </li>
2126
2127 <li class="md-nav__item">
2128 <a href="#optionalpackage" class="md-nav__link">
2129 &lt;optionalpackage&gt;
2130 </a>
2131
2132 <nav class="md-nav" aria-label="&lt;optionalpackage&gt;">
2133 <ul class="md-nav__list">
2134
2135 <li class="md-nav__item">
2136 <a href="#optionalpackage_1" class="md-nav__link">
2137 &lt;optionalpackage&gt;
2138 </a>
2139
2140 </li>
2141
2142 </ul>
2143 </nav>
2144
2145 </li>
2146
2147 <li class="md-nav__item">
2148 <a href="#excludedpackages" class="md-nav__link">
2149 &lt;excludedpackages&gt;
2150 </a>
2151
2152 <nav class="md-nav" aria-label="&lt;excludedpackages&gt;">
2153 <ul class="md-nav__list">
2154
2155 <li class="md-nav__item">
2156 <a href="#excludedpackage" class="md-nav__link">
2157 &lt;excludedpackage&gt;
2158 </a>
2159
2160 </li>
2161
2162 </ul>
2163 </nav>
2164
2165 </li>
2166
2167 <li class="md-nav__item">
2168 <a href="#compatibility" class="md-nav__link">
2169 &lt;compatibility&gt;
2170 </a>
2171
2172 <nav class="md-nav" aria-label="&lt;compatibility&gt;">
2173 <ul class="md-nav__list">
2174
2175 <li class="md-nav__item">
2176 <a href="#existing-api-versions" class="md-nav__link">
2177 Existing API versions
2178 </a>
2179
2180 </li>
2181
2182 </ul>
2183 </nav>
2184
2185 </li>
2186
2187 <li class="md-nav__item">
2188 <a href="#instructions" class="md-nav__link">
2189 &lt;instructions&gt;
2190 </a>
2191
2192 <nav class="md-nav" aria-label="&lt;instructions&gt;">
2193 <ul class="md-nav__list">
2194
2195 <li class="md-nav__item">
2196 <a href="#instructions-typeinstall" class="md-nav__link">
2197 &lt;instructions type="install"&gt;
2198 </a>
2199
2200 </li>
2201
2202 <li class="md-nav__item">
2203 <a href="#instructions-typeupdate-fromversion" class="md-nav__link">
2204 &lt;instructions type="update" fromversion="…"&gt;
2205 </a>
2206
2207 </li>
2208
2209 <li class="md-nav__item">
2210 <a href="#instruction" class="md-nav__link">
2211 &lt;instruction&gt;
2212 </a>
2213
2214 </li>
2215
2216 <li class="md-nav__item">
2217 <a href="#void" class="md-nav__link">
2218 &lt;void/&gt;
2219 </a>
2220
2221 </li>
2222
2223 </ul>
2224 </nav>
2225
2226 </li>
2227
2228 </ul>
2229 </nav>
2230
2231 </li>
2232
2233 </ul>
2234
2235 </nav>
2236 </div>
2237 </div>
2238 </div>
2239
2240
2241 <div class="md-content" data-md-component="content">
2242 <article class="md-content__inner md-typeset">
2243
2244
2245
2246 <h1 id="packagexml">package.xml<a class="headerlink" href="#packagexml" title="Permanent link">#</a></h1>
2247 <p>The <code>package.xml</code> is the core component of every package.
2248 It provides the meta data (e.g. package name, description, author) and the instruction set for a new installation and/or updating from a previous version.</p>
2249 <h2 id="example">Example<a class="headerlink" href="#example" title="Permanent link">#</a></h2>
2250 <div class="highlight"><pre><span></span><code><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
2251 <span class="nt">&lt;package</span> <span class="na">name=</span><span class="s">&quot;com.example.package&quot;</span> <span class="na">xmlns=</span><span class="s">&quot;http://www.woltlab.com&quot;</span> <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> <span class="na">xsi:schemaLocation=</span><span class="s">&quot;http://www.woltlab.com http://www.woltlab.com/XSD/2019/package.xsd&quot;</span><span class="nt">&gt;</span>
2252 <span class="nt">&lt;packageinformation&gt;</span>
2253 <span class="nt">&lt;packagename&gt;</span>Simple Package<span class="nt">&lt;/packagename&gt;</span>
2254 <span class="nt">&lt;packagedescription&gt;</span>A simple package to demonstrate the package system of WoltLab Suite Core<span class="nt">&lt;/packagedescription&gt;</span>
2255 <span class="nt">&lt;version&gt;</span>1.0.0<span class="nt">&lt;/version&gt;</span>
2256 <span class="nt">&lt;date&gt;</span>2016-12-18<span class="nt">&lt;/date&gt;</span>
2257 <span class="nt">&lt;/packageinformation&gt;</span>
2258
2259 <span class="nt">&lt;authorinformation&gt;</span>
2260 <span class="nt">&lt;author&gt;</span>YOUR NAME<span class="nt">&lt;/author&gt;</span>
2261 <span class="nt">&lt;authorurl&gt;</span>http://www.example.com<span class="nt">&lt;/authorurl&gt;</span>
2262 <span class="nt">&lt;/authorinformation&gt;</span>
2263
2264 <span class="nt">&lt;requiredpackages&gt;</span>
2265 <span class="nt">&lt;requiredpackage</span> <span class="na">minversion=</span><span class="s">&quot;3.0.0&quot;</span><span class="nt">&gt;</span>com.woltlab.wcf<span class="nt">&lt;/requiredpackage&gt;</span>
2266 <span class="nt">&lt;/requiredpackages&gt;</span>
2267
2268 <span class="nt">&lt;excludedpackages&gt;</span>
2269 <span class="nt">&lt;excludedpackage</span> <span class="na">version=</span><span class="s">&quot;6.0.0 Alpha 1&quot;</span><span class="nt">&gt;</span>com.woltlab.wcf<span class="nt">&lt;/excludedpackage&gt;</span>
2270 <span class="nt">&lt;/excludedpackages&gt;</span>
2271
2272 <span class="nt">&lt;instructions</span> <span class="na">type=</span><span class="s">&quot;install&quot;</span><span class="nt">&gt;</span>
2273 <span class="nt">&lt;instruction</span> <span class="na">type=</span><span class="s">&quot;file&quot;</span> <span class="nt">/&gt;</span>
2274 <span class="nt">&lt;instruction</span> <span class="na">type=</span><span class="s">&quot;template&quot;</span><span class="nt">&gt;</span>templates.tar<span class="nt">&lt;/instruction&gt;</span>
2275 <span class="nt">&lt;/instructions&gt;</span>
2276 <span class="nt">&lt;/package&gt;</span>
2277 </code></pre></div>
2278 <h2 id="elements">Elements<a class="headerlink" href="#elements" title="Permanent link">#</a></h2>
2279 <h3 id="package"><code>&lt;package&gt;</code><a class="headerlink" href="#package" title="Permanent link">#</a></h3>
2280 <p>The root node of every <code>package.xml</code> it contains the reference to the namespace and the location of the XML Schema Definition (XSD).</p>
2281 <p>The attribute <code>name</code> is the most important part, it holds the unique package identifier and is mandatory.
2282 It is based upon your domain name and the package name of your choice.</p>
2283 <p>For example WoltLab Suite Forum (formerly know an WoltLab Burning Board and usually abbreviated as <code>wbb</code>) is created by WoltLab which owns the domain <code>woltlab.com</code>.
2284 The resulting package identifier is <code>com.woltlab.wbb</code> (<code>&lt;tld&gt;.&lt;domain&gt;.&lt;packageName&gt;</code>).</p>
2285 <h3 id="packageinformation"><code>&lt;packageinformation&gt;</code><a class="headerlink" href="#packageinformation" title="Permanent link">#</a></h3>
2286 <p>Holds the entire meta data of the package.</p>
2287 <h4 id="packagename"><code>&lt;packagename&gt;</code><a class="headerlink" href="#packagename" title="Permanent link">#</a></h4>
2288 <p>This is the actual package name displayed to the end user, this can be anything you want, try to keep it short.
2289 It supports the attribute <code>languagecode</code> which allows you to provide the package name in different languages, please be aware that if it is not present, <code>en</code> (English) is assumed:</p>
2290 <div class="highlight"><pre><span></span><code><span class="nt">&lt;packageinformation&gt;</span>
2291 <span class="nt">&lt;packagename&gt;</span>Simple Package<span class="nt">&lt;/packagename&gt;</span>
2292 <span class="nt">&lt;packagename</span> <span class="na">languagecode=</span><span class="s">&quot;de&quot;</span><span class="nt">&gt;</span>Einfaches Paket<span class="nt">&lt;/packagename&gt;</span>
2293 <span class="nt">&lt;/packageinformation&gt;</span>
2294 </code></pre></div>
2295 <h4 id="packagedescription"><code>&lt;packagedescription&gt;</code><a class="headerlink" href="#packagedescription" title="Permanent link">#</a></h4>
2296 <p>Brief summary of the package, use it to explain what it does since the package name might not always be clear enough.
2297 The attribute <code>languagecode</code> is available here too, please reference to <a href="#packageName"><code>&lt;packagename&gt;</code></a> for details.</p>
2298 <h4 id="version"><code>&lt;version&gt;</code><a class="headerlink" href="#version" title="Permanent link">#</a></h4>
2299 <p>The package's version number, this is a string consisting of three numbers separated with a dot and optionally followed by a keyword (must be followed with another number).</p>
2300 <p>The possible keywords are:</p>
2301 <ul>
2302 <li>Alpha/dev (both is regarded to be the same)</li>
2303 <li>Beta</li>
2304 <li>RC (release candidate)</li>
2305 <li>pl (patch level)</li>
2306 </ul>
2307 <p>Valid examples:</p>
2308 <ul>
2309 <li>1.0.0</li>
2310 <li>1.12.13 Alpha 19</li>
2311 <li>7.0.0 pl 3</li>
2312 </ul>
2313 <p>Invalid examples:</p>
2314 <ul>
2315 <li>1.0.0 Beta (keyword Beta must be followed by a number)</li>
2316 <li>2.0 RC 3 (version number must consists of 3 blocks of numbers)</li>
2317 <li>1.2.3 dev 4.5 (4.5 is not an integer, 4 or 5 would be valid but not the fraction)</li>
2318 </ul>
2319 <h4 id="date"><code>&lt;date&gt;</code><a class="headerlink" href="#date" title="Permanent link">#</a></h4>
2320 <p>Must be a valid <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> date, e.g. <code>2013-12-27</code>.</p>
2321 <h3 id="authorinformation"><code>&lt;authorinformation&gt;</code><a class="headerlink" href="#authorinformation" title="Permanent link">#</a></h3>
2322 <p>Holds meta data regarding the package's author.</p>
2323 <h4 id="author"><code>&lt;author&gt;</code><a class="headerlink" href="#author" title="Permanent link">#</a></h4>
2324 <p>Can be anything you want.</p>
2325 <h4 id="authorurl"><code>&lt;authorurl&gt;</code><a class="headerlink" href="#authorurl" title="Permanent link">#</a></h4>
2326 <blockquote>
2327 <p>(optional)</p>
2328 </blockquote>
2329 <p>URL to the author's website.</p>
2330 <h3 id="requiredpackages"><code>&lt;requiredpackages&gt;</code><a class="headerlink" href="#requiredpackages" title="Permanent link">#</a></h3>
2331 <p>A list of packages including their version required for this package to work.</p>
2332 <h4 id="requiredpackage"><code>&lt;requiredpackage&gt;</code><a class="headerlink" href="#requiredpackage" title="Permanent link">#</a></h4>
2333 <p>Example:</p>
2334 <div class="highlight"><pre><span></span><code><span class="nt">&lt;requiredpackage</span> <span class="na">minversion=</span><span class="s">&quot;2.0.0&quot;</span> <span class="na">file=</span><span class="s">&quot;requirements/com.woltlab.wcf.tar&quot;</span><span class="nt">&gt;</span>com.woltlab.wcf<span class="nt">&lt;/requiredpackage&gt;</span>
2335 </code></pre></div>
2336 <p>The attribute <code>minversion</code> must be a valid version number as described in <a href="#version"><code>&lt;version&gt;</code></a>.
2337 The <code>file</code> attribute is optional and specifies the location of the required package's archive relative to the <code>package.xml</code>.</p>
2338 <h3 id="optionalpackage"><code>&lt;optionalpackage&gt;</code><a class="headerlink" href="#optionalpackage" title="Permanent link">#</a></h3>
2339 <p>A list of optional packages which can be selected by the user at the very end of the installation process.</p>
2340 <h4 id="optionalpackage_1"><code>&lt;optionalpackage&gt;</code><a class="headerlink" href="#optionalpackage_1" title="Permanent link">#</a></h4>
2341 <p>Example:</p>
2342 <div class="highlight"><pre><span></span><code><span class="nt">&lt;optionalpackage</span> <span class="na">file=</span><span class="s">&quot;optionals/com.woltlab.wcf.moderatedUserGroup.tar&quot;</span><span class="nt">&gt;</span>com.woltlab.wcf.moderatedUserGroup<span class="nt">&lt;/optionalpackage&gt;</span>
2343 </code></pre></div>
2344 <p>The <code>file</code> attribute specifies the location of the optional package's archive relative to the <code>package.xml</code>.</p>
2345 <h3 id="excludedpackages"><code>&lt;excludedpackages&gt;</code><a class="headerlink" href="#excludedpackages" title="Permanent link">#</a></h3>
2346 <p>List of packages which conflict with this package. It is not possible to install it if any of the specified packages is installed. In return you cannot install an excluded package if this package is installed.</p>
2347 <h4 id="excludedpackage"><code>&lt;excludedpackage&gt;</code><a class="headerlink" href="#excludedpackage" title="Permanent link">#</a></h4>
2348 <p>Example:</p>
2349 <div class="highlight"><pre><span></span><code><span class="nt">&lt;excludedpackage</span> <span class="na">version=</span><span class="s">&quot;3.1.0 Alpha 1&quot;</span><span class="nt">&gt;</span>com.woltlab.wcf<span class="nt">&lt;/excludedpackage&gt;</span>
2350 </code></pre></div>
2351 <p>The attribute <code>version</code> must be a valid version number as described in the <a href="#version">\&lt;version></a> section. In the example above it will be impossible to install this package in WoltLab Suite Core 3.1.0 Alpha 1 or higher.</p>
2352 <h3 id="compatibility"><code>&lt;compatibility&gt;</code><a class="headerlink" href="#compatibility" title="Permanent link">#</a></h3>
2353 <div class="admonition info">
2354 <p class="admonition-title">Available since WoltLab Suite 3.1</p>
2355 </div>
2356 <div class="admonition warning">
2357 <p class="admonition-title">With the release of WoltLab Suite 5.2 the API versions were abolished. Instead of using API versions packages should exclude version <code>6.0.0 Alpha 1</code> of <code>com.woltlab.wcf</code> going forward.</p>
2358 </div>
2359 <p>WoltLab Suite 3.1 introduced a new versioning system that focused around the API compatibility and is intended to replace the <code>&lt;excludedpackage&gt;</code> instruction for the Core for most plugins.</p>
2360 <p>The <code>&lt;compatibility&gt;</code>-tag holds a list of compatible API versions, and while only a single version is available at the time of writing, future versions will add more versions with backwards-compatibility in mind.</p>
2361 <p>Example:</p>
2362 <div class="highlight"><pre><span></span><code><span class="nt">&lt;compatibility&gt;</span>
2363 <span class="nt">&lt;api</span> <span class="na">version=</span><span class="s">&quot;2018&quot;</span> <span class="nt">/&gt;</span>
2364 <span class="nt">&lt;/compatibility&gt;</span>
2365 </code></pre></div>
2366 <h4 id="existing-api-versions">Existing API versions<a class="headerlink" href="#existing-api-versions" title="Permanent link">#</a></h4>
2367 <table>
2368 <thead>
2369 <tr>
2370 <th>WoltLab Suite Core</th>
2371 <th>API-Version</th>
2372 <th>Backwards-Compatible to API-Version</th>
2373 </tr>
2374 </thead>
2375 <tbody>
2376 <tr>
2377 <td>3.1</td>
2378 <td>2018</td>
2379 <td>n/a</td>
2380 </tr>
2381 </tbody>
2382 </table>
2383 <h3 id="instructions"><code>&lt;instructions&gt;</code><a class="headerlink" href="#instructions" title="Permanent link">#</a></h3>
2384 <p>List of instructions to be executed upon install or update. The order is important, the topmost <code>&lt;instruction&gt;</code> will be executed first.</p>
2385 <h4 id="instructions-typeinstall"><code>&lt;instructions type="install"&gt;</code><a class="headerlink" href="#instructions-typeinstall" title="Permanent link">#</a></h4>
2386 <p>List of instructions for a new installation of this package.</p>
2387 <h4 id="instructions-typeupdate-fromversion"><code>&lt;instructions type="update" fromversion="…"&gt;</code><a class="headerlink" href="#instructions-typeupdate-fromversion" title="Permanent link">#</a></h4>
2388 <p>The attribute <code>fromversion</code> must be a valid version number as described in the <a href="#version">\&lt;version></a> section and specifies a possible update from that very version to the package's version.</p>
2389 <div class="admonition warning">
2390 <p class="admonition-title">The installation process will pick exactly one update instruction, ignoring everything else. Please read the explanation below!</p>
2391 </div>
2392 <p>Example:</p>
2393 <ul>
2394 <li>Installed version: <code>1.0.0</code></li>
2395 <li>Package version: <code>1.0.2</code></li>
2396 </ul>
2397 <div class="highlight"><pre><span></span><code><span class="nt">&lt;instructions</span> <span class="na">type=</span><span class="s">&quot;update&quot;</span> <span class="na">fromversion=</span><span class="s">&quot;1.0.0&quot;</span><span class="nt">&gt;</span>
2398 <span class="c">&lt;!-- … --&gt;</span>
2399 <span class="nt">&lt;/instructions&gt;</span>
2400 <span class="nt">&lt;instructions</span> <span class="na">type=</span><span class="s">&quot;update&quot;</span> <span class="na">fromversion=</span><span class="s">&quot;1.0.1&quot;</span><span class="nt">&gt;</span>
2401 <span class="c">&lt;!-- … --&gt;</span>
2402 <span class="nt">&lt;/instructions&gt;</span>
2403 </code></pre></div>
2404 <p>In this example WoltLab Suite Core will pick the first update block since it allows an update from <code>1.0.0 -&gt; 1.0.2</code>.
2405 The other block is not considered, since the currently installed version is <code>1.0.0</code>. After applying the update block (<code>fromversion="1.0.0"</code>), the version now reads <code>1.0.2</code>.</p>
2406 <h4 id="instruction"><code>&lt;instruction&gt;</code><a class="headerlink" href="#instruction" title="Permanent link">#</a></h4>
2407 <p>Example:</p>
2408 <div class="highlight"><pre><span></span><code><span class="nt">&lt;instruction</span> <span class="na">type=</span><span class="s">&quot;objectTypeDefinition&quot;</span><span class="nt">&gt;</span>objectTypeDefinition.xml<span class="nt">&lt;/instruction&gt;</span>
2409 </code></pre></div>
2410 <p>The attribute <code>type</code> specifies the instruction type which is used to determine the package installation plugin (PIP) invoked to handle its value.
2411 The value must be a valid file relative to the location of <code>package.xml</code>.
2412 Many PIPs provide default file names which are used if no value is given:</p>
2413 <div class="highlight"><pre><span></span><code><span class="nt">&lt;instruction</span> <span class="na">type=</span><span class="s">&quot;objectTypeDefinition&quot;</span> <span class="nt">/&gt;</span>
2414 </code></pre></div>
2415 <p>There is a <a href="../pip/">list of all default PIPs</a> available.</p>
2416 <div class="admonition warning">
2417 <p class="admonition-title">Both the <code>type</code>-attribute and the element value are case-sensitive. Windows does not care if the file is called <code>objecttypedefinition.xml</code> but was referenced as <code>objectTypeDefinition.xml</code>, but both Linux and Mac systems will be unable to find the file.</p>
2418 </div>
2419 <p>In addition to the <code>type</code> attribute, an optional <code>run</code> attribute (with <code>standalone</code> as the only valid value) is supported which forces the installation to execute this PIP in an isolated request, allowing a single, resource-heavy PIP to execute without encountering restrictions such as PHP’s <code>memory_limit</code> or <code>max_execution_time</code>:</p>
2420 <div class="highlight"><pre><span></span><code><span class="nt">&lt;instruction</span> <span class="na">type=</span><span class="s">&quot;file&quot;</span> <span class="na">run=</span><span class="s">&quot;standalone&quot;</span> <span class="nt">/&gt;</span>
2421 </code></pre></div>
2422 <h4 id="void"><code>&lt;void/&gt;</code><a class="headerlink" href="#void" title="Permanent link">#</a></h4>
2423 <p>Sometimes a package update should only adjust the metadata of the package, for example, an optional package was added.
2424 However, WoltLab Suite Core requires that the list of <code>&lt;instructions&gt;</code> is non-empty.
2425 Instead of using a dummy <code>&lt;instruction&gt;</code> that idempotently updates some PIP, the <code>&lt;void/&gt;</code> tag can be used for this use-case.</p>
2426 <p>Using the <code>&lt;void/&gt;</code> tag is only valid for <code>&lt;instructions type="update"&gt;</code> and must not be accompanied by other <code>&lt;instruction&gt;</code> tags.</p>
2427 <p>Example:</p>
2428 <div class="highlight"><pre><span></span><code><span class="nt">&lt;instructions</span> <span class="na">type=</span><span class="s">&quot;update&quot;</span> <span class="na">fromversion=</span><span class="s">&quot;1.0.0&quot;</span><span class="nt">&gt;</span>
2429 <span class="nt">&lt;void/&gt;</span>
2430 <span class="nt">&lt;/instructions&gt;</span>
2431 </code></pre></div>
2432
2433
2434
2435
2436
2437
2438
2439 </article>
2440 </div>
2441 </div>
2442 </main>
2443
2444
2445 <footer class="md-footer">
2446
2447 <nav class="md-footer__inner md-grid" aria-label="Footer">
2448
2449 <a href="../../javascript/code-snippets/" class="md-footer__link md-footer__link--prev" rel="prev">
2450 <div class="md-footer__button md-icon">
2451 <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>
2452 </div>
2453 <div class="md-footer__title">
2454 <div class="md-ellipsis">
2455 <span class="md-footer__direction">
2456 Previous
2457 </span>
2458 Code Snippets
2459 </div>
2460 </div>
2461 </a>
2462
2463
2464 <a href="../pip/" class="md-footer__link md-footer__link--next" rel="next">
2465 <div class="md-footer__title">
2466 <div class="md-ellipsis">
2467 <span class="md-footer__direction">
2468 Next
2469 </span>
2470 Overview
2471 </div>
2472 </div>
2473 <div class="md-footer__button md-icon">
2474 <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>
2475 </div>
2476 </a>
2477
2478 </nav>
2479
2480 <div class="md-footer-meta md-typeset">
2481 <div class="md-footer-meta__inner md-grid">
2482 <div class="md-footer-copyright">
2483
2484 <div class="md-footer-copyright__highlight">
2485 Copyright © 2020 WoltLab GmbH
2486 </div>
2487
2488 Made with
2489 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2490 Material for MkDocs
2491 </a>
2492
2493 </div>
2494 <div class="md-footer-copyright">
2495 <a href="https://www.woltlab.com/legal-notice/">Legal Notice</a>
2496 <a href="https://www.woltlab.com/privacy-policy/">Privacy Policy</a>
2497 </div>
2498 </div>
2499 </div>
2500 </footer>
2501
2502 </div>
2503 <div class="md-dialog" data-md-component="dialog">
2504 <div class="md-dialog__inner md-typeset"></div>
2505 </div>
2506 <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>
2507
2508
2509 <script src="../../assets/javascripts/bundle.5cf3e710.min.js"></script>
2510
2511
2512 </body>
2513 </html>