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