Deployed 506b5bb 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
CommitLineData
45ca63d0
TD
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">
fb88dc6e 13 <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-7.0.5">
45ca63d0
TD
14
15
16
17 <title>package.xml - WoltLab Suite Documentation</title>
18
19
20
fb88dc6e 21 <link rel="stylesheet" href="../../assets/stylesheets/main.77f3fd56.min.css">
45ca63d0
TD
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="#packagexml" 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 package.xml
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
823
824 <li class="md-nav__item md-nav__item--active">
825
826 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
827
828
829
830
831 <label class="md-nav__link md-nav__link--active" for="__toc">
832 package.xml
833 <span class="md-nav__icon md-icon"></span>
834 </label>
835
836 <a href="./" class="md-nav__link md-nav__link--active">
837 package.xml
838 </a>
839
840
841<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
842
843
844
845
846
847 <label class="md-nav__title" for="__toc">
848 <span class="md-nav__icon md-icon"></span>
849 Table of contents
850 </label>
851 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
852
853 <li class="md-nav__item">
854 <a href="#example" class="md-nav__link">
855 Example
856 </a>
857
858</li>
859
860 <li class="md-nav__item">
861 <a href="#elements" class="md-nav__link">
862 Elements
863 </a>
864
865 <nav class="md-nav" aria-label="Elements">
866 <ul class="md-nav__list">
867
868 <li class="md-nav__item">
869 <a href="#package" class="md-nav__link">
870 &lt;package&gt;
871 </a>
872
873</li>
874
875 <li class="md-nav__item">
876 <a href="#packageinformation" class="md-nav__link">
877 &lt;packageinformation&gt;
878 </a>
879
880 <nav class="md-nav" aria-label="&lt;packageinformation&gt;">
881 <ul class="md-nav__list">
882
883 <li class="md-nav__item">
884 <a href="#packagename" class="md-nav__link">
885 &lt;packagename&gt;
886 </a>
887
888</li>
889
890 <li class="md-nav__item">
891 <a href="#packagedescription" class="md-nav__link">
892 &lt;packagedescription&gt;
893 </a>
894
895</li>
896
897 <li class="md-nav__item">
898 <a href="#version" class="md-nav__link">
899 &lt;version&gt;
900 </a>
901
902</li>
903
904 <li class="md-nav__item">
905 <a href="#date" class="md-nav__link">
906 &lt;date&gt;
907 </a>
908
909</li>
910
911 </ul>
912 </nav>
913
914</li>
915
916 <li class="md-nav__item">
917 <a href="#authorinformation" class="md-nav__link">
918 &lt;authorinformation&gt;
919 </a>
920
921 <nav class="md-nav" aria-label="&lt;authorinformation&gt;">
922 <ul class="md-nav__list">
923
924 <li class="md-nav__item">
925 <a href="#author" class="md-nav__link">
926 &lt;author&gt;
927 </a>
928
929</li>
930
931 <li class="md-nav__item">
932 <a href="#authorurl" class="md-nav__link">
933 &lt;authorurl&gt;
934 </a>
935
936</li>
937
938 </ul>
939 </nav>
940
941</li>
942
943 <li class="md-nav__item">
944 <a href="#requiredpackages" class="md-nav__link">
945 &lt;requiredpackages&gt;
946 </a>
947
948 <nav class="md-nav" aria-label="&lt;requiredpackages&gt;">
949 <ul class="md-nav__list">
950
951 <li class="md-nav__item">
952 <a href="#requiredpackage" class="md-nav__link">
953 &lt;requiredpackage&gt;
954 </a>
955
956</li>
957
958 </ul>
959 </nav>
960
961</li>
962
963 <li class="md-nav__item">
964 <a href="#optionalpackage" class="md-nav__link">
965 &lt;optionalpackage&gt;
966 </a>
967
968 <nav class="md-nav" aria-label="&lt;optionalpackage&gt;">
969 <ul class="md-nav__list">
970
971 <li class="md-nav__item">
972 <a href="#optionalpackage_1" class="md-nav__link">
973 &lt;optionalpackage&gt;
974 </a>
975
976</li>
977
978 </ul>
979 </nav>
980
981</li>
982
983 <li class="md-nav__item">
984 <a href="#excludedpackages" class="md-nav__link">
985 &lt;excludedpackages&gt;
986 </a>
987
988 <nav class="md-nav" aria-label="&lt;excludedpackages&gt;">
989 <ul class="md-nav__list">
990
991 <li class="md-nav__item">
992 <a href="#excludedpackage" class="md-nav__link">
993 &lt;excludedpackage&gt;
994 </a>
995
99e591c9
WG
996</li>
997
998 </ul>
999 </nav>
1000
45ca63d0
TD
1001</li>
1002
99e591c9
WG
1003 <li class="md-nav__item">
1004 <a href="#compatibility" class="md-nav__link">
1005 &lt;compatibility&gt;
1006 </a>
1007
1008 <nav class="md-nav" aria-label="&lt;compatibility&gt;">
1009 <ul class="md-nav__list">
1010
45ca63d0
TD
1011 <li class="md-nav__item">
1012 <a href="#existing-api-versions" class="md-nav__link">
1013 Existing API versions
1014 </a>
1015
1016</li>
1017
1018 </ul>
1019 </nav>
1020
1021</li>
1022
1023 <li class="md-nav__item">
1024 <a href="#instructions" class="md-nav__link">
1025 &lt;instructions&gt;
1026 </a>
1027
1028 <nav class="md-nav" aria-label="&lt;instructions&gt;">
1029 <ul class="md-nav__list">
1030
1031 <li class="md-nav__item">
1032 <a href="#instructions-typeinstall" class="md-nav__link">
1033 &lt;instructions type="install"&gt;
1034 </a>
1035
1036</li>
1037
1038 <li class="md-nav__item">
1039 <a href="#instructions-typeupdate-fromversion" class="md-nav__link">
1040 &lt;instructions type="update" fromversion="…"&gt;
1041 </a>
1042
1043</li>
1044
1045 <li class="md-nav__item">
1046 <a href="#instruction" class="md-nav__link">
1047 &lt;instruction&gt;
1048 </a>
1049
1050</li>
1051
1052 <li class="md-nav__item">
1053 <a href="#void" class="md-nav__link">
1054 &lt;void/&gt;
1055 </a>
1056
1057</li>
1058
1059 </ul>
1060 </nav>
1061
1062</li>
1063
1064 </ul>
1065 </nav>
1066
1067</li>
1068
1069 </ul>
1070
1071</nav>
1072
1073 </li>
1074
1075
1076
1077
1078
1079
1080
1081
1082 <li class="md-nav__item md-nav__item--nested">
1083
1084
1085 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_2" type="checkbox" id="__nav_5_2" >
1086
1087 <label class="md-nav__link" for="__nav_5_2">
1088 PIPs
1089 <span class="md-nav__icon md-icon"></span>
1090 </label>
1091 <nav class="md-nav" aria-label="PIPs" data-md-level="2">
1092 <label class="md-nav__title" for="__nav_5_2">
1093 <span class="md-nav__icon md-icon"></span>
1094 PIPs
1095 </label>
1096 <ul class="md-nav__list" data-md-scrollfix>
1097
1098
1099
1100
1101
1102 <li class="md-nav__item">
1103 <a href="../pip/" class="md-nav__link">
1104 Overview
1105 </a>
1106 </li>
1107
1108
1109
1110
1111
1112
1113
1114 <li class="md-nav__item">
1115 <a href="../pip/acl-option/" class="md-nav__link">
1116 aclOption
1117 </a>
1118 </li>
1119
1120
1121
1122
1123
1124
1125
1126 <li class="md-nav__item">
1127 <a href="../pip/acp-menu/" class="md-nav__link">
1128 acpMenu
1129 </a>
1130 </li>
1131
1132
1133
1134
1135
1136
1137
1138 <li class="md-nav__item">
1139 <a href="../pip/acp-search-provider/" class="md-nav__link">
1140 acpSearchProvider
1141 </a>
1142 </li>
1143
1144
1145
1146
1147
1148
1149
1150 <li class="md-nav__item">
1151 <a href="../pip/acp-template/" class="md-nav__link">
1152 acpTemplate
1153 </a>
1154 </li>
1155
1156
1157
1158
1159
1160
1161
1162 <li class="md-nav__item">
1163 <a href="../pip/bbcode/" class="md-nav__link">
1164 bbcode
1165 </a>
1166 </li>
1167
1168
1169
1170
1171
1172
1173
1174 <li class="md-nav__item">
1175 <a href="../pip/box/" class="md-nav__link">
1176 box
1177 </a>
1178 </li>
1179
1180
1181
1182
1183
1184
1185
1186 <li class="md-nav__item">
1187 <a href="../pip/clipboard-action/" class="md-nav__link">
1188 clipboardAction
1189 </a>
1190 </li>
1191
1192
1193
1194
1195
1196
1197
1198 <li class="md-nav__item">
1199 <a href="../pip/core-object/" class="md-nav__link">
1200 coreObject
1201 </a>
1202 </li>
1203
1204
1205
1206
1207
1208
1209
1210 <li class="md-nav__item">
1211 <a href="../pip/cronjob/" class="md-nav__link">
1212 cronjob
1213 </a>
1214 </li>
1215
1216
1217
1218
1219
1220
1221
1222 <li class="md-nav__item">
1223 <a href="../pip/event-listener/" class="md-nav__link">
1224 eventListener
1225 </a>
1226 </li>
1227
1228
1229
1230
1231
1232
1233
1234 <li class="md-nav__item">
1235 <a href="../pip/file/" class="md-nav__link">
1236 file
1237 </a>
1238 </li>
1239
1240
1241
1242
1243
1244
1245
1246 <li class="md-nav__item">
1247 <a href="../pip/language/" class="md-nav__link">
1248 language
1249 </a>
1250 </li>
1251
1252
1253
1254
1255
1256
1257
1258 <li class="md-nav__item">
1259 <a href="../pip/media-provider/" class="md-nav__link">
1260 mediaProvider
1261 </a>
1262 </li>
1263
1264
1265
1266
1267
1268
1269
1270 <li class="md-nav__item">
1271 <a href="../pip/menu/" class="md-nav__link">
1272 menu
1273 </a>
1274 </li>
1275
1276
1277
1278
1279
1280
1281
1282 <li class="md-nav__item">
1283 <a href="../pip/menu-item/" class="md-nav__link">
1284 menuItem
1285 </a>
1286 </li>
1287
1288
1289
1290
1291
1292
1293
1294 <li class="md-nav__item">
1295 <a href="../pip/object-type/" class="md-nav__link">
1296 objectType
1297 </a>
1298 </li>
1299
1300
1301
1302
1303
1304
1305
1306 <li class="md-nav__item">
1307 <a href="../pip/object-type-definition/" class="md-nav__link">
1308 objectTypeDefinition
1309 </a>
1310 </li>
1311
1312
1313
1314
1315
1316
1317
1318 <li class="md-nav__item">
1319 <a href="../pip/option/" class="md-nav__link">
1320 option
1321 </a>
1322 </li>
1323
1324
1325
1326
1327
1328
1329
1330 <li class="md-nav__item">
1331 <a href="../pip/page/" class="md-nav__link">
1332 page
1333 </a>
1334 </li>
1335
1336
1337
1338
1339
1340
1341
1342 <li class="md-nav__item">
1343 <a href="../pip/pip/" class="md-nav__link">
1344 pip
1345 </a>
1346 </li>
1347
1348
1349
1350
1351
1352
1353
1354 <li class="md-nav__item">
1355 <a href="../pip/script/" class="md-nav__link">
1356 script
1357 </a>
1358 </li>
1359
1360
1361
1362
1363
1364
1365
1366 <li class="md-nav__item">
1367 <a href="../pip/smiley/" class="md-nav__link">
1368 smiley
1369 </a>
1370 </li>
1371
1372
1373
1374
1375
1376
1377
1378 <li class="md-nav__item">
1379 <a href="../pip/sql/" class="md-nav__link">
1380 sql
1381 </a>
1382 </li>
1383
1384
1385
1386
1387
1388
1389
1390 <li class="md-nav__item">
1391 <a href="../pip/style/" class="md-nav__link">
1392 style
1393 </a>
1394 </li>
1395
1396
1397
1398
1399
1400
1401
1402 <li class="md-nav__item">
1403 <a href="../pip/template/" class="md-nav__link">
1404 template
1405 </a>
1406 </li>
1407
1408
1409
1410
1411
1412
1413
1414 <li class="md-nav__item">
1415 <a href="../pip/template-listener/" class="md-nav__link">
1416 templateListener
1417 </a>
1418 </li>
1419
1420
1421
1422
1423
1424
1425
1426 <li class="md-nav__item">
1427 <a href="../pip/user-group-option/" class="md-nav__link">
1428 userGroupOption
1429 </a>
1430 </li>
1431
1432
1433
1434
1435
1436
1437
1438 <li class="md-nav__item">
1439 <a href="../pip/user-menu/" class="md-nav__link">
1440 userMenu
1441 </a>
1442 </li>
1443
1444
1445
1446
1447
1448
1449
1450 <li class="md-nav__item">
1451 <a href="../pip/user-notification-event/" class="md-nav__link">
1452 userNotificationEvent
1453 </a>
1454 </li>
1455
1456
1457
1458
1459
1460
1461
1462 <li class="md-nav__item">
1463 <a href="../pip/user-option/" class="md-nav__link">
1464 userOption
1465 </a>
1466 </li>
1467
1468
1469
1470
1471
1472
1473
1474 <li class="md-nav__item">
1475 <a href="../pip/user-profile-menu/" class="md-nav__link">
1476 userProfileMenu
1477 </a>
1478 </li>
1479
1480
1481
1482 </ul>
1483 </nav>
1484 </li>
1485
1486
1487
1488
1489
1490
1491
1492 <li class="md-nav__item">
1493 <a href="../database-php-api/" class="md-nav__link">
1494 Database PHP API
1495 </a>
1496 </li>
1497
1498
1499
1500 </ul>
1501 </nav>
1502 </li>
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514 <li class="md-nav__item md-nav__item--nested">
1515
1516
1517 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
1518
1519 <label class="md-nav__link" for="__nav_6">
1520 Migration
1521 <span class="md-nav__icon md-icon"></span>
1522 </label>
1523 <nav class="md-nav" aria-label="Migration" data-md-level="1">
1524 <label class="md-nav__title" for="__nav_6">
1525 <span class="md-nav__icon md-icon"></span>
1526 Migration
1527 </label>
1528 <ul class="md-nav__list" data-md-scrollfix>
1529
1530
1531
1532
1533
1534
1535 <li class="md-nav__item md-nav__item--nested">
1536
1537
1538 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_1" type="checkbox" id="__nav_6_1" >
1539
1540 <label class="md-nav__link" for="__nav_6_1">
1541 Migrating from WSC 5.3
1542 <span class="md-nav__icon md-icon"></span>
1543 </label>
1544 <nav class="md-nav" aria-label="Migrating from WSC 5.3" data-md-level="2">
1545 <label class="md-nav__title" for="__nav_6_1">
1546 <span class="md-nav__icon md-icon"></span>
1547 Migrating from WSC 5.3
1548 </label>
1549 <ul class="md-nav__list" data-md-scrollfix>
1550
1551
1552
1553
1554
1555 <li class="md-nav__item">
1556 <a href="../../migration/wsc53/php/" class="md-nav__link">
1557 PHP API
1558 </a>
1559 </li>
1560
1561
1562
1563
1564
1565
1566
1567 <li class="md-nav__item">
1568 <a href="../../migration/wsc53/session/" class="md-nav__link">
1569 Session Handling and Authentication
1570 </a>
1571 </li>
1572
1573
1574
1575
1576
1577
1578
1579 <li class="md-nav__item">
1580 <a href="../../migration/wsc53/javascript/" class="md-nav__link">
1581 JavaScript
1582 </a>
1583 </li>
1584
1585
1586
1587
1588
1589
1590
1591 <li class="md-nav__item">
1592 <a href="../../migration/wsc53/templates/" class="md-nav__link">
1593 Templates
1594 </a>
1595 </li>
1596
1597
1598
1599
1600
1601
1602
1603 <li class="md-nav__item">
1604 <a href="../../migration/wsc53/libraries/" class="md-nav__link">
1605 Third Party Libraries
1606 </a>
1607 </li>
1608
1609
1610
1611 </ul>
1612 </nav>
1613 </li>
1614
1615
1616
1617
1618
1619
1620
1621
1622 <li class="md-nav__item md-nav__item--nested">
1623
1624
1625 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
1626
1627 <label class="md-nav__link" for="__nav_6_2">
1628 Migrating from WSC 5.2
1629 <span class="md-nav__icon md-icon"></span>
1630 </label>
1631 <nav class="md-nav" aria-label="Migrating from WSC 5.2" data-md-level="2">
1632 <label class="md-nav__title" for="__nav_6_2">
1633 <span class="md-nav__icon md-icon"></span>
1634 Migrating from WSC 5.2
1635 </label>
1636 <ul class="md-nav__list" data-md-scrollfix>
1637
1638
1639
1640
1641
1642 <li class="md-nav__item">
1643 <a href="../../migration/wsc52/php/" class="md-nav__link">
1644 PHP API
1645 </a>
1646 </li>
1647
1648
1649
1650
1651
1652
1653
1654 <li class="md-nav__item">
1655 <a href="../../migration/wsc52/templates/" class="md-nav__link">
1656 Templates and Languages
1657 </a>
1658 </li>
1659
1660
1661
1662
1663
1664
1665
1666 <li class="md-nav__item">
1667 <a href="../../migration/wsc52/libraries/" class="md-nav__link">
1668 Third Party Libraries
1669 </a>
1670 </li>
1671
1672
1673
1674 </ul>
1675 </nav>
1676 </li>
1677
1678
1679
1680
1681
1682
1683
1684
1685 <li class="md-nav__item md-nav__item--nested">
1686
1687
1688 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" >
1689
1690 <label class="md-nav__link" for="__nav_6_3">
1691 Migrating from WSC 3.1
1692 <span class="md-nav__icon md-icon"></span>
1693 </label>
1694 <nav class="md-nav" aria-label="Migrating from WSC 3.1" data-md-level="2">
1695 <label class="md-nav__title" for="__nav_6_3">
1696 <span class="md-nav__icon md-icon"></span>
1697 Migrating from WSC 3.1
1698 </label>
1699 <ul class="md-nav__list" data-md-scrollfix>
1700
1701
1702
1703
1704
1705 <li class="md-nav__item">
1706 <a href="../../migration/wsc31/php/" class="md-nav__link">
1707 PHP API
1708 </a>
1709 </li>
1710
1711
1712
1713 </ul>
1714 </nav>
1715 </li>
1716
1717
1718
1719
1720
1721
1722
1723
1724 <li class="md-nav__item md-nav__item--nested">
1725
1726
1727 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_4" type="checkbox" id="__nav_6_4" >
1728
1729 <label class="md-nav__link" for="__nav_6_4">
1730 Migrating from WSC 3.0
1731 <span class="md-nav__icon md-icon"></span>
1732 </label>
1733 <nav class="md-nav" aria-label="Migrating from WSC 3.0" data-md-level="2">
1734 <label class="md-nav__title" for="__nav_6_4">
1735 <span class="md-nav__icon md-icon"></span>
1736 Migrating from WSC 3.0
1737 </label>
1738 <ul class="md-nav__list" data-md-scrollfix>
1739
1740
1741
1742
1743
1744 <li class="md-nav__item">
1745 <a href="../../migration/wsc30/php/" class="md-nav__link">
1746 PHP API
1747 </a>
1748 </li>
1749
1750
1751
1752
1753
1754
1755
1756 <li class="md-nav__item">
1757 <a href="../../migration/wsc30/javascript/" class="md-nav__link">
1758 JavaScript API
1759 </a>
1760 </li>
1761
1762
1763
1764
1765
1766
1767
1768 <li class="md-nav__item">
1769 <a href="../../migration/wsc30/templates/" class="md-nav__link">
1770 Templates
1771 </a>
1772 </li>
1773
1774
1775
1776
1777
1778
1779
1780 <li class="md-nav__item">
1781 <a href="../../migration/wsc30/css/" class="md-nav__link">
1782 CSS
1783 </a>
1784 </li>
1785
1786
1787
1788
1789
1790
1791
1792 <li class="md-nav__item">
1793 <a href="../../migration/wsc30/package/" class="md-nav__link">
1794 Package Components
1795 </a>
1796 </li>
1797
1798
1799
1800 </ul>
1801 </nav>
1802 </li>
1803
1804
1805
1806
1807
1808
1809
1810
1811 <li class="md-nav__item md-nav__item--nested">
1812
1813
1814 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_5" type="checkbox" id="__nav_6_5" >
1815
1816 <label class="md-nav__link" for="__nav_6_5">
1817 Migrating from WCF 2.1
1818 <span class="md-nav__icon md-icon"></span>
1819 </label>
1820 <nav class="md-nav" aria-label="Migrating from WCF 2.1" data-md-level="2">
1821 <label class="md-nav__title" for="__nav_6_5">
1822 <span class="md-nav__icon md-icon"></span>
1823 Migrating from WCF 2.1
1824 </label>
1825 <ul class="md-nav__list" data-md-scrollfix>
1826
1827
1828
1829
1830
1831 <li class="md-nav__item">
1832 <a href="../../migration/wcf21/php/" class="md-nav__link">
1833 PHP API
1834 </a>
1835 </li>
1836
1837
1838
1839
1840
1841
1842
1843 <li class="md-nav__item">
1844 <a href="../../migration/wcf21/templates/" class="md-nav__link">
1845 Templates
1846 </a>
1847 </li>
1848
1849
1850
1851
1852
1853
1854
1855 <li class="md-nav__item">
1856 <a href="../../migration/wcf21/css/" class="md-nav__link">
1857 CSS
1858 </a>
1859 </li>
1860
1861
1862
1863
1864
1865
1866
1867 <li class="md-nav__item">
1868 <a href="../../migration/wcf21/package/" class="md-nav__link">
1869 Package Components
1870 </a>
1871 </li>
1872
1873
1874
1875 </ul>
1876 </nav>
1877 </li>
1878
1879
1880
1881 </ul>
1882 </nav>
1883 </li>
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895 <li class="md-nav__item md-nav__item--nested">
1896
1897
1898 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
1899
1900 <label class="md-nav__link" for="__nav_7">
1901 Tutorials
1902 <span class="md-nav__icon md-icon"></span>
1903 </label>
1904 <nav class="md-nav" aria-label="Tutorials" data-md-level="1">
1905 <label class="md-nav__title" for="__nav_7">
1906 <span class="md-nav__icon md-icon"></span>
1907 Tutorials
1908 </label>
1909 <ul class="md-nav__list" data-md-scrollfix>
1910
1911
1912
1913
1914
1915
1916 <li class="md-nav__item md-nav__item--nested">
1917
1918
1919 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_1" type="checkbox" id="__nav_7_1" >
1920
1921 <label class="md-nav__link" for="__nav_7_1">
1922 Tutorial Series
1923 <span class="md-nav__icon md-icon"></span>
1924 </label>
1925 <nav class="md-nav" aria-label="Tutorial Series" data-md-level="2">
1926 <label class="md-nav__title" for="__nav_7_1">
1927 <span class="md-nav__icon md-icon"></span>
1928 Tutorial Series
1929 </label>
1930 <ul class="md-nav__list" data-md-scrollfix>
1931
1932
1933
1934
1935
1936 <li class="md-nav__item">
1937 <a href="../../tutorial/series/overview/" class="md-nav__link">
1938 Overview
1939 </a>
1940 </li>
1941
1942
1943
1944
1945
1946
1947
1948 <li class="md-nav__item">
1949 <a href="../../tutorial/series/part_1/" class="md-nav__link">
1950 Part 1
1951 </a>
1952 </li>
1953
1954
1955
1956
1957
1958
1959
1960 <li class="md-nav__item">
1961 <a href="../../tutorial/series/part_2/" class="md-nav__link">
1962 Part 2
1963 </a>
1964 </li>
1965
1966
1967
1968
1969
1970
1971
1972 <li class="md-nav__item">
1973 <a href="../../tutorial/series/part_3/" class="md-nav__link">
1974 Part 3
1975 </a>
1976 </li>
1977
1978
1979
1980 </ul>
1981 </nav>
1982 </li>
1983
1984
1985
1986 </ul>
1987 </nav>
1988 </li>
1989
1990
1991
1992 </ul>
1993</nav>
1994 </div>
1995 </div>
1996 </div>
1997
1998
1999
2000 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
2001 <div class="md-sidebar__scrollwrap">
2002 <div class="md-sidebar__inner">
2003
2004<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2005
2006
2007
2008
2009
2010 <label class="md-nav__title" for="__toc">
2011 <span class="md-nav__icon md-icon"></span>
2012 Table of contents
2013 </label>
2014 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2015
2016 <li class="md-nav__item">
2017 <a href="#example" class="md-nav__link">
2018 Example
2019 </a>
2020
2021</li>
2022
2023 <li class="md-nav__item">
2024 <a href="#elements" class="md-nav__link">
2025 Elements
2026 </a>
2027
2028 <nav class="md-nav" aria-label="Elements">
2029 <ul class="md-nav__list">
2030
2031 <li class="md-nav__item">
2032 <a href="#package" class="md-nav__link">
2033 &lt;package&gt;
2034 </a>
2035
2036</li>
2037
2038 <li class="md-nav__item">
2039 <a href="#packageinformation" class="md-nav__link">
2040 &lt;packageinformation&gt;
2041 </a>
2042
2043 <nav class="md-nav" aria-label="&lt;packageinformation&gt;">
2044 <ul class="md-nav__list">
2045
2046 <li class="md-nav__item">
2047 <a href="#packagename" class="md-nav__link">
2048 &lt;packagename&gt;
2049 </a>
2050
2051</li>
2052
2053 <li class="md-nav__item">
2054 <a href="#packagedescription" class="md-nav__link">
2055 &lt;packagedescription&gt;
2056 </a>
2057
2058</li>
2059
2060 <li class="md-nav__item">
2061 <a href="#version" class="md-nav__link">
2062 &lt;version&gt;
2063 </a>
2064
2065</li>
2066
2067 <li class="md-nav__item">
2068 <a href="#date" class="md-nav__link">
2069 &lt;date&gt;
2070 </a>
2071
2072</li>
2073
2074 </ul>
2075 </nav>
2076
2077</li>
2078
2079 <li class="md-nav__item">
2080 <a href="#authorinformation" class="md-nav__link">
2081 &lt;authorinformation&gt;
2082 </a>
2083
2084 <nav class="md-nav" aria-label="&lt;authorinformation&gt;">
2085 <ul class="md-nav__list">
2086
2087 <li class="md-nav__item">
2088 <a href="#author" class="md-nav__link">
2089 &lt;author&gt;
2090 </a>
2091
2092</li>
2093
2094 <li class="md-nav__item">
2095 <a href="#authorurl" class="md-nav__link">
2096 &lt;authorurl&gt;
2097 </a>
2098
2099</li>
2100
2101 </ul>
2102 </nav>
2103
2104</li>
2105
2106 <li class="md-nav__item">
2107 <a href="#requiredpackages" class="md-nav__link">
2108 &lt;requiredpackages&gt;
2109 </a>
2110
2111 <nav class="md-nav" aria-label="&lt;requiredpackages&gt;">
2112 <ul class="md-nav__list">
2113
2114 <li class="md-nav__item">
2115 <a href="#requiredpackage" class="md-nav__link">
2116 &lt;requiredpackage&gt;
2117 </a>
2118
2119</li>
2120
2121 </ul>
2122 </nav>
2123
2124</li>
2125
2126 <li class="md-nav__item">
2127 <a href="#optionalpackage" class="md-nav__link">
2128 &lt;optionalpackage&gt;
2129 </a>
2130
2131 <nav class="md-nav" aria-label="&lt;optionalpackage&gt;">
2132 <ul class="md-nav__list">
2133
2134 <li class="md-nav__item">
2135 <a href="#optionalpackage_1" class="md-nav__link">
2136 &lt;optionalpackage&gt;
2137 </a>
2138
2139</li>
2140
2141 </ul>
2142 </nav>
2143
2144</li>
2145
2146 <li class="md-nav__item">
2147 <a href="#excludedpackages" class="md-nav__link">
2148 &lt;excludedpackages&gt;
2149 </a>
2150
2151 <nav class="md-nav" aria-label="&lt;excludedpackages&gt;">
2152 <ul class="md-nav__list">
2153
2154 <li class="md-nav__item">
2155 <a href="#excludedpackage" class="md-nav__link">
2156 &lt;excludedpackage&gt;
2157 </a>
2158
99e591c9
WG
2159</li>
2160
2161 </ul>
2162 </nav>
2163
45ca63d0
TD
2164</li>
2165
99e591c9
WG
2166 <li class="md-nav__item">
2167 <a href="#compatibility" class="md-nav__link">
2168 &lt;compatibility&gt;
2169 </a>
2170
2171 <nav class="md-nav" aria-label="&lt;compatibility&gt;">
2172 <ul class="md-nav__list">
2173
45ca63d0
TD
2174 <li class="md-nav__item">
2175 <a href="#existing-api-versions" class="md-nav__link">
2176 Existing API versions
2177 </a>
2178
2179</li>
2180
2181 </ul>
2182 </nav>
2183
2184</li>
2185
2186 <li class="md-nav__item">
2187 <a href="#instructions" class="md-nav__link">
2188 &lt;instructions&gt;
2189 </a>
2190
2191 <nav class="md-nav" aria-label="&lt;instructions&gt;">
2192 <ul class="md-nav__list">
2193
2194 <li class="md-nav__item">
2195 <a href="#instructions-typeinstall" class="md-nav__link">
2196 &lt;instructions type="install"&gt;
2197 </a>
2198
2199</li>
2200
2201 <li class="md-nav__item">
2202 <a href="#instructions-typeupdate-fromversion" class="md-nav__link">
2203 &lt;instructions type="update" fromversion="…"&gt;
2204 </a>
2205
2206</li>
2207
2208 <li class="md-nav__item">
2209 <a href="#instruction" class="md-nav__link">
2210 &lt;instruction&gt;
2211 </a>
2212
2213</li>
2214
2215 <li class="md-nav__item">
2216 <a href="#void" class="md-nav__link">
2217 &lt;void/&gt;
2218 </a>
2219
2220</li>
2221
2222 </ul>
2223 </nav>
2224
2225</li>
2226
2227 </ul>
2228 </nav>
2229
2230</li>
2231
2232 </ul>
2233
2234</nav>
2235 </div>
2236 </div>
2237 </div>
2238
2239
2240 <div class="md-content" data-md-component="content">
2241 <article class="md-content__inner md-typeset">
2242
2243
2244
2245 <h1 id="packagexml">package.xml<a class="headerlink" href="#packagexml" title="Permanent link">#</a></h1>
2246<p>The <code>package.xml</code> is the core component of every package.
2247It 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>
2248<h2 id="example">Example<a class="headerlink" href="#example" title="Permanent link">#</a></h2>
2249<div class="highlight"><pre><span></span><code><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
2250<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>
2251 <span class="nt">&lt;packageinformation&gt;</span>
2252 <span class="nt">&lt;packagename&gt;</span>Simple Package<span class="nt">&lt;/packagename&gt;</span>
2253 <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>
2254 <span class="nt">&lt;version&gt;</span>1.0.0<span class="nt">&lt;/version&gt;</span>
2255 <span class="nt">&lt;date&gt;</span>2016-12-18<span class="nt">&lt;/date&gt;</span>
2256 <span class="nt">&lt;/packageinformation&gt;</span>
2257
2258 <span class="nt">&lt;authorinformation&gt;</span>
2259 <span class="nt">&lt;author&gt;</span>YOUR NAME<span class="nt">&lt;/author&gt;</span>
2260 <span class="nt">&lt;authorurl&gt;</span>http://www.example.com<span class="nt">&lt;/authorurl&gt;</span>
2261 <span class="nt">&lt;/authorinformation&gt;</span>
2262
2263 <span class="nt">&lt;requiredpackages&gt;</span>
2264 <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>
2265 <span class="nt">&lt;/requiredpackages&gt;</span>
2266
2267 <span class="nt">&lt;excludedpackages&gt;</span>
2268 <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>
2269 <span class="nt">&lt;/excludedpackages&gt;</span>
2270
2271 <span class="nt">&lt;instructions</span> <span class="na">type=</span><span class="s">&quot;install&quot;</span><span class="nt">&gt;</span>
2272 <span class="nt">&lt;instruction</span> <span class="na">type=</span><span class="s">&quot;file&quot;</span> <span class="nt">/&gt;</span>
2273 <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>
2274 <span class="nt">&lt;/instructions&gt;</span>
2275<span class="nt">&lt;/package&gt;</span>
2276</code></pre></div>
45ca63d0
TD
2277<h2 id="elements">Elements<a class="headerlink" href="#elements" title="Permanent link">#</a></h2>
2278<h3 id="package"><code>&lt;package&gt;</code><a class="headerlink" href="#package" title="Permanent link">#</a></h3>
2279<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>
2280<p>The attribute <code>name</code> is the most important part, it holds the unique package identifier and is mandatory.
2281It is based upon your domain name and the package name of your choice.</p>
2282<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>.
2283The resulting package identifier is <code>com.woltlab.wbb</code> (<code>&lt;tld&gt;.&lt;domain&gt;.&lt;packageName&gt;</code>).</p>
2284<h3 id="packageinformation"><code>&lt;packageinformation&gt;</code><a class="headerlink" href="#packageinformation" title="Permanent link">#</a></h3>
2285<p>Holds the entire meta data of the package.</p>
2286<h4 id="packagename"><code>&lt;packagename&gt;</code><a class="headerlink" href="#packagename" title="Permanent link">#</a></h4>
2287<p>This is the actual package name displayed to the end user, this can be anything you want, try to keep it short.
2288It 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>
2289<div class="highlight"><pre><span></span><code><span class="nt">&lt;packageinformation&gt;</span>
2290 <span class="nt">&lt;packagename&gt;</span>Simple Package<span class="nt">&lt;/packagename&gt;</span>
2291 <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>
2292<span class="nt">&lt;/packageinformation&gt;</span>
2293</code></pre></div>
45ca63d0
TD
2294<h4 id="packagedescription"><code>&lt;packagedescription&gt;</code><a class="headerlink" href="#packagedescription" title="Permanent link">#</a></h4>
2295<p>Brief summary of the package, use it to explain what it does since the package name might not always be clear enough.
2296The attribute <code>languagecode</code> is available here too, please reference to <a href="#packageName"><code>&lt;packagename&gt;</code></a> for details.</p>
2297<h4 id="version"><code>&lt;version&gt;</code><a class="headerlink" href="#version" title="Permanent link">#</a></h4>
2298<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>
2299<p>The possible keywords are:</p>
2300<ul>
2301<li>Alpha/dev (both is regarded to be the same)</li>
2302<li>Beta</li>
2303<li>RC (release candidate)</li>
2304<li>pl (patch level)</li>
2305</ul>
2306<p>Valid examples:</p>
2307<ul>
2308<li>1.0.0</li>
2309<li>1.12.13 Alpha 19</li>
2310<li>7.0.0 pl 3</li>
2311</ul>
2312<p>Invalid examples:</p>
2313<ul>
2314<li>1.0.0 Beta (keyword Beta must be followed by a number)</li>
2315<li>2.0 RC 3 (version number must consists of 3 blocks of numbers)</li>
2316<li>1.2.3 dev 4.5 (4.5 is not an integer, 4 or 5 would be valid but not the fraction)</li>
2317</ul>
2318<h4 id="date"><code>&lt;date&gt;</code><a class="headerlink" href="#date" title="Permanent link">#</a></h4>
2319<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>
2320<h3 id="authorinformation"><code>&lt;authorinformation&gt;</code><a class="headerlink" href="#authorinformation" title="Permanent link">#</a></h3>
2321<p>Holds meta data regarding the package's author.</p>
2322<h4 id="author"><code>&lt;author&gt;</code><a class="headerlink" href="#author" title="Permanent link">#</a></h4>
2323<p>Can be anything you want.</p>
2324<h4 id="authorurl"><code>&lt;authorurl&gt;</code><a class="headerlink" href="#authorurl" title="Permanent link">#</a></h4>
2325<blockquote>
2326<p>(optional)</p>
2327</blockquote>
2328<p>URL to the author's website.</p>
2329<h3 id="requiredpackages"><code>&lt;requiredpackages&gt;</code><a class="headerlink" href="#requiredpackages" title="Permanent link">#</a></h3>
2330<p>A list of packages including their version required for this package to work.</p>
2331<h4 id="requiredpackage"><code>&lt;requiredpackage&gt;</code><a class="headerlink" href="#requiredpackage" title="Permanent link">#</a></h4>
2332<p>Example:</p>
2333<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>
2334</code></pre></div>
45ca63d0
TD
2335<p>The attribute <code>minversion</code> must be a valid version number as described in <a href="#version"><code>&lt;version&gt;</code></a>.
2336The <code>file</code> attribute is optional and specifies the location of the required package's archive relative to the <code>package.xml</code>.</p>
2337<h3 id="optionalpackage"><code>&lt;optionalpackage&gt;</code><a class="headerlink" href="#optionalpackage" title="Permanent link">#</a></h3>
2338<p>A list of optional packages which can be selected by the user at the very end of the installation process.</p>
2339<h4 id="optionalpackage_1"><code>&lt;optionalpackage&gt;</code><a class="headerlink" href="#optionalpackage_1" title="Permanent link">#</a></h4>
2340<p>Example:</p>
2341<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>
2342</code></pre></div>
45ca63d0
TD
2343<p>The <code>file</code> attribute specifies the location of the optional package's archive relative to the <code>package.xml</code>.</p>
2344<h3 id="excludedpackages"><code>&lt;excludedpackages&gt;</code><a class="headerlink" href="#excludedpackages" title="Permanent link">#</a></h3>
2345<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>
2346<h4 id="excludedpackage"><code>&lt;excludedpackage&gt;</code><a class="headerlink" href="#excludedpackage" title="Permanent link">#</a></h4>
2347<p>Example:</p>
2348<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>
2349</code></pre></div>
45ca63d0 2350<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>
99e591c9 2351<h3 id="compatibility"><code>&lt;compatibility&gt;</code><a class="headerlink" href="#compatibility" title="Permanent link">#</a></h3>
45ca63d0
TD
2352<div class="admonition info">
2353<p class="admonition-title">Available since WoltLab Suite 3.1</p>
2354</div>
2355<div class="admonition warning">
2356<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>
2357</div>
2358<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>
2359<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>
2360<p>Example:</p>
2361<div class="highlight"><pre><span></span><code><span class="nt">&lt;compatibility&gt;</span>
2362 <span class="nt">&lt;api</span> <span class="na">version=</span><span class="s">&quot;2018&quot;</span> <span class="nt">/&gt;</span>
2363<span class="nt">&lt;/compatibility&gt;</span>
2364</code></pre></div>
45ca63d0
TD
2365<h4 id="existing-api-versions">Existing API versions<a class="headerlink" href="#existing-api-versions" title="Permanent link">#</a></h4>
2366<table>
2367<thead>
2368<tr>
2369<th>WoltLab Suite Core</th>
2370<th>API-Version</th>
2371<th>Backwards-Compatible to API-Version</th>
2372</tr>
2373</thead>
2374<tbody>
2375<tr>
2376<td>3.1</td>
2377<td>2018</td>
2378<td>n/a</td>
2379</tr>
2380</tbody>
2381</table>
2382<h3 id="instructions"><code>&lt;instructions&gt;</code><a class="headerlink" href="#instructions" title="Permanent link">#</a></h3>
2383<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>
2384<h4 id="instructions-typeinstall"><code>&lt;instructions type="install"&gt;</code><a class="headerlink" href="#instructions-typeinstall" title="Permanent link">#</a></h4>
2385<p>List of instructions for a new installation of this package.</p>
2386<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>
2387<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>
2388<div class="admonition warning">
2389<p class="admonition-title">The installation process will pick exactly one update instruction, ignoring everything else. Please read the explanation below!</p>
2390</div>
2391<p>Example:</p>
2392<ul>
2393<li>Installed version: <code>1.0.0</code></li>
2394<li>Package version: <code>1.0.2</code></li>
2395</ul>
2396<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>
2397 <span class="c">&lt;!-- … --&gt;</span>
2398<span class="nt">&lt;/instructions&gt;</span>
2399<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>
2400 <span class="c">&lt;!-- … --&gt;</span>
2401<span class="nt">&lt;/instructions&gt;</span>
2402</code></pre></div>
45ca63d0
TD
2403<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>.
2404The 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>
2405<h4 id="instruction"><code>&lt;instruction&gt;</code><a class="headerlink" href="#instruction" title="Permanent link">#</a></h4>
2406<p>Example:</p>
2407<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>
2408</code></pre></div>
45ca63d0
TD
2409<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.
2410The value must be a valid file relative to the location of <code>package.xml</code>.
2411Many PIPs provide default file names which are used if no value is given:</p>
2412<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>
2413</code></pre></div>
45ca63d0
TD
2414<p>There is a <a href="../pip/">list of all default PIPs</a> available.</p>
2415<div class="admonition warning">
2416<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>
2417</div>
2418<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>
2419<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>
2420</code></pre></div>
45ca63d0
TD
2421<h4 id="void"><code>&lt;void/&gt;</code><a class="headerlink" href="#void" title="Permanent link">#</a></h4>
2422<p>Sometimes a package update should only adjust the metadata of the package, for example, an optional package was added.
2423However, WoltLab Suite Core requires that the list of <code>&lt;instructions&gt;</code> is non-empty.
2424Instead 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>
2425<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>
2426<p>Example:</p>
2427<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>
2428 <span class="nt">&lt;void/&gt;</span>
2429<span class="nt">&lt;/instructions&gt;</span>
2430</code></pre></div>
2431
2432
2433
2434
2435
2436
2437
2438 </article>
2439 </div>
2440 </div>
2441 </main>
2442
2443
2444<footer class="md-footer">
2445
2446 <nav class="md-footer__inner md-grid" aria-label="Footer">
2447
2448 <a href="../../javascript/code-snippets/" class="md-footer__link md-footer__link--prev" rel="prev">
2449 <div class="md-footer__button md-icon">
2450 <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>
2451 </div>
2452 <div class="md-footer__title">
2453 <div class="md-ellipsis">
2454 <span class="md-footer__direction">
2455 Previous
2456 </span>
2457 Code Snippets
2458 </div>
2459 </div>
2460 </a>
2461
2462
2463 <a href="../pip/" class="md-footer__link md-footer__link--next" rel="next">
2464 <div class="md-footer__title">
2465 <div class="md-ellipsis">
2466 <span class="md-footer__direction">
2467 Next
2468 </span>
2469 Overview
2470 </div>
2471 </div>
2472 <div class="md-footer__button md-icon">
2473 <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>
2474 </div>
2475 </a>
2476
2477 </nav>
2478
2479 <div class="md-footer-meta md-typeset">
2480 <div class="md-footer-meta__inner md-grid">
2481 <div class="md-footer-copyright">
2482
2483 <div class="md-footer-copyright__highlight">
2484 Copyright © 2020 WoltLab GmbH
2485 </div>
2486
2487 Made with
2488 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2489 Material for MkDocs
2490 </a>
fb88dc6e 2491
45ca63d0
TD
2492 </div>
2493 <div class="md-footer-copyright">
2494 <a href="https://www.woltlab.com/legal-notice/">Legal Notice</a>
2495 <a href="https://www.woltlab.com/privacy-policy/">Privacy Policy</a>
2496</div>
2497 </div>
2498 </div>
2499</footer>
2500
2501 </div>
2502 <div class="md-dialog" data-md-component="dialog">
2503 <div class="md-dialog__inner md-typeset"></div>
2504 </div>
2505 <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>
2506
2507
fb88dc6e 2508 <script src="../../assets/javascripts/bundle.5cf3e710.min.js"></script>
45ca63d0
TD
2509
2510
2511 </body>
2512</html>