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