Deployed 41eea46 to 5.4 with MkDocs 1.1.2 and mike 1.0.0
[GitHub/WoltLab/woltlab.github.io.git] / 5.4 / php / gdpr / 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
c8b4da45
WG
12 <link rel="canonical" href="https://docs.woltlab.com/5.4/php/gdpr/">
13
fb962f09 14 <link rel="icon" href="../../assets/default.favicon.ico">
a4835aa6 15 <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-7.1.2">
45ca63d0
TD
16
17
18
19 <title>GDPR - WoltLab Suite Documentation</title>
20
21
22
a4835aa6 23 <link rel="stylesheet" href="../../assets/stylesheets/main.6f955dcd.min.css">
45ca63d0
TD
24
25
fb962f09 26 <link rel="stylesheet" href="../../assets/stylesheets/palette.ef6f36e2.min.css">
45ca63d0
TD
27
28
29
30 <meta name="theme-color" content="#009485">
31
32
33
34
35
fd8430cb
WG
36
37
45ca63d0
TD
38
39
40 <link rel="stylesheet" href="../../stylesheets/extra.css">
41
42
43
44
45
46 </head>
47
48
49
50
51
52
53
54 <body dir="ltr" data-md-color-scheme="" data-md-color-primary="teal" data-md-color-accent="">
45ca63d0
TD
55
56
fb962f09
WG
57 <script>function __prefix(e){return new URL("../..",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
58
45ca63d0
TD
59 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
60 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
61 <label class="md-overlay" for="__drawer"></label>
62 <div data-md-component="skip">
63
64
65 <a href="#general-data-protection-regulation-gdpr" class="md-skip">
66 Skip to content
67 </a>
68
69 </div>
70 <div data-md-component="announce">
71
72 <aside class="md-announce">
73 <div class="md-announce__inner md-grid md-typeset">
74
75 <a href="https://www.woltlab.com">Back to <strong>woltlab.com</strong></a>
76
77 </div>
78 </aside>
79
80 </div>
81
fb962f09 82 <header class="md-header" data-md-component="header">
45ca63d0 83 <nav class="md-header__inner md-grid" aria-label="Header">
fb962f09 84 <a href="../.." title="WoltLab Suite Documentation" class="md-header__button md-logo" aria-label="WoltLab Suite Documentation" data-md-component="logo">
45ca63d0
TD
85
86 <img src="../../assets/logo.png" alt="logo">
87
88 </a>
89 <label class="md-header__button md-icon" for="__drawer">
90 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
91 </label>
92 <div class="md-header__title" data-md-component="header-title">
93 <div class="md-header__ellipsis">
94 <div class="md-header__topic">
95 <span class="md-ellipsis">
96 WoltLab Suite Documentation
97 </span>
98 </div>
99 <div class="md-header__topic" data-md-component="header-topic">
100 <span class="md-ellipsis">
101
102 GDPR
103
104 </span>
105 </div>
106 </div>
45ca63d0
TD
107 </div>
108
fb962f09
WG
109
110
a3639e76
WG
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">
fb962f09 125 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
a3639e76
WG
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
45ca63d0 141
7124f4cb
WG
142 <div class="md-header__source">
143
144<a href="https://github.com/WoltLab/docs.woltlab.com/" title="Go to repository" class="md-source" data-md-component="source">
145 <div class="md-source__icon md-icon">
146
fb962f09 147 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
7124f4cb
WG
148 </div>
149 <div class="md-source__repository">
150 GitHub
151 </div>
152</a>
153 </div>
154
45ca63d0
TD
155 </nav>
156</header>
157
158 <div class="md-container" data-md-component="container">
159
160
161
162
163 <main class="md-main" data-md-component="main">
164 <div class="md-main__inner md-grid">
165
166
167
168 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
169 <div class="md-sidebar__scrollwrap">
170 <div class="md-sidebar__inner">
171
172
173
45ca63d0
TD
174<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
175 <label class="md-nav__title" for="__drawer">
fb962f09 176 <a href="../.." title="WoltLab Suite Documentation" class="md-nav__button md-logo" aria-label="WoltLab Suite Documentation" data-md-component="logo">
45ca63d0
TD
177
178 <img src="../../assets/logo.png" alt="logo">
179
180 </a>
181 WoltLab Suite Documentation
182 </label>
183
7124f4cb
WG
184 <div class="md-nav__source">
185
186<a href="https://github.com/WoltLab/docs.woltlab.com/" title="Go to repository" class="md-source" data-md-component="source">
187 <div class="md-source__icon md-icon">
188
fb962f09 189 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
7124f4cb
WG
190 </div>
191 <div class="md-source__repository">
192 GitHub
193 </div>
194</a>
195 </div>
196
45ca63d0
TD
197 <ul class="md-nav__list" data-md-scrollfix>
198
199
200
201
202
203
204
205
206 <li class="md-nav__item">
207 <a href="../../getting-started/" class="md-nav__link">
208 Getting Started
209 </a>
210 </li>
211
212
213
214
215
216
217
218
219
220
221
222
223
224 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
225
226
227 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" checked>
228
229 <label class="md-nav__link" for="__nav_2">
230 PHP API
231 <span class="md-nav__icon md-icon"></span>
232 </label>
233 <nav class="md-nav" aria-label="PHP API" data-md-level="1">
234 <label class="md-nav__title" for="__nav_2">
235 <span class="md-nav__icon md-icon"></span>
236 PHP API
237 </label>
238 <ul class="md-nav__list" data-md-scrollfix>
239
240
241
242
243
244 <li class="md-nav__item">
245 <a href="../pages/" class="md-nav__link">
246 Pages
247 </a>
248 </li>
249
250
251
252
253
254
255
256 <li class="md-nav__item">
257 <a href="../database-objects/" class="md-nav__link">
258 Database Objects
259 </a>
260 </li>
261
262
263
264
265
266
267
268 <li class="md-nav__item">
269 <a href="../database-access/" class="md-nav__link">
270 Database Access
271 </a>
272 </li>
273
274
275
276
277
278
279
280 <li class="md-nav__item">
281 <a href="../exceptions/" class="md-nav__link">
282 Exceptions
283 </a>
284 </li>
285
286
287
288
289
290
291
292
293 <li class="md-nav__item md-nav__item--nested">
294
295
296 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
297
298 <label class="md-nav__link" for="__nav_2_5">
299 API
300 <span class="md-nav__icon md-icon"></span>
301 </label>
302 <nav class="md-nav" aria-label="API" data-md-level="2">
303 <label class="md-nav__title" for="__nav_2_5">
304 <span class="md-nav__icon md-icon"></span>
305 API
306 </label>
307 <ul class="md-nav__list" data-md-scrollfix>
308
309
310
311
312
6923e968
WG
313
314 <li class="md-nav__item md-nav__item--nested">
315
316
317 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5_1" type="checkbox" id="__nav_2_5_1" >
318
319 <label class="md-nav__link" for="__nav_2_5_1">
320 Caches
321 <span class="md-nav__icon md-icon"></span>
322 </label>
323 <nav class="md-nav" aria-label="Caches" data-md-level="3">
324 <label class="md-nav__title" for="__nav_2_5_1">
325 <span class="md-nav__icon md-icon"></span>
326 Caches
327 </label>
328 <ul class="md-nav__list" data-md-scrollfix>
329
330
331
332
333
45ca63d0
TD
334 <li class="md-nav__item">
335 <a href="../api/caches/" class="md-nav__link">
6923e968
WG
336 Overview
337 </a>
338 </li>
339
340
341
342
343
344
345
346 <li class="md-nav__item">
347 <a href="../api/caches_persistent-caches/" class="md-nav__link">
348 Persistent Caches
349 </a>
350 </li>
351
352
353
354
355
356
357
358 <li class="md-nav__item">
359 <a href="../api/caches_runtime-caches/" class="md-nav__link">
360 Runtime Caches
45ca63d0
TD
361 </a>
362 </li>
363
364
365
6923e968
WG
366 </ul>
367 </nav>
368 </li>
369
370
371
45ca63d0
TD
372
373
374
375
376 <li class="md-nav__item">
377 <a href="../api/comments/" class="md-nav__link">
378 Comments
379 </a>
380 </li>
381
382
383
384
385
386
387
388 <li class="md-nav__item">
389 <a href="../api/cronjobs/" class="md-nav__link">
390 Cronjobs
391 </a>
392 </li>
393
394
395
396
397
398
399
400 <li class="md-nav__item">
401 <a href="../api/events/" class="md-nav__link">
402 Events
403 </a>
404 </li>
405
406
407
408
409
410
411
412
413 <li class="md-nav__item md-nav__item--nested">
414
415
416 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5_5" type="checkbox" id="__nav_2_5_5" >
417
418 <label class="md-nav__link" for="__nav_2_5_5">
419 Form Builder
420 <span class="md-nav__icon md-icon"></span>
421 </label>
422 <nav class="md-nav" aria-label="Form Builder" data-md-level="3">
423 <label class="md-nav__title" for="__nav_2_5_5">
424 <span class="md-nav__icon md-icon"></span>
425 Form Builder
426 </label>
427 <ul class="md-nav__list" data-md-scrollfix>
428
429
430
431
432
433 <li class="md-nav__item">
434 <a href="../api/form_builder/overview/" class="md-nav__link">
435 Overview
436 </a>
437 </li>
438
439
440
441
442
443
444
445 <li class="md-nav__item">
446 <a href="../api/form_builder/structure/" class="md-nav__link">
447 Structure
448 </a>
449 </li>
450
451
452
453
454
455
456
457 <li class="md-nav__item">
458 <a href="../api/form_builder/form_fields/" class="md-nav__link">
459 Fields
460 </a>
461 </li>
462
463
464
465
466
467
468
469 <li class="md-nav__item">
470 <a href="../api/form_builder/validation_data/" class="md-nav__link">
471 Validation and Data
472 </a>
473 </li>
474
475
476
477
478
479
480
481 <li class="md-nav__item">
482 <a href="../api/form_builder/dependencies/" class="md-nav__link">
483 Dependencies
484 </a>
485 </li>
486
487
488
489 </ul>
490 </nav>
491 </li>
492
493
494
495
496
497
498
499 <li class="md-nav__item">
500 <a href="../api/package_installation_plugins/" class="md-nav__link">
501 Package Installation Plugins
502 </a>
503 </li>
504
505
506
507
508
509
510
511 <li class="md-nav__item">
512 <a href="../api/user_activity_points/" class="md-nav__link">
513 User Activity Points
514 </a>
515 </li>
516
517
518
519
520
521
522
523 <li class="md-nav__item">
524 <a href="../api/user_notifications/" class="md-nav__link">
525 User Notifications
526 </a>
527 </li>
528
529
530
531
532
533
534
535 <li class="md-nav__item">
536 <a href="../api/sitemaps/" class="md-nav__link">
537 Sitemaps
538 </a>
539 </li>
540
541
542
543 </ul>
544 </nav>
545 </li>
546
547
548
549
550
551
552
553 <li class="md-nav__item">
554 <a href="../code-style/" class="md-nav__link">
555 Code Style
556 </a>
557 </li>
558
559
560
561
562
563
564
565 <li class="md-nav__item">
566 <a href="../apps/" class="md-nav__link">
567 Apps
568 </a>
569 </li>
570
571
572
573
574
575
576
577
578
579 <li class="md-nav__item md-nav__item--active">
580
581 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
582
a4835aa6 583
45ca63d0
TD
584
585
586
587 <label class="md-nav__link md-nav__link--active" for="__toc">
588 GDPR
589 <span class="md-nav__icon md-icon"></span>
590 </label>
591
592 <a href="./" class="md-nav__link md-nav__link--active">
593 GDPR
594 </a>
595
596
597<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
598
599
a4835aa6 600
45ca63d0
TD
601
602
603
604 <label class="md-nav__title" for="__toc">
605 <span class="md-nav__icon md-icon"></span>
606 Table of contents
607 </label>
608 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
609
610 <li class="md-nav__item">
611 <a href="#introduction" class="md-nav__link">
612 Introduction
613 </a>
614
615</li>
616
617 <li class="md-nav__item">
618 <a href="#including-data-in-the-export" class="md-nav__link">
619 Including Data in the Export
620 </a>
621
622 <nav class="md-nav" aria-label="Including Data in the Export">
623 <ul class="md-nav__list">
624
625 <li class="md-nav__item">
626 <a href="#example-code" class="md-nav__link">
627 Example code
628 </a>
629
630</li>
631
632 <li class="md-nav__item">
633 <a href="#data" class="md-nav__link">
634 $data
635 </a>
636
637</li>
638
639 <li class="md-nav__item">
640 <a href="#exportuserproperties" class="md-nav__link">
641 $exportUserProperties
642 </a>
643
644</li>
645
646 <li class="md-nav__item">
647 <a href="#exportuserpropertiesifnotempty" class="md-nav__link">
648 $exportUserPropertiesIfNotEmpty
649 </a>
650
651</li>
652
653 <li class="md-nav__item">
654 <a href="#exportuseroptionsettings" class="md-nav__link">
655 $exportUserOptionSettings
656 </a>
657
658</li>
659
660 <li class="md-nav__item">
661 <a href="#exportuseroptionsettingsifnotempty" class="md-nav__link">
662 $exportUserOptionSettingsIfNotEmpty
663 </a>
664
665</li>
666
667 <li class="md-nav__item">
668 <a href="#ipaddresses" class="md-nav__link">
669 $ipAddresses
670 </a>
671
672</li>
673
674 <li class="md-nav__item">
675 <a href="#skipuseroptions" class="md-nav__link">
676 $skipUserOptions
677 </a>
678
679</li>
680
681 </ul>
682 </nav>
683
684</li>
685
686 </ul>
687
688</nav>
689
690 </li>
691
692
693
694 </ul>
695 </nav>
696 </li>
697
698
699
700
701
702
703
704
705
706
707
708 <li class="md-nav__item md-nav__item--nested">
709
710
711 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
712
713 <label class="md-nav__link" for="__nav_3">
714 Languages, Templates & CSS
715 <span class="md-nav__icon md-icon"></span>
716 </label>
717 <nav class="md-nav" aria-label="Languages, Templates & CSS" data-md-level="1">
718 <label class="md-nav__title" for="__nav_3">
719 <span class="md-nav__icon md-icon"></span>
720 Languages, Templates & CSS
721 </label>
722 <ul class="md-nav__list" data-md-scrollfix>
723
724
725
726
727
728 <li class="md-nav__item">
729 <a href="../../view/languages/" class="md-nav__link">
730 Languages
731 </a>
732 </li>
733
734
735
736
737
738
739
740 <li class="md-nav__item">
741 <a href="../../view/templates/" class="md-nav__link">
742 Templates
743 </a>
744 </li>
745
746
747
748
749
750
751
6923e968
WG
752 <li class="md-nav__item">
753 <a href="../../view/template-plugins/" class="md-nav__link">
754 Template Plugins
755 </a>
756 </li>
757
758
759
760
761
762
763
45ca63d0
TD
764 <li class="md-nav__item">
765 <a href="../../view/css/" class="md-nav__link">
766 CSS
767 </a>
768 </li>
769
770
771
772 </ul>
773 </nav>
774 </li>
775
776
777
778
779
780
781
782
783
784
785
786 <li class="md-nav__item md-nav__item--nested">
787
788
789 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
790
791 <label class="md-nav__link" for="__nav_4">
77efcd46 792 TypeScript and JavaScript API
45ca63d0
TD
793 <span class="md-nav__icon md-icon"></span>
794 </label>
77efcd46 795 <nav class="md-nav" aria-label="TypeScript and JavaScript API" data-md-level="1">
45ca63d0
TD
796 <label class="md-nav__title" for="__nav_4">
797 <span class="md-nav__icon md-icon"></span>
77efcd46 798 TypeScript and JavaScript API
45ca63d0
TD
799 </label>
800 <ul class="md-nav__list" data-md-scrollfix>
801
802
803
804
805
806 <li class="md-nav__item">
807 <a href="../../javascript/general-usage/" class="md-nav__link">
808 General Usage
809 </a>
810 </li>
811
812
813
814
815
816
817
77efcd46
WG
818 <li class="md-nav__item">
819 <a href="../../javascript/typescript/" class="md-nav__link">
820 TypeScript
821 </a>
822 </li>
823
824
825
826
827
828
829
45ca63d0
TD
830
831 <li class="md-nav__item md-nav__item--nested">
832
833
77efcd46 834 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3" type="checkbox" id="__nav_4_3" >
45ca63d0 835
77efcd46 836 <label class="md-nav__link" for="__nav_4_3">
45ca63d0
TD
837 New API
838 <span class="md-nav__icon md-icon"></span>
839 </label>
840 <nav class="md-nav" aria-label="New API" data-md-level="2">
77efcd46 841 <label class="md-nav__title" for="__nav_4_3">
45ca63d0
TD
842 <span class="md-nav__icon md-icon"></span>
843 New API
844 </label>
845 <ul class="md-nav__list" data-md-scrollfix>
846
847
848
849
850
851 <li class="md-nav__item">
852 <a href="../../javascript/new-api_writing-a-module/" class="md-nav__link">
853 Writing a module
854 </a>
855 </li>
856
857
858
859
860
861
862
863 <li class="md-nav__item">
864 <a href="../../javascript/new-api_data-structures/" class="md-nav__link">
865 Data Structures
866 </a>
867 </li>
868
869
870
871
872
873
874
875 <li class="md-nav__item">
876 <a href="../../javascript/new-api_core/" class="md-nav__link">
877 Core Functions
878 </a>
879 </li>
880
881
882
883
884
885
886
887 <li class="md-nav__item">
888 <a href="../../javascript/new-api_dom/" class="md-nav__link">
889 DOM
890 </a>
891 </li>
892
893
894
895
896
897
898
899 <li class="md-nav__item">
900 <a href="../../javascript/new-api_events/" class="md-nav__link">
901 Event Handling
902 </a>
903 </li>
904
905
906
907
908
909
910
911 <li class="md-nav__item">
912 <a href="../../javascript/new-api_ajax/" class="md-nav__link">
913 Ajax
914 </a>
915 </li>
916
917
918
919
920
921
922
923 <li class="md-nav__item">
924 <a href="../../javascript/new-api_dialogs/" class="md-nav__link">
925 Dialogs
926 </a>
927 </li>
928
929
930
931
932
933
934
935 <li class="md-nav__item">
936 <a href="../../javascript/new-api_browser/" class="md-nav__link">
937 Browser and Screen Sizes
938 </a>
939 </li>
940
941
942
943
944
945
946
947 <li class="md-nav__item">
948 <a href="../../javascript/new-api_ui/" class="md-nav__link">
949 User Interface
950 </a>
951 </li>
952
953
954
955 </ul>
956 </nav>
957 </li>
958
959
960
961
962
963
964
965 <li class="md-nav__item">
966 <a href="../../javascript/legacy-api/" class="md-nav__link">
967 Legacy API
968 </a>
969 </li>
970
971
972
973
974
975
976
977 <li class="md-nav__item">
978 <a href="../../javascript/helper-functions/" class="md-nav__link">
979 Helper Functions
980 </a>
981 </li>
982
983
984
985
986
987
988
989 <li class="md-nav__item">
990 <a href="../../javascript/code-snippets/" class="md-nav__link">
991 Code Snippets
992 </a>
993 </li>
994
995
996
997 </ul>
998 </nav>
999 </li>
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011 <li class="md-nav__item md-nav__item--nested">
1012
1013
1014 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
1015
1016 <label class="md-nav__link" for="__nav_5">
1017 Package Components
1018 <span class="md-nav__icon md-icon"></span>
1019 </label>
1020 <nav class="md-nav" aria-label="Package Components" data-md-level="1">
1021 <label class="md-nav__title" for="__nav_5">
1022 <span class="md-nav__icon md-icon"></span>
1023 Package Components
1024 </label>
1025 <ul class="md-nav__list" data-md-scrollfix>
1026
1027
1028
1029
1030
1031 <li class="md-nav__item">
1032 <a href="../../package/package-xml/" class="md-nav__link">
1033 package.xml
1034 </a>
1035 </li>
1036
1037
1038
1039
1040
1041
1042
1043
1044 <li class="md-nav__item md-nav__item--nested">
1045
1046
1047 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_2" type="checkbox" id="__nav_5_2" >
1048
1049 <label class="md-nav__link" for="__nav_5_2">
1050 PIPs
1051 <span class="md-nav__icon md-icon"></span>
1052 </label>
1053 <nav class="md-nav" aria-label="PIPs" data-md-level="2">
1054 <label class="md-nav__title" for="__nav_5_2">
1055 <span class="md-nav__icon md-icon"></span>
1056 PIPs
1057 </label>
1058 <ul class="md-nav__list" data-md-scrollfix>
1059
1060
1061
1062
1063
1064 <li class="md-nav__item">
1065 <a href="../../package/pip/" class="md-nav__link">
1066 Overview
1067 </a>
1068 </li>
1069
1070
1071
1072
1073
1074
1075
1076 <li class="md-nav__item">
1077 <a href="../../package/pip/acl-option/" class="md-nav__link">
1078 aclOption
1079 </a>
1080 </li>
1081
1082
1083
1084
1085
1086
1087
1088 <li class="md-nav__item">
1089 <a href="../../package/pip/acp-menu/" class="md-nav__link">
1090 acpMenu
1091 </a>
1092 </li>
1093
1094
1095
1096
1097
1098
1099
1100 <li class="md-nav__item">
1101 <a href="../../package/pip/acp-search-provider/" class="md-nav__link">
1102 acpSearchProvider
1103 </a>
1104 </li>
1105
1106
1107
1108
1109
1110
1111
1112 <li class="md-nav__item">
1113 <a href="../../package/pip/acp-template/" class="md-nav__link">
1114 acpTemplate
1115 </a>
1116 </li>
1117
1118
1119
1120
1121
1122
1123
1124 <li class="md-nav__item">
1125 <a href="../../package/pip/bbcode/" class="md-nav__link">
1126 bbcode
1127 </a>
1128 </li>
1129
1130
1131
1132
1133
1134
1135
1136 <li class="md-nav__item">
1137 <a href="../../package/pip/box/" class="md-nav__link">
1138 box
1139 </a>
1140 </li>
1141
1142
1143
1144
1145
1146
1147
1148 <li class="md-nav__item">
1149 <a href="../../package/pip/clipboard-action/" class="md-nav__link">
1150 clipboardAction
1151 </a>
1152 </li>
1153
1154
1155
1156
1157
1158
1159
1160 <li class="md-nav__item">
1161 <a href="../../package/pip/core-object/" class="md-nav__link">
1162 coreObject
1163 </a>
1164 </li>
1165
1166
1167
1168
1169
1170
1171
1172 <li class="md-nav__item">
1173 <a href="../../package/pip/cronjob/" class="md-nav__link">
1174 cronjob
1175 </a>
1176 </li>
1177
1178
1179
1180
1181
1182
1183
6923e968
WG
1184 <li class="md-nav__item">
1185 <a href="../../package/pip/database/" class="md-nav__link">
1186 database
1187 </a>
1188 </li>
1189
1190
1191
1192
1193
1194
1195
45ca63d0
TD
1196 <li class="md-nav__item">
1197 <a href="../../package/pip/event-listener/" class="md-nav__link">
1198 eventListener
1199 </a>
1200 </li>
1201
1202
1203
1204
1205
1206
1207
1208 <li class="md-nav__item">
1209 <a href="../../package/pip/file/" class="md-nav__link">
1210 file
1211 </a>
1212 </li>
1213
1214
1215
1216
1217
1218
1219
1220 <li class="md-nav__item">
1221 <a href="../../package/pip/language/" class="md-nav__link">
1222 language
1223 </a>
1224 </li>
1225
1226
1227
1228
1229
1230
1231
1232 <li class="md-nav__item">
1233 <a href="../../package/pip/media-provider/" class="md-nav__link">
1234 mediaProvider
1235 </a>
1236 </li>
1237
1238
1239
1240
1241
1242
1243
1244 <li class="md-nav__item">
1245 <a href="../../package/pip/menu/" class="md-nav__link">
1246 menu
1247 </a>
1248 </li>
1249
1250
1251
1252
1253
1254
1255
1256 <li class="md-nav__item">
1257 <a href="../../package/pip/menu-item/" class="md-nav__link">
1258 menuItem
1259 </a>
1260 </li>
1261
1262
1263
1264
1265
1266
1267
1268 <li class="md-nav__item">
1269 <a href="../../package/pip/object-type/" class="md-nav__link">
1270 objectType
1271 </a>
1272 </li>
1273
1274
1275
1276
1277
1278
1279
1280 <li class="md-nav__item">
1281 <a href="../../package/pip/object-type-definition/" class="md-nav__link">
1282 objectTypeDefinition
1283 </a>
1284 </li>
1285
1286
1287
1288
1289
1290
1291
1292 <li class="md-nav__item">
1293 <a href="../../package/pip/option/" class="md-nav__link">
1294 option
1295 </a>
1296 </li>
1297
1298
1299
1300
1301
1302
1303
1304 <li class="md-nav__item">
1305 <a href="../../package/pip/page/" class="md-nav__link">
1306 page
1307 </a>
1308 </li>
1309
1310
1311
1312
1313
1314
1315
1316 <li class="md-nav__item">
1317 <a href="../../package/pip/pip/" class="md-nav__link">
1318 pip
1319 </a>
1320 </li>
1321
1322
1323
1324
1325
1326
1327
1328 <li class="md-nav__item">
1329 <a href="../../package/pip/script/" class="md-nav__link">
1330 script
1331 </a>
1332 </li>
1333
1334
1335
1336
1337
1338
1339
1340 <li class="md-nav__item">
1341 <a href="../../package/pip/smiley/" class="md-nav__link">
1342 smiley
1343 </a>
1344 </li>
1345
1346
1347
1348
1349
1350
1351
1352 <li class="md-nav__item">
1353 <a href="../../package/pip/sql/" class="md-nav__link">
1354 sql
1355 </a>
1356 </li>
1357
1358
1359
1360
1361
1362
1363
1364 <li class="md-nav__item">
1365 <a href="../../package/pip/style/" class="md-nav__link">
1366 style
1367 </a>
1368 </li>
1369
1370
1371
1372
1373
1374
1375
1376 <li class="md-nav__item">
1377 <a href="../../package/pip/template/" class="md-nav__link">
1378 template
1379 </a>
1380 </li>
1381
1382
1383
1384
1385
1386
1387
1388 <li class="md-nav__item">
1389 <a href="../../package/pip/template-listener/" class="md-nav__link">
1390 templateListener
1391 </a>
1392 </li>
1393
1394
1395
1396
1397
1398
1399
1400 <li class="md-nav__item">
1401 <a href="../../package/pip/user-group-option/" class="md-nav__link">
1402 userGroupOption
1403 </a>
1404 </li>
1405
1406
1407
1408
1409
1410
1411
1412 <li class="md-nav__item">
1413 <a href="../../package/pip/user-menu/" class="md-nav__link">
1414 userMenu
1415 </a>
1416 </li>
1417
1418
1419
1420
1421
1422
1423
1424 <li class="md-nav__item">
1425 <a href="../../package/pip/user-notification-event/" class="md-nav__link">
1426 userNotificationEvent
1427 </a>
1428 </li>
1429
1430
1431
1432
1433
1434
1435
1436 <li class="md-nav__item">
1437 <a href="../../package/pip/user-option/" class="md-nav__link">
1438 userOption
1439 </a>
1440 </li>
1441
1442
1443
1444
1445
1446
1447
1448 <li class="md-nav__item">
1449 <a href="../../package/pip/user-profile-menu/" class="md-nav__link">
1450 userProfileMenu
1451 </a>
1452 </li>
1453
1454
1455
1456 </ul>
1457 </nav>
1458 </li>
1459
1460
1461
1462
1463
1464
1465
1466 <li class="md-nav__item">
1467 <a href="../../package/database-php-api/" class="md-nav__link">
1468 Database PHP API
1469 </a>
1470 </li>
1471
1472
1473
1474 </ul>
1475 </nav>
1476 </li>
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488 <li class="md-nav__item md-nav__item--nested">
1489
1490
1491 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
1492
1493 <label class="md-nav__link" for="__nav_6">
1494 Migration
1495 <span class="md-nav__icon md-icon"></span>
1496 </label>
1497 <nav class="md-nav" aria-label="Migration" data-md-level="1">
1498 <label class="md-nav__title" for="__nav_6">
1499 <span class="md-nav__icon md-icon"></span>
1500 Migration
1501 </label>
1502 <ul class="md-nav__list" data-md-scrollfix>
1503
1504
1505
1506
1507
1508
1509 <li class="md-nav__item md-nav__item--nested">
1510
1511
1512 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_1" type="checkbox" id="__nav_6_1" >
1513
1514 <label class="md-nav__link" for="__nav_6_1">
1515 Migrating from WSC 5.3
1516 <span class="md-nav__icon md-icon"></span>
1517 </label>
1518 <nav class="md-nav" aria-label="Migrating from WSC 5.3" data-md-level="2">
1519 <label class="md-nav__title" for="__nav_6_1">
1520 <span class="md-nav__icon md-icon"></span>
1521 Migrating from WSC 5.3
1522 </label>
1523 <ul class="md-nav__list" data-md-scrollfix>
1524
1525
1526
1527
1528
1529 <li class="md-nav__item">
1530 <a href="../../migration/wsc53/php/" class="md-nav__link">
1531 PHP API
1532 </a>
1533 </li>
1534
1535
1536
1537
1538
1539
1540
1541 <li class="md-nav__item">
1542 <a href="../../migration/wsc53/session/" class="md-nav__link">
1543 Session Handling and Authentication
1544 </a>
1545 </li>
1546
1547
1548
1549
1550
1551
1552
1553 <li class="md-nav__item">
1554 <a href="../../migration/wsc53/javascript/" class="md-nav__link">
77efcd46 1555 TypeScript and JavaScript
45ca63d0
TD
1556 </a>
1557 </li>
1558
1559
1560
1561
1562
1563
1564
1565 <li class="md-nav__item">
1566 <a href="../../migration/wsc53/templates/" class="md-nav__link">
1567 Templates
1568 </a>
1569 </li>
1570
1571
1572
1573
1574
1575
1576
1577 <li class="md-nav__item">
1578 <a href="../../migration/wsc53/libraries/" class="md-nav__link">
1579 Third Party Libraries
1580 </a>
1581 </li>
1582
1583
1584
1585 </ul>
1586 </nav>
1587 </li>
1588
1589
1590
1591
1592
1593
1594
1595
1596 <li class="md-nav__item md-nav__item--nested">
1597
1598
1599 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
1600
1601 <label class="md-nav__link" for="__nav_6_2">
1602 Migrating from WSC 5.2
1603 <span class="md-nav__icon md-icon"></span>
1604 </label>
1605 <nav class="md-nav" aria-label="Migrating from WSC 5.2" data-md-level="2">
1606 <label class="md-nav__title" for="__nav_6_2">
1607 <span class="md-nav__icon md-icon"></span>
1608 Migrating from WSC 5.2
1609 </label>
1610 <ul class="md-nav__list" data-md-scrollfix>
1611
1612
1613
1614
1615
1616 <li class="md-nav__item">
1617 <a href="../../migration/wsc52/php/" class="md-nav__link">
1618 PHP API
1619 </a>
1620 </li>
1621
1622
1623
1624
1625
1626
1627
1628 <li class="md-nav__item">
1629 <a href="../../migration/wsc52/templates/" class="md-nav__link">
1630 Templates and Languages
1631 </a>
1632 </li>
1633
1634
1635
1636
1637
1638
1639
1640 <li class="md-nav__item">
1641 <a href="../../migration/wsc52/libraries/" class="md-nav__link">
1642 Third Party Libraries
1643 </a>
1644 </li>
1645
1646
1647
1648 </ul>
1649 </nav>
1650 </li>
1651
1652
1653
1654
1655
1656
1657
1658
1659 <li class="md-nav__item md-nav__item--nested">
1660
1661
1662 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" >
1663
1664 <label class="md-nav__link" for="__nav_6_3">
1665 Migrating from WSC 3.1
1666 <span class="md-nav__icon md-icon"></span>
1667 </label>
1668 <nav class="md-nav" aria-label="Migrating from WSC 3.1" data-md-level="2">
1669 <label class="md-nav__title" for="__nav_6_3">
1670 <span class="md-nav__icon md-icon"></span>
1671 Migrating from WSC 3.1
1672 </label>
1673 <ul class="md-nav__list" data-md-scrollfix>
1674
1675
1676
1677
1678
1679 <li class="md-nav__item">
1680 <a href="../../migration/wsc31/php/" class="md-nav__link">
1681 PHP API
1682 </a>
1683 </li>
1684
1685
1686
1687 </ul>
1688 </nav>
1689 </li>
1690
1691
1692
1693
1694
1695
1696
1697
1698 <li class="md-nav__item md-nav__item--nested">
1699
1700
1701 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_4" type="checkbox" id="__nav_6_4" >
1702
1703 <label class="md-nav__link" for="__nav_6_4">
1704 Migrating from WSC 3.0
1705 <span class="md-nav__icon md-icon"></span>
1706 </label>
1707 <nav class="md-nav" aria-label="Migrating from WSC 3.0" data-md-level="2">
1708 <label class="md-nav__title" for="__nav_6_4">
1709 <span class="md-nav__icon md-icon"></span>
1710 Migrating from WSC 3.0
1711 </label>
1712 <ul class="md-nav__list" data-md-scrollfix>
1713
1714
1715
1716
1717
1718 <li class="md-nav__item">
1719 <a href="../../migration/wsc30/php/" class="md-nav__link">
1720 PHP API
1721 </a>
1722 </li>
1723
1724
1725
1726
1727
1728
1729
1730 <li class="md-nav__item">
1731 <a href="../../migration/wsc30/javascript/" class="md-nav__link">
1732 JavaScript API
1733 </a>
1734 </li>
1735
1736
1737
1738
1739
1740
1741
1742 <li class="md-nav__item">
1743 <a href="../../migration/wsc30/templates/" class="md-nav__link">
1744 Templates
1745 </a>
1746 </li>
1747
1748
1749
1750
1751
1752
1753
1754 <li class="md-nav__item">
1755 <a href="../../migration/wsc30/css/" class="md-nav__link">
1756 CSS
1757 </a>
1758 </li>
1759
1760
1761
1762
1763
1764
1765
1766 <li class="md-nav__item">
1767 <a href="../../migration/wsc30/package/" class="md-nav__link">
1768 Package Components
1769 </a>
1770 </li>
1771
1772
1773
1774 </ul>
1775 </nav>
1776 </li>
1777
1778
1779
1780
1781
1782
1783
1784
1785 <li class="md-nav__item md-nav__item--nested">
1786
1787
1788 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_5" type="checkbox" id="__nav_6_5" >
1789
1790 <label class="md-nav__link" for="__nav_6_5">
1791 Migrating from WCF 2.1
1792 <span class="md-nav__icon md-icon"></span>
1793 </label>
1794 <nav class="md-nav" aria-label="Migrating from WCF 2.1" data-md-level="2">
1795 <label class="md-nav__title" for="__nav_6_5">
1796 <span class="md-nav__icon md-icon"></span>
1797 Migrating from WCF 2.1
1798 </label>
1799 <ul class="md-nav__list" data-md-scrollfix>
1800
1801
1802
1803
1804
1805 <li class="md-nav__item">
1806 <a href="../../migration/wcf21/php/" class="md-nav__link">
1807 PHP API
1808 </a>
1809 </li>
1810
1811
1812
1813
1814
1815
1816
1817 <li class="md-nav__item">
1818 <a href="../../migration/wcf21/templates/" class="md-nav__link">
1819 Templates
1820 </a>
1821 </li>
1822
1823
1824
1825
1826
1827
1828
1829 <li class="md-nav__item">
1830 <a href="../../migration/wcf21/css/" class="md-nav__link">
1831 CSS
1832 </a>
1833 </li>
1834
1835
1836
1837
1838
1839
1840
1841 <li class="md-nav__item">
1842 <a href="../../migration/wcf21/package/" class="md-nav__link">
1843 Package Components
1844 </a>
1845 </li>
1846
1847
1848
1849 </ul>
1850 </nav>
1851 </li>
1852
1853
1854
1855 </ul>
1856 </nav>
1857 </li>
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869 <li class="md-nav__item md-nav__item--nested">
1870
1871
1872 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
1873
1874 <label class="md-nav__link" for="__nav_7">
1875 Tutorials
1876 <span class="md-nav__icon md-icon"></span>
1877 </label>
1878 <nav class="md-nav" aria-label="Tutorials" data-md-level="1">
1879 <label class="md-nav__title" for="__nav_7">
1880 <span class="md-nav__icon md-icon"></span>
1881 Tutorials
1882 </label>
1883 <ul class="md-nav__list" data-md-scrollfix>
1884
1885
1886
1887
1888
1889
1890 <li class="md-nav__item md-nav__item--nested">
1891
1892
1893 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_1" type="checkbox" id="__nav_7_1" >
1894
1895 <label class="md-nav__link" for="__nav_7_1">
1896 Tutorial Series
1897 <span class="md-nav__icon md-icon"></span>
1898 </label>
1899 <nav class="md-nav" aria-label="Tutorial Series" data-md-level="2">
1900 <label class="md-nav__title" for="__nav_7_1">
1901 <span class="md-nav__icon md-icon"></span>
1902 Tutorial Series
1903 </label>
1904 <ul class="md-nav__list" data-md-scrollfix>
1905
1906
1907
1908
1909
1910 <li class="md-nav__item">
1911 <a href="../../tutorial/series/overview/" class="md-nav__link">
1912 Overview
1913 </a>
1914 </li>
1915
1916
1917
1918
1919
1920
1921
1922 <li class="md-nav__item">
1923 <a href="../../tutorial/series/part_1/" class="md-nav__link">
1924 Part 1
1925 </a>
1926 </li>
1927
1928
1929
1930
1931
1932
1933
1934 <li class="md-nav__item">
1935 <a href="../../tutorial/series/part_2/" class="md-nav__link">
1936 Part 2
1937 </a>
1938 </li>
1939
1940
1941
1942
1943
1944
1945
1946 <li class="md-nav__item">
1947 <a href="../../tutorial/series/part_3/" class="md-nav__link">
1948 Part 3
1949 </a>
1950 </li>
1951
1952
1953
41eda543
WG
1954
1955
1956
1957
1958 <li class="md-nav__item">
1959 <a href="../../tutorial/series/part_4/" class="md-nav__link">
1960 Part 4
1961 </a>
1962 </li>
1963
1964
1965
716a4ab6
WG
1966
1967
1968
1969
1970 <li class="md-nav__item">
1971 <a href="../../tutorial/series/part_5/" class="md-nav__link">
1972 Part 5
1973 </a>
1974 </li>
1975
1976
1977
45ca63d0
TD
1978 </ul>
1979 </nav>
1980 </li>
1981
1982
1983
1984 </ul>
1985 </nav>
1986 </li>
1987
1988
1989
1990 </ul>
1991</nav>
1992 </div>
1993 </div>
1994 </div>
1995
1996
1997
1998 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1999 <div class="md-sidebar__scrollwrap">
2000 <div class="md-sidebar__inner">
2001
2002<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2003
2004
a4835aa6 2005
45ca63d0
TD
2006
2007
2008
2009 <label class="md-nav__title" for="__toc">
2010 <span class="md-nav__icon md-icon"></span>
2011 Table of contents
2012 </label>
2013 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2014
2015 <li class="md-nav__item">
2016 <a href="#introduction" class="md-nav__link">
2017 Introduction
2018 </a>
2019
2020</li>
2021
2022 <li class="md-nav__item">
2023 <a href="#including-data-in-the-export" class="md-nav__link">
2024 Including Data in the Export
2025 </a>
2026
2027 <nav class="md-nav" aria-label="Including Data in the Export">
2028 <ul class="md-nav__list">
2029
2030 <li class="md-nav__item">
2031 <a href="#example-code" class="md-nav__link">
2032 Example code
2033 </a>
2034
2035</li>
2036
2037 <li class="md-nav__item">
2038 <a href="#data" class="md-nav__link">
2039 $data
2040 </a>
2041
2042</li>
2043
2044 <li class="md-nav__item">
2045 <a href="#exportuserproperties" class="md-nav__link">
2046 $exportUserProperties
2047 </a>
2048
2049</li>
2050
2051 <li class="md-nav__item">
2052 <a href="#exportuserpropertiesifnotempty" class="md-nav__link">
2053 $exportUserPropertiesIfNotEmpty
2054 </a>
2055
2056</li>
2057
2058 <li class="md-nav__item">
2059 <a href="#exportuseroptionsettings" class="md-nav__link">
2060 $exportUserOptionSettings
2061 </a>
2062
2063</li>
2064
2065 <li class="md-nav__item">
2066 <a href="#exportuseroptionsettingsifnotempty" class="md-nav__link">
2067 $exportUserOptionSettingsIfNotEmpty
2068 </a>
2069
2070</li>
2071
2072 <li class="md-nav__item">
2073 <a href="#ipaddresses" class="md-nav__link">
2074 $ipAddresses
2075 </a>
2076
2077</li>
2078
2079 <li class="md-nav__item">
2080 <a href="#skipuseroptions" class="md-nav__link">
2081 $skipUserOptions
2082 </a>
2083
2084</li>
2085
2086 </ul>
2087 </nav>
2088
2089</li>
2090
2091 </ul>
2092
2093</nav>
2094 </div>
2095 </div>
2096 </div>
2097
2098
2099 <div class="md-content" data-md-component="content">
2100 <article class="md-content__inner md-typeset">
2101
2102
9b8bddda 2103 <a href="https://github.com/WoltLab/docs.woltlab.com/edit/5.4/docs/php/gdpr.md" title="Edit this page" class="md-content__button md-icon">
7124f4cb
WG
2104 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg>
2105 </a>
2106
45ca63d0
TD
2107
2108 <h1 id="general-data-protection-regulation-gdpr">General Data Protection Regulation (GDPR)<a class="headerlink" href="#general-data-protection-regulation-gdpr" title="Permanent link">#</a></h1>
2109<h2 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permanent link">#</a></h2>
2110<p>The General Data Protection Regulation (GDPR) of the European Union enters into
2111force on May 25, 2018. It comes with a set of restrictions when handling users'
2112personal data as well as to provide an interface to export this data on demand.</p>
2113<p>If you're looking for a guide on the implications of the GDPR and what you will
2114need or consider to do, please read the article <a href="https://www.woltlab.com/article/106-implementation-of-the-gdpr/">Implementation of the GDPR</a>
2115on woltlab.com.</p>
2116<h2 id="including-data-in-the-export">Including Data in the Export<a class="headerlink" href="#including-data-in-the-export" title="Permanent link">#</a></h2>
2117<p>The <code>wcf\acp\action\UserExportGdprAction</code> introduced with WoltLab Suite 3.1.3
2118already includes the Core itself as well as all official apps, but you'll need to
2119include any personal data stored for your plugin or app by yourself.</p>
2120<p>The event <code>export</code> is fired before any data is sent out, but after any Core data
2121has been dumped to the <code>$data</code> property.</p>
2122<h3 id="example-code">Example code<a class="headerlink" href="#example-code" title="Permanent link">#</a></h3>
704cbc4a
WG
2123<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
2124<span class="normal"> 2</span>
2125<span class="normal"> 3</span>
2126<span class="normal"> 4</span>
2127<span class="normal"> 5</span>
2128<span class="normal"> 6</span>
2129<span class="normal"> 7</span>
2130<span class="normal"> 8</span>
2131<span class="normal"> 9</span>
2132<span class="normal">10</span>
2133<span class="normal">11</span>
2134<span class="normal">12</span>
2135<span class="normal">13</span>
2136<span class="normal">14</span>
2137<span class="normal">15</span>
2138<span class="normal">16</span>
2139<span class="normal">17</span>
2140<span class="normal">18</span>
2141<span class="normal">19</span>
2142<span class="normal">20</span>
2143<span class="normal">21</span>
2144<span class="normal">22</span>
2145<span class="normal">23</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><code><span class="o">&lt;?</span><span class="nx">php</span>
45ca63d0
TD
2146<span class="k">namespace</span> <span class="nx">wcf\system\event\listener</span><span class="p">;</span>
2147<span class="k">use</span> <span class="nx">wcf\acp\action\UserExportGdprAction</span><span class="p">;</span>
2148<span class="k">use</span> <span class="nx">wcf\data\user\UserProfile</span><span class="p">;</span>
2149
2150<span class="k">class</span> <span class="nc">MyUserExportGdprActionListener</span> <span class="k">implements</span> <span class="nx">IParameterizedEventListener</span> <span class="p">{</span>
2151 <span class="k">public</span> <span class="k">function</span> <span class="nf">execute</span><span class="p">(</span><span class="sd">/** @var UserExportGdprAction $eventObj */</span><span class="nv">$eventObj</span><span class="p">,</span> <span class="nv">$className</span><span class="p">,</span> <span class="nv">$eventName</span><span class="p">,</span> <span class="k">array</span> <span class="o">&amp;</span><span class="nv">$parameters</span><span class="p">)</span> <span class="p">{</span>
2152 <span class="sd">/** @var UserProfile $user */</span>
2153 <span class="nv">$user</span> <span class="o">=</span> <span class="nv">$eventObj</span><span class="o">-&gt;</span><span class="na">user</span><span class="p">;</span>
2154
2155 <span class="nv">$eventObj</span><span class="o">-&gt;</span><span class="na">data</span><span class="p">[</span><span class="s1">&#39;my.fancy.plugin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span>
2156 <span class="s1">&#39;superPersonalData&#39;</span> <span class="o">=&gt;</span> <span class="s2">&quot;This text is super personal and should be included in the output&quot;</span><span class="p">,</span>
2157 <span class="s1">&#39;weirdIpAddresses&#39;</span> <span class="o">=&gt;</span> <span class="nv">$eventObj</span><span class="o">-&gt;</span><span class="na">exportIpAddresses</span><span class="p">(</span><span class="s1">&#39;app&#39;</span><span class="o">.</span><span class="nx">WCF_N</span><span class="o">.</span><span class="s1">&#39;_non_standard_column_names_for_ip_addresses&#39;</span><span class="p">,</span> <span class="s1">&#39;ipAddressColumnName&#39;</span><span class="p">,</span> <span class="s1">&#39;timeColumnName&#39;</span><span class="p">,</span> <span class="s1">&#39;userIDColumnName&#39;</span><span class="p">)</span>
2158 <span class="p">];</span>
2159 <span class="nv">$eventObj</span><span class="o">-&gt;</span><span class="na">exportUserProperties</span><span class="p">[]</span> <span class="o">=</span> <span class="s1">&#39;shouldAlwaysExportThisField&#39;</span><span class="p">;</span>
2160 <span class="nv">$eventObj</span><span class="o">-&gt;</span><span class="na">exportUserPropertiesIfNotEmpty</span><span class="p">[]</span> <span class="o">=</span> <span class="s1">&#39;myFancyField&#39;</span><span class="p">;</span>
2161 <span class="nv">$eventObj</span><span class="o">-&gt;</span><span class="na">exportUserOptionSettings</span><span class="p">[]</span> <span class="o">=</span> <span class="s1">&#39;thisSettingIsAlwaysExported&#39;</span><span class="p">;</span>
2162 <span class="nv">$eventObj</span><span class="o">-&gt;</span><span class="na">exportUserOptionSettingsIfNotEmpty</span><span class="p">[]</span> <span class="o">=</span> <span class="s1">&#39;someSettingContainingPersonalData&#39;</span><span class="p">;</span>
2163 <span class="nv">$eventObj</span><span class="o">-&gt;</span><span class="na">ipAddresses</span><span class="p">[</span><span class="s1">&#39;my.fancy.plugin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;wcf&#39;</span><span class="o">.</span><span class="nx">WCF_N</span><span class="o">.</span><span class="s1">&#39;_my_fancy_table&#39;</span><span class="p">,</span> <span class="s1">&#39;wcf&#39;</span><span class="o">.</span><span class="nx">WCF_N</span><span class="o">.</span><span class="s1">&#39;_i_also_store_ipaddresses_here&#39;</span><span class="p">];</span>
2164 <span class="nv">$eventObj</span><span class="o">-&gt;</span><span class="na">skipUserOptions</span><span class="p">[]</span> <span class="o">=</span> <span class="s1">&#39;thisLooksLikePersonalDataButItIsNot&#39;</span><span class="p">;</span>
2165 <span class="nv">$eventObj</span><span class="o">-&gt;</span><span class="na">skipUserOptions</span><span class="p">[]</span> <span class="o">=</span> <span class="s1">&#39;thisIsAlsoNotPersonalDataPleaseIgnoreIt&#39;</span><span class="p">;</span>
2166 <span class="p">}</span>
2167<span class="p">}</span>
2168</code></pre></div>
704cbc4a 2169</td></tr></table>
45ca63d0
TD
2170<h3 id="data"><code>$data</code><a class="headerlink" href="#data" title="Permanent link">#</a></h3>
2171<p>Contains the entire data that will be included in the exported JSON file, some
2172fields may already exist (such as <code>'com.woltlab.wcf'</code>) and while you may add or
2173edit any fields within, you should restrict yourself to only append data from
2174your plugin or app.</p>
2175<h3 id="exportuserproperties"><code>$exportUserProperties</code><a class="headerlink" href="#exportuserproperties" title="Permanent link">#</a></h3>
2176<p>Only a whitelist of columns in <code>wcfN_user</code> is exported by default, if your plugin
2177or app adds one or more columns to this table that do hold personal data, then
2178you will have to append it to this array. The listed properties will always be
2179included regardless of their content.</p>
2180<h3 id="exportuserpropertiesifnotempty"><code>$exportUserPropertiesIfNotEmpty</code><a class="headerlink" href="#exportuserpropertiesifnotempty" title="Permanent link">#</a></h3>
2181<p>Only a whitelist of columns in <code>wcfN_user</code> is exported by default, if your plugin
2182or app adds one or more columns to this table that do hold personal data, then
2183you will have to append it to this array. Empty values will not be added to the
2184output.</p>
2185<h3 id="exportuseroptionsettings"><code>$exportUserOptionSettings</code><a class="headerlink" href="#exportuseroptionsettings" title="Permanent link">#</a></h3>
2186<p>Any user option that exists within a <code>settings.*</code> category is automatically
2187excluded from the export, with the notable exception of the <code>timezone</code> option.
2188You can opt-in to include your setting by appending to this array, if it contains
2189any personal data. The listed settings are always included regardless of their
2190content.</p>
2191<h3 id="exportuseroptionsettingsifnotempty"><code>$exportUserOptionSettingsIfNotEmpty</code><a class="headerlink" href="#exportuseroptionsettingsifnotempty" title="Permanent link">#</a></h3>
2192<p>Any user option that exists within a <code>settings.*</code> category is automatically
2193excluded from the export, with the notable exception of the <code>timezone</code> option.
2194You can opt-in to include your setting by appending to this array, if it contains
2195any personal data.</p>
2196<h3 id="ipaddresses"><code>$ipAddresses</code><a class="headerlink" href="#ipaddresses" title="Permanent link">#</a></h3>
2197<p>List of database table names per package identifier that contain ip addresses.
2198The contained ip addresses will be exported when the ip logging module is enabled.</p>
2199<p>It expects the database table to use the column names <code>ipAddress</code>, <code>time</code> and
2200<code>userID</code>. If your table does not match this pattern for whatever reason, you'll
2201need to manually probe for <code>LOG_IP_ADDRESS</code> and then call <code>exportIpAddresses()</code>
2202to retrieve the list. Afterwards you are responsible to append these ip addresses
2203to the <code>$data</code> array to have it exported.</p>
2204<h3 id="skipuseroptions"><code>$skipUserOptions</code><a class="headerlink" href="#skipuseroptions" title="Permanent link">#</a></h3>
2205<p>All user options are included in the export by default, unless they start with
2206<code>can*</code> or <code>admin*</code>, or are blacklisted using this array. You should append any
2207of your plugin's or app's user option that should not be exported, for example
2208because it does not contain personal data, such as internal data.</p>
2209
4a5c32e1
WG
2210
2211
2212
2213<hr>
2214<div class="md-source-date">
2215 <small>
2216
2217 Last update: 2021-01-08
2218
2219 </small>
2220</div>
2221
2222
45ca63d0
TD
2223
2224
2225
2226
2227
2228
2229 </article>
2230 </div>
2231 </div>
fb962f09 2232
45ca63d0
TD
2233 </main>
2234
2235
2236<footer class="md-footer">
2237
2238 <nav class="md-footer__inner md-grid" aria-label="Footer">
2239
2240 <a href="../apps/" class="md-footer__link md-footer__link--prev" rel="prev">
2241 <div class="md-footer__button md-icon">
2242 <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>
2243 </div>
2244 <div class="md-footer__title">
2245 <div class="md-ellipsis">
2246 <span class="md-footer__direction">
2247 Previous
2248 </span>
2249 Apps
2250 </div>
2251 </div>
2252 </a>
2253
2254
2255 <a href="../../view/languages/" class="md-footer__link md-footer__link--next" rel="next">
2256 <div class="md-footer__title">
2257 <div class="md-ellipsis">
2258 <span class="md-footer__direction">
2259 Next
2260 </span>
2261 Languages
2262 </div>
2263 </div>
2264 <div class="md-footer__button md-icon">
2265 <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>
2266 </div>
2267 </a>
2268
2269 </nav>
2270
2271 <div class="md-footer-meta md-typeset">
2272 <div class="md-footer-meta__inner md-grid">
2273 <div class="md-footer-copyright">
2274
2275 <div class="md-footer-copyright__highlight">
2276 Copyright © 2020 WoltLab GmbH
2277 </div>
2278
2279 Made with
2280 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2281 Material for MkDocs
2282 </a>
fb88dc6e 2283
45ca63d0
TD
2284 </div>
2285 <div class="md-footer-copyright">
2286 <a href="https://www.woltlab.com/legal-notice/">Legal Notice</a>
2287 <a href="https://www.woltlab.com/privacy-policy/">Privacy Policy</a>
2288</div>
2289 </div>
2290 </div>
2291</footer>
2292
2293 </div>
2294 <div class="md-dialog" data-md-component="dialog">
2295 <div class="md-dialog__inner md-typeset"></div>
2296 </div>
fb962f09 2297 <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.fe42c31b.min.js", "version": {"provider": "mike"}}</script>
45ca63d0
TD
2298
2299
a4835aa6 2300 <script src="../../assets/javascripts/bundle.4ea5477f.min.js"></script>
45ca63d0
TD
2301
2302
2303 </body>
2304</html>