Deployed 14b5e91 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
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="canonical" href="https://docs.woltlab.com/5.4/php/gdpr/">
13
14 <link rel="icon" href="../../assets/default.favicon.ico">
15 <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-7.1.2">
16
17
18
19 <title>GDPR - WoltLab Suite Documentation</title>
20
21
22
23 <link rel="stylesheet" href="../../assets/stylesheets/main.6f955dcd.min.css">
24
25
26 <link rel="stylesheet" href="../../assets/stylesheets/palette.ef6f36e2.min.css">
27
28
29
30 <meta name="theme-color" content="#009485">
31
32
33
34
35
36
37
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="">
55
56
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
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
82 <header class="md-header" data-md-component="header">
83 <nav class="md-header__inner md-grid" aria-label="Header">
84 <a href="../.." title="WoltLab Suite Documentation" class="md-header__button md-logo" aria-label="WoltLab Suite Documentation" data-md-component="logo">
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>
107 </div>
108
109
110
111 <label class="md-header__button md-icon" for="__search">
112 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
113 </label>
114
115 <div class="md-search" data-md-component="search" role="dialog">
116 <label class="md-search__overlay" for="__search"></label>
117 <div class="md-search__inner" role="search">
118 <form class="md-search__form" name="search">
119 <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
120 <label class="md-search__icon md-icon" for="__search">
121 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
122 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
123 </label>
124 <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
125 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.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>
126 </button>
127 </form>
128 <div class="md-search__output">
129 <div class="md-search__scrollwrap" data-md-scrollfix>
130 <div class="md-search-result" data-md-component="search-result">
131 <div class="md-search-result__meta">
132 Initializing search
133 </div>
134 <ol class="md-search-result__list"></ol>
135 </div>
136 </div>
137 </div>
138 </div>
139 </div>
140
141
142 <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
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>
148 </div>
149 <div class="md-source__repository">
150 GitHub
151 </div>
152 </a>
153 </div>
154
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
174 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
175 <label class="md-nav__title" for="__drawer">
176 <a href="../.." title="WoltLab Suite Documentation" class="md-nav__button md-logo" aria-label="WoltLab Suite Documentation" data-md-component="logo">
177
178 <img src="../../assets/logo.png" alt="logo">
179
180 </a>
181 WoltLab Suite Documentation
182 </label>
183
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
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>
190 </div>
191 <div class="md-source__repository">
192 GitHub
193 </div>
194 </a>
195 </div>
196
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
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
334 <li class="md-nav__item">
335 <a href="../api/caches/" class="md-nav__link">
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
361 </a>
362 </li>
363
364
365
366 </ul>
367 </nav>
368 </li>
369
370
371
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
583
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
600
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
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
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">
792 TypeScript and JavaScript API
793 <span class="md-nav__icon md-icon"></span>
794 </label>
795 <nav class="md-nav" aria-label="TypeScript and JavaScript API" data-md-level="1">
796 <label class="md-nav__title" for="__nav_4">
797 <span class="md-nav__icon md-icon"></span>
798 TypeScript and JavaScript API
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
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
830
831 <li class="md-nav__item md-nav__item--nested">
832
833
834 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3" type="checkbox" id="__nav_4_3" >
835
836 <label class="md-nav__link" for="__nav_4_3">
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">
841 <label class="md-nav__title" for="__nav_4_3">
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
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
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">
1555 TypeScript and JavaScript
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
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
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
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
2005
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
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">
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
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
2111 force on May 25, 2018. It comes with a set of restrictions when handling users'
2112 personal 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
2114 need 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>
2115 on 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
2118 already includes the Core itself as well as all official apps, but you'll need to
2119 include 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
2121 has 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>
2123 <div class="titledCodeBox">
2124 <div class="codeBoxTitle"><code>files/lib/system/event/listener/MyUserExportGdprActionListener.class.php</code></div>
2125 <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
2126 <span class="normal"> 2</span>
2127 <span class="normal"> 3</span>
2128 <span class="normal"> 4</span>
2129 <span class="normal"> 5</span>
2130 <span class="normal"> 6</span>
2131 <span class="normal"> 7</span>
2132 <span class="normal"> 8</span>
2133 <span class="normal"> 9</span>
2134 <span class="normal">10</span>
2135 <span class="normal">11</span>
2136 <span class="normal">12</span>
2137 <span class="normal">13</span>
2138 <span class="normal">14</span>
2139 <span class="normal">15</span>
2140 <span class="normal">16</span>
2141 <span class="normal">17</span>
2142 <span class="normal">18</span>
2143 <span class="normal">19</span>
2144 <span class="normal">20</span>
2145 <span class="normal">21</span>
2146 <span class="normal">22</span>
2147 <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>
2148 <span class="k">namespace</span> <span class="nx">wcf\system\event\listener</span><span class="p">;</span>
2149 <span class="k">use</span> <span class="nx">wcf\acp\action\UserExportGdprAction</span><span class="p">;</span>
2150 <span class="k">use</span> <span class="nx">wcf\data\user\UserProfile</span><span class="p">;</span>
2151
2152 <span class="k">class</span> <span class="nc">MyUserExportGdprActionListener</span> <span class="k">implements</span> <span class="nx">IParameterizedEventListener</span> <span class="p">{</span>
2153 <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>
2154 <span class="sd">/** @var UserProfile $user */</span>
2155 <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>
2156
2157 <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>
2158 <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>
2159 <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>
2160 <span class="p">];</span>
2161 <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>
2162 <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>
2163 <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>
2164 <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>
2165 <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>
2166 <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>
2167 <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>
2168 <span class="p">}</span>
2169 <span class="p">}</span>
2170 </code></pre></div>
2171 </td></tr></table>
2172 </div>
2173
2174 <h3 id="data"><code>$data</code><a class="headerlink" href="#data" title="Permanent link">#</a></h3>
2175 <p>Contains the entire data that will be included in the exported JSON file, some
2176 fields may already exist (such as <code>'com.woltlab.wcf'</code>) and while you may add or
2177 edit any fields within, you should restrict yourself to only append data from
2178 your plugin or app.</p>
2179 <h3 id="exportuserproperties"><code>$exportUserProperties</code><a class="headerlink" href="#exportuserproperties" title="Permanent link">#</a></h3>
2180 <p>Only a whitelist of columns in <code>wcfN_user</code> is exported by default, if your plugin
2181 or app adds one or more columns to this table that do hold personal data, then
2182 you will have to append it to this array. The listed properties will always be
2183 included regardless of their content.</p>
2184 <h3 id="exportuserpropertiesifnotempty"><code>$exportUserPropertiesIfNotEmpty</code><a class="headerlink" href="#exportuserpropertiesifnotempty" title="Permanent link">#</a></h3>
2185 <p>Only a whitelist of columns in <code>wcfN_user</code> is exported by default, if your plugin
2186 or app adds one or more columns to this table that do hold personal data, then
2187 you will have to append it to this array. Empty values will not be added to the
2188 output.</p>
2189 <h3 id="exportuseroptionsettings"><code>$exportUserOptionSettings</code><a class="headerlink" href="#exportuseroptionsettings" title="Permanent link">#</a></h3>
2190 <p>Any user option that exists within a <code>settings.*</code> category is automatically
2191 excluded from the export, with the notable exception of the <code>timezone</code> option.
2192 You can opt-in to include your setting by appending to this array, if it contains
2193 any personal data. The listed settings are always included regardless of their
2194 content.</p>
2195 <h3 id="exportuseroptionsettingsifnotempty"><code>$exportUserOptionSettingsIfNotEmpty</code><a class="headerlink" href="#exportuseroptionsettingsifnotempty" title="Permanent link">#</a></h3>
2196 <p>Any user option that exists within a <code>settings.*</code> category is automatically
2197 excluded from the export, with the notable exception of the <code>timezone</code> option.
2198 You can opt-in to include your setting by appending to this array, if it contains
2199 any personal data.</p>
2200 <h3 id="ipaddresses"><code>$ipAddresses</code><a class="headerlink" href="#ipaddresses" title="Permanent link">#</a></h3>
2201 <p>List of database table names per package identifier that contain ip addresses.
2202 The contained ip addresses will be exported when the ip logging module is enabled.</p>
2203 <p>It expects the database table to use the column names <code>ipAddress</code>, <code>time</code> and
2204 <code>userID</code>. If your table does not match this pattern for whatever reason, you'll
2205 need to manually probe for <code>LOG_IP_ADDRESS</code> and then call <code>exportIpAddresses()</code>
2206 to retrieve the list. Afterwards you are responsible to append these ip addresses
2207 to the <code>$data</code> array to have it exported.</p>
2208 <h3 id="skipuseroptions"><code>$skipUserOptions</code><a class="headerlink" href="#skipuseroptions" title="Permanent link">#</a></h3>
2209 <p>All user options are included in the export by default, unless they start with
2210 <code>can*</code> or <code>admin*</code>, or are blacklisted using this array. You should append any
2211 of your plugin's or app's user option that should not be exported, for example
2212 because it does not contain personal data, such as internal data.</p>
2213
2214
2215
2216
2217 <hr>
2218 <div class="md-source-date">
2219 <small>
2220
2221 Last update: 2021-04-23
2222
2223 </small>
2224 </div>
2225
2226
2227
2228
2229
2230
2231
2232
2233 </article>
2234 </div>
2235 </div>
2236
2237 </main>
2238
2239
2240 <footer class="md-footer">
2241
2242 <nav class="md-footer__inner md-grid" aria-label="Footer">
2243
2244 <a href="../apps/" class="md-footer__link md-footer__link--prev" rel="prev">
2245 <div class="md-footer__button md-icon">
2246 <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>
2247 </div>
2248 <div class="md-footer__title">
2249 <div class="md-ellipsis">
2250 <span class="md-footer__direction">
2251 Previous
2252 </span>
2253 Apps
2254 </div>
2255 </div>
2256 </a>
2257
2258
2259 <a href="../../view/languages/" class="md-footer__link md-footer__link--next" rel="next">
2260 <div class="md-footer__title">
2261 <div class="md-ellipsis">
2262 <span class="md-footer__direction">
2263 Next
2264 </span>
2265 Languages
2266 </div>
2267 </div>
2268 <div class="md-footer__button md-icon">
2269 <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>
2270 </div>
2271 </a>
2272
2273 </nav>
2274
2275 <div class="md-footer-meta md-typeset">
2276 <div class="md-footer-meta__inner md-grid">
2277 <div class="md-footer-copyright">
2278
2279 <div class="md-footer-copyright__highlight">
2280 Copyright © 2020 WoltLab GmbH
2281 </div>
2282
2283 Made with
2284 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2285 Material for MkDocs
2286 </a>
2287
2288 </div>
2289 <div class="md-footer-copyright">
2290 <a href="https://www.woltlab.com/legal-notice/">Legal Notice</a>
2291 <a href="https://www.woltlab.com/privacy-policy/">Privacy Policy</a>
2292 </div>
2293 </div>
2294 </div>
2295 </footer>
2296
2297 </div>
2298 <div class="md-dialog" data-md-component="dialog">
2299 <div class="md-dialog__inner md-typeset"></div>
2300 </div>
2301 <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>
2302
2303
2304 <script src="../../assets/javascripts/bundle.4ea5477f.min.js"></script>
2305
2306
2307 </body>
2308 </html>