-
Notifications
You must be signed in to change notification settings - Fork 672
/
guides.pot
9962 lines (7509 loc) · 348 KB
/
guides.pot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2013, Various
# This file is distributed under the same license as the Elgg package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Elgg master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-24 13:13+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../guides/access.rst:2
msgid "Access Control Lists"
msgstr ""
#: ../../guides/access.rst:4
msgid "An Access Control List (or ACL) can grant one or more users access to an entity or annotation in the database."
msgstr ""
#: ../../guides/access.rst:8
#: ../../guides/actions.rst:16
#: ../../guides/ajax.rst:10
#: ../../guides/database.rst:8
#: ../../guides/events-list.rst:8
#: ../../guides/file-system.rst:6
#: ../../guides/guidelines.rst:18
#: ../../guides/helpers.rst:6
#: ../../guides/javascript.rst:6
#: ../../guides/menus.rst:12
#: ../../guides/notifications.rst:10
#: ../../guides/plugins.rst:8
#: ../../guides/plugins/bootstrap.rst:13
#: ../../guides/plugins/dependencies.rst:8
#: ../../guides/search.rst:7
#: ../../guides/themes.rst:14
#: ../../guides/views.rst:6
#: ../../guides/web-services.rst:24
#: ../../guides/web-services/result.rst:6
#: ../../guides/widgets.rst:8
msgid "Contents"
msgstr ""
#: ../../guides/access.rst:12
msgid ":ref:`Database Access Control <database-access-control>`"
msgstr ""
#: ../../guides/access.rst:15
msgid "Creating an ACL"
msgstr ""
#: ../../guides/access.rst:17
msgid "An access collection can be create by using the function `create_access_collection()`."
msgstr ""
#: ../../guides/access.rst:26
msgid "ACL subtypes"
msgstr ""
#: ../../guides/access.rst:28
msgid "ACLs can have a subtype, this is to help differentiate between the usage of the ACL. It's higly recommended to set a subtype for an ACL."
msgstr ""
#: ../../guides/access.rst:31
msgid "Elgg core has three examples of subtype usage"
msgstr ""
#: ../../guides/access.rst:33
msgid "``group_acl`` an ACL owned by an ``ElggGroup`` which grants group members access to content shared with the group"
msgstr ""
#: ../../guides/access.rst:34
msgid "``friends`` an ACL owned by an ``ElggUser`` which grant friends of a user access to content shared with friends"
msgstr ""
#: ../../guides/access.rst:35
msgid "``friends_collection`` an ACL owned by an ``ElggUser`` which grant specific friends access to content shared with the ACL"
msgstr ""
#: ../../guides/access.rst:38
msgid "Adding users to an ACL"
msgstr ""
#: ../../guides/access.rst:40
msgid "If you have an ACL you still need to add users to it in order to grant those users access to content with the `access_id` of the ACLs `id`."
msgstr ""
#: ../../guides/access.rst:60
msgid "Removing users from an ACL"
msgstr ""
#: ../../guides/access.rst:62
msgid "If you no longer wish to allow access for a given user in an ACL you can easily remove that user from the list."
msgstr ""
#: ../../guides/access.rst:76
msgid "Retrieving an ACL"
msgstr ""
#: ../../guides/access.rst:78
msgid "In order to manage an ACL, or add the ID of an ACL to an access list there are several functions available to retrieve an ACL from the database."
msgstr ""
#: ../../guides/access.rst:112
msgid "Read access"
msgstr ""
#: ../../guides/access.rst:114
msgid "The access system of Elgg automaticly adds all the ACLs a user is a member of to the access checks. For example a user is a member of a group and is friends with 3 other users, all the corresponding ACLs are added in order to check access to entities when retrieving them (eg. listing all blogs)."
msgstr ""
#: ../../guides/access.rst:119
msgid "Ignoring access"
msgstr ""
#: ../../guides/access.rst:121
msgid "If for some case you need entities retrieved ignoring the access rules you can wrap your code in ``elgg_call``. There are different flags you can use."
msgstr ""
#: ../../guides/access.rst:124
msgid "ELGG_IGNORE_ACCESS: no access rules are applied"
msgstr ""
#: ../../guides/access.rst:125
msgid "ELGG_ENFORCE_ACCESS: access rules are forced to be applied"
msgstr ""
#: ../../guides/access.rst:126
msgid "ELGG_SHOW_DISABLED_ENTITIES: will retrieve entities that are disabled"
msgstr ""
#: ../../guides/access.rst:127
msgid "ELGG_HIDE_DISABLED_ENTITIES: will never retrieve entities that are disabled"
msgstr ""
#: ../../guides/access.rst:139
msgid "You can also combine flags."
msgstr ""
#: ../../guides/accessibility.rst:2
msgid "Accessibility"
msgstr ""
#: ../../guides/accessibility.rst:4
msgid "This page aims to list and document accessibility rules and best practices, to help core and plugins developpers to make Elgg the most accessible social engine framework that everyone dreams of."
msgstr ""
#: ../../guides/accessibility.rst:8
msgid "This is an ongoing work, please contribute on `Github <https://github.com/Elgg/Elgg>`_ if you have some skills in this field!"
msgstr ""
#: ../../guides/accessibility.rst:11
msgid "Resources + references"
msgstr ""
#: ../../guides/accessibility.rst:13
msgid "`Official WCAG Accessibility Guidelines Overview <http://www.w3.org/WAI/WCAG20/glance/>`_"
msgstr ""
#: ../../guides/accessibility.rst:14
msgid "`Official WCAG Accessibility Guidelines <http://www.w3.org/TR/WCAG/>`_"
msgstr ""
#: ../../guides/accessibility.rst:15
msgid "`Resources for planning and implementing for accessibility <http://www.w3.org/WAI/managing>`_"
msgstr ""
#: ../../guides/accessibility.rst:16
msgid "`Practical tips from the W3C for improving accessibility <http://www.w3.org/WAI/impl/improving>`_"
msgstr ""
#: ../../guides/accessibility.rst:17
msgid "`Preliminary review of websites for accessibility <http://www.w3.org/WAI/eval/preliminary.html>`_"
msgstr ""
#: ../../guides/accessibility.rst:18
msgid "`Tools for checking the accessibility of websites <http://www.w3.org/WAI/ER/tools/>`_"
msgstr ""
#: ../../guides/accessibility.rst:19
msgid "`List of practical techniques for implementing accessibility <http://www.w3.org/TR/WCAG20-TECHS/Overview.html#contents>`_ (It would be great if someone could go through this and filter out all the ones that are relevant to Elgg)"
msgstr ""
#: ../../guides/accessibility.rst:22
msgid "Tips for implementing accessibility"
msgstr ""
#: ../../guides/accessibility.rst:24
msgid "All accessibility-related tickets reported to trac should be tagged with \"a11y\", short for \"accessibility\""
msgstr ""
#: ../../guides/accessibility.rst:25
msgid "Use core views such as ``output/*``, and ``input/*`` to generate markup, since we can bake a11y concerns into these views"
msgstr ""
#: ../../guides/accessibility.rst:26
msgid "All images should have a descriptive ``alt`` attribute. Spacer or purely decorative graphics should have blank ``alt`` attributes"
msgstr ""
#: ../../guides/accessibility.rst:27
msgid "All ``<a>`` tags should have text or an accessible image inside. Otherwise screen readers will have to read the URL, which is a poor experience ``<a>`` tags should contain descriptive text, if possible, as opposed to generic text like \"Click here\""
msgstr ""
#: ../../guides/accessibility.rst:28
msgid "Markup should be valid"
msgstr ""
#: ../../guides/accessibility.rst:29
msgid "Themes should not reset \"outline\" to nothing. ``:focus`` deserves a special visual treatment so that handicapped users can know where they are"
msgstr ""
#: ../../guides/accessibility.rst:32
msgid "Tips for testing accessibility"
msgstr ""
#: ../../guides/accessibility.rst:34
msgid "Use the tools linked to from the resources section. `Example report for community.elgg.org on June 16, 2012 <http://try.powermapper.com/Reports/a6276098-0883-4d04-849e-8c05999812f2/report/map.htm>`_"
msgstr ""
#: ../../guides/accessibility.rst:35
msgid "Try different font-size/zoom settings in your browser and make sure the theme remains usable"
msgstr ""
#: ../../guides/accessibility.rst:36
msgid "Turn off css to make sure the sequential order of the page makes sense"
msgstr ""
#: ../../guides/accessibility.rst:39
msgid "Documentation objectives and principles"
msgstr ""
#: ../../guides/accessibility.rst:41
msgid "Main accessibility rules"
msgstr ""
#: ../../guides/accessibility.rst:42
msgid "collect and document best practices"
msgstr ""
#: ../../guides/accessibility.rst:43
msgid "Provide code examples"
msgstr ""
#: ../../guides/accessibility.rst:44
msgid "Keep the document simple and usable"
msgstr ""
#: ../../guides/accessibility.rst:45
msgid "Make it usable for both beginner developpers and experts (from most common and easiest changes to elaborate techniques)"
msgstr ""
#: ../../guides/actions.rst:2
msgid "Forms + Actions"
msgstr ""
#: ../../guides/actions.rst:4
msgid "Create, update, or delete content."
msgstr ""
#: ../../guides/actions.rst:6
msgid "Elgg forms submit to actions. Actions define the behavior for form submission."
msgstr ""
#: ../../guides/actions.rst:8
msgid "This guide assumes basic familiarity with:"
msgstr ""
#: ../../guides/actions.rst:10
#: ../../guides/themes.rst:9
msgid ":doc:`/admin/plugins`"
msgstr ""
#: ../../guides/actions.rst:11
#: ../../guides/themes.rst:10
msgid ":doc:`views`"
msgstr ""
#: ../../guides/actions.rst:12
msgid ":doc:`i18n`"
msgstr ""
#: ../../guides/actions.rst:19
msgid "Registering actions"
msgstr ""
#: ../../guides/actions.rst:21
msgid "Actions must be registered before use."
msgstr ""
#: ../../guides/actions.rst:23
msgid "There are two ways to register actions:"
msgstr ""
#: ../../guides/actions.rst:25
msgid "Using ``elgg_register_action()``"
msgstr ""
#: ../../guides/actions.rst:31
msgid "The ``mod/example/actions/example.php`` script will now be run whenever a form is submitted to ``http://localhost/elgg/action/example``."
msgstr ""
#: ../../guides/actions.rst:33
msgid "Use ``elgg-plugin.php``"
msgstr ""
#: ../../guides/actions.rst:59
msgid "A stumbling point for many new developers is the URL for actions. The URL always uses ``/action/`` (singular) and never ``/actions/`` (plural). However, action script files are usually saved under the directory ``/actions/`` (plural) and always have an extension. Use ``elgg_generate_action_url()`` to avoid confusion."
msgstr ""
#: ../../guides/actions.rst:64
msgid "Registering actions using plugin config file"
msgstr ""
#: ../../guides/actions.rst:65
msgid "You can also register actions via the :doc:`elgg-plugin</guides/plugins>` config file. To do this you need to provide an action section in the config file. The location of the action files are assumed to be in the plugin folder ``/actions``."
msgstr ""
#: ../../guides/actions.rst:84
msgid "Permissions"
msgstr ""
#: ../../guides/actions.rst:85
msgid "By default, actions are only available to logged in users."
msgstr ""
#: ../../guides/actions.rst:87
msgid "To make an action available to logged out users, pass ``\"public\"`` as the third parameter:"
msgstr ""
#: ../../guides/actions.rst:93
msgid "To restrict an action to only administrators, pass ``\"admin\"`` for the last parameter:"
msgstr ""
#: ../../guides/actions.rst:100
msgid "Writing action files"
msgstr ""
#: ../../guides/actions.rst:102
msgid "Use the ``get_input()`` function to get access to request parameters:"
msgstr ""
#: ../../guides/actions.rst:108
msgid "You can then use the :doc:`database` api to load entities and perform actions on them accordingly."
msgstr ""
#: ../../guides/actions.rst:110
msgid "To indicate a successful action, use ``elgg_ok_response()``. This function accepts data that you want to make available to the client for XHR calls (this data will be ignored for non-XHR calls)"
msgstr ""
#: ../../guides/actions.rst:128
msgid "To indicate an error, use ``elgg_error_response()``"
msgstr ""
#: ../../guides/actions.rst:146
msgid "Customizing actions"
msgstr ""
#: ../../guides/actions.rst:148
msgid "Before executing any action, Elgg triggers a hook:"
msgstr ""
#: ../../guides/actions.rst:154
msgid "Where ``$action`` is the action being called. If the hook returns ``false`` then the action will not be executed. Don't return anything if your validation passes."
msgstr ""
#: ../../guides/actions.rst:158
msgid "Example: Captcha"
msgstr ""
#: ../../guides/actions.rst:160
msgid "The captcha module uses this to intercept the ``register`` and ``user/requestnewpassword`` actions and redirect them to a function which checks the captcha code. This check returns ``false`` if the captcha validation fails (which prevents the associated action from executing)."
msgstr ""
#: ../../guides/actions.rst:164
msgid "This is done as follows:"
msgstr ""
#: ../../guides/actions.rst:186
msgid "This lets a plugin extend an existing action without the need to replace the whole action. In the case of the captcha plugin it allows the plugin to provide captcha support in a very loosely coupled way."
msgstr ""
#: ../../guides/actions.rst:190
msgid "Actions available in core"
msgstr ""
#: ../../guides/actions.rst:193
msgid "``entity/delete``"
msgstr ""
#: ../../guides/actions.rst:195
msgid "If your plugin does not implement any custom logic when deleting an entity, you can use bundled delete action"
msgstr ""
#: ../../guides/actions.rst:211
msgid "You can customize the success message keys for your entity type and subtype, using ``\"entity:delete:$type:$subtype:success\"`` and ``\"entity:delete:$type:success\"`` keys."
msgstr ""
#: ../../guides/actions.rst:224
msgid "Forms"
msgstr ""
#: ../../guides/actions.rst:226
msgid "To output a form, use the elgg_view_form function like so:"
msgstr ""
#: ../../guides/actions.rst:232
msgid "Doing this generates something like the following markup:"
msgstr ""
#: ../../guides/actions.rst:243
msgid "Elgg does some things automatically for you when you generate forms this way:"
msgstr ""
#: ../../guides/actions.rst:245
msgid "It sets the action to the appropriate URL based on the name of the action you pass to it"
msgstr ""
#: ../../guides/actions.rst:246
msgid "It adds some anti-csrf tokens (``__elgg_ts`` and ``__elgg_token``) to help keep your actions secure"
msgstr ""
#: ../../guides/actions.rst:247
msgid "It automatically looks for the body of the form in the ``forms/example`` view."
msgstr ""
#: ../../guides/actions.rst:249
msgid "Put the content of your form in your plugin’s ``forms/example`` view:"
msgstr ""
#: ../../guides/actions.rst:260
msgid "Now when you call ``elgg_view_form('example')``, Elgg will produce:"
msgstr ""
#: ../../guides/actions.rst:277
msgid "Inputs"
msgstr ""
#: ../../guides/actions.rst:279
msgid "To render a form input, use one of the bundled input views, which cover all standard HTML input elements. See individual view files for a list of accepted parameters."
msgstr ""
#: ../../guides/actions.rst:296
msgid "The above example will render a dropdown select input:"
msgstr ""
#: ../../guides/actions.rst:305
msgid "To ensure consistency in field markup, use ``elgg_view_field()``, which accepts all the parameters of the input being rendered, as well as ``#label`` and ``#help`` parameters (both of which are optional and accept HTML or text)."
msgstr ""
#: ../../guides/actions.rst:324
msgid "The above will generate the following markup:"
msgstr ""
#: ../../guides/actions.rst:342
msgid "Input types"
msgstr ""
#: ../../guides/actions.rst:344
msgid "A list of bundled input types/views:"
msgstr ""
#: ../../guides/actions.rst:346
msgid "``input/text`` - renders a text input ``<input type=\"text\">``"
msgstr ""
#: ../../guides/actions.rst:347
msgid "``input/plaintext`` - renders a textarea ``<textarea></textarea>``"
msgstr ""
#: ../../guides/actions.rst:348
msgid "``input/longtext`` - renders a WYSIWYG text input"
msgstr ""
#: ../../guides/actions.rst:349
msgid "``input/url`` - renders a url input ``<input type=\"url\">``"
msgstr ""
#: ../../guides/actions.rst:350
msgid "``input/email`` - renders an email input ``<input type=\"email\">``"
msgstr ""
#: ../../guides/actions.rst:351
msgid "``input/checkbox`` - renders a single checkbox ``<input type=\"checkbox\">``"
msgstr ""
#: ../../guides/actions.rst:352
msgid "``input/checkboxes`` - renders a set of checkboxes with the same name"
msgstr ""
#: ../../guides/actions.rst:353
msgid "``input/radio`` - renders one or more radio buttons ``<input type=\"radio\">``"
msgstr ""
#: ../../guides/actions.rst:354
msgid "``input/submit`` - renders a submit button ``<button type=\"submit\">``"
msgstr ""
#: ../../guides/actions.rst:355
msgid "``input/button`` - renders a button ``<button></button>``"
msgstr ""
#: ../../guides/actions.rst:356
msgid "``input/file`` - renders a file input ``<input type=\"file\">``"
msgstr ""
#: ../../guides/actions.rst:357
msgid "``input/select`` - renders a select input ``<select></select>``"
msgstr ""
#: ../../guides/actions.rst:358
msgid "``input/hidden`` - renders a hidden input ``<input type=\"hidden\">``"
msgstr ""
#: ../../guides/actions.rst:359
msgid "``input/password`` - renders a password input ``<input type=\"password\">``"
msgstr ""
#: ../../guides/actions.rst:360
msgid "``input/number`` - renders a number input ``<input type=\"number\">``"
msgstr ""
#: ../../guides/actions.rst:361
msgid "``input/date`` - renders a jQuery datepicker"
msgstr ""
#: ../../guides/actions.rst:363
msgid "Elgg offers some helper input types"
msgstr ""
#: ../../guides/actions.rst:365
msgid "``input/access`` - renders an Elgg access level select"
msgstr ""
#: ../../guides/actions.rst:366
msgid "``input/tags`` - renders an Elgg tags input"
msgstr ""
#: ../../guides/actions.rst:367
msgid "``input/autocomplete`` - renders an Elgg entity autocomplete"
msgstr ""
#: ../../guides/actions.rst:368
msgid "``input/captcha`` - placeholder view for plugins to extend"
msgstr ""
#: ../../guides/actions.rst:369
msgid "``input/friendspicker`` - renders an Elgg friend autocomplete"
msgstr ""
#: ../../guides/actions.rst:370
msgid "``input/userpicker`` - renders an Elgg user autocomplete"
msgstr ""
#: ../../guides/actions.rst:371
msgid "``input/location`` renders an Elgg location input"
msgstr ""
#: ../../guides/actions.rst:374
msgid "Files and images"
msgstr ""
#: ../../guides/actions.rst:376
msgid "Use the ``input/file`` view in your form’s content view."
msgstr ""
#: ../../guides/actions.rst:383
msgid "If you wish to upload an icon for entity you can use the helper view ``entity/edit/icon``. This view shows a file input for uploading a new icon for the entity, an thumbnail of the current icon and the option to remove the current icon."
msgstr ""
#: ../../guides/actions.rst:387
msgid "The view supports some variables to control the output"
msgstr ""
#: ../../guides/actions.rst:389
msgid "``entity`` - the entity to add/remove the icon for. If provided based on this entity the thumbnail and remove option wil be shown"
msgstr ""
#: ../../guides/actions.rst:390
msgid "``entity_type`` - the entity type for which the icon will be uploaded. Plugins could find this usefull, maybe to validate icon sizes"
msgstr ""
#: ../../guides/actions.rst:391
msgid "``entity_subtype`` - the entity subtype for which the icon will be uploaded. Plugins could find this usefull, maybe to validate icon sizes"
msgstr ""
#: ../../guides/actions.rst:392
msgid "``icon_type`` - the type of the icon (default: icon)"
msgstr ""
#: ../../guides/actions.rst:393
msgid "``name`` - name of the input/file (default: icon)"
msgstr ""
#: ../../guides/actions.rst:394
msgid "``remove_name`` - name of the remove icon toggle (default: $vars['name'] . '_remove')"
msgstr ""
#: ../../guides/actions.rst:395
msgid "``required`` - is icon upload required (default: false)"
msgstr ""
#: ../../guides/actions.rst:396
msgid "``show_remove`` - show the remove icon option (default: true)"
msgstr ""
#: ../../guides/actions.rst:397
msgid "``show_thumb`` - show the thumb of the entity if available (default: true)"
msgstr ""
#: ../../guides/actions.rst:398
msgid "``thumb_size`` - the icon size to use as the thumb (default: medium)"
msgstr ""
#: ../../guides/actions.rst:400
msgid "If using the helper view you can use the following code in you action to save the icon to the entity or remove the current icon."
msgstr ""
#: ../../guides/actions.rst:410
msgid "Set the enctype of the form to ``multipart/form-data``:"
msgstr ""
#: ../../guides/actions.rst:420
msgid "The ``enctype`` of all forms that use the method ``POST`` defaults to ``multipart/form-data``."
msgstr ""
#: ../../guides/actions.rst:422
msgid "In your action file, use ``elgg_get_uploaded_file('your-input-name')`` to access the uploaded file:"
msgstr ""
#: ../../guides/actions.rst:429
msgid "Sticky forms"
msgstr ""
#: ../../guides/actions.rst:431
msgid "Sticky forms are forms that retain user input if saving fails. They are \"sticky\" because the user's data \"sticks\" in the form after submitting, though it was never saved to the database. This greatly improves the user experience by minimizing data loss. Elgg includes helper functions so you can make any form sticky."
msgstr ""
#: ../../guides/actions.rst:436
#: ../../guides/helpers.rst:2
msgid "Helper functions"
msgstr ""
#: ../../guides/actions.rst:438
msgid "Sticky forms are implemented in Elgg by the following functions:"
msgstr ""
#: ../../guides/actions.rst:440
msgid "``elgg_make_sticky_form($name)`` - Tells the engine to make all input on a form sticky."
msgstr ""
#: ../../guides/actions.rst:441
msgid "``elgg_clear_sticky_form($name)`` - Tells the engine to discard all sticky input on a form."
msgstr ""
#: ../../guides/actions.rst:442
msgid "``elgg_is_sticky_form($name)`` - Checks if ``$name`` is a valid sticky form."
msgstr ""
#: ../../guides/actions.rst:443
msgid "``elgg_get_sticky_values($name)`` - Returns all sticky values saved for ``$name`` by ``elgg_make_sticky_form($name)``."
msgstr ""
#: ../../guides/actions.rst:446
#: ../../guides/ajax.rst:13
#: ../../guides/i18n.rst:15
#: ../../guides/plugins/dependencies.rst:11
msgid "Overview"
msgstr ""
#: ../../guides/actions.rst:448
msgid "The basic flow of using sticky forms is:"
msgstr ""
#: ../../guides/actions.rst:450
msgid "Call ``elgg_make_sticky_form($name)`` at the top of actions for forms you want to be sticky."
msgstr ""
#: ../../guides/actions.rst:451
msgid "Use ``elgg_is_sticky_form($name)`` and ``elgg_get_sticky_values($name)`` to get sticky values when rendering a form view."
msgstr ""
#: ../../guides/actions.rst:452
msgid "Call ``elgg_clear_sticky_form($name)`` after the action has completed successfully or after data has been loaded by ``elgg_get_sticky_values($name)``."
msgstr ""
#: ../../guides/actions.rst:455
msgid "Example: User registration"
msgstr ""
#: ../../guides/actions.rst:457
msgid "Simple sticky forms require little logic to determine the input values for the form. This logic is placed at the top of the form body view itself."
msgstr ""
#: ../../guides/actions.rst:460
msgid "The registration form view first sets default values for inputs, then checks if there are sticky values. If so, it loads the sticky values before clearing the sticky form:"
msgstr ""
#: ../../guides/actions.rst:476
msgid "The registration action sets creates the sticky form and clears it once the action is completed:"
msgstr ""
#: ../../guides/actions.rst:493
msgid "Example: Bookmarks"
msgstr ""
#: ../../guides/actions.rst:495
msgid "The bundled plugin Bookmarks' save form and action is an example of a complex sticky form."
msgstr ""
#: ../../guides/actions.rst:497
msgid "The form view for the save bookmark action uses ``elgg_extract()`` to pull values from the ``$vars`` array:"
msgstr ""
#: ../../guides/actions.rst:511
msgid "The page handler scripts prepares the form variables and calls ``elgg_view_form()`` passing the correct values:"
msgstr ""
#: ../../guides/actions.rst:519
msgid "Similarly, ``mod/bookmarks/pages/edit.php`` uses the same function, but passes the entity that is being edited as an argument:"
msgstr ""
#: ../../guides/actions.rst:531
msgid "The library file defines ``bookmarks_prepare_form_vars()``. This function accepts an ``ElggEntity`` as an argument and does 3 things:"
msgstr ""
#: ../../guides/actions.rst:533
msgid "Defines the input names and default values for form inputs."
msgstr ""
#: ../../guides/actions.rst:534
msgid "Extracts the values from a bookmark object if it's passed."
msgstr ""
#: ../../guides/actions.rst:535
msgid "Extracts the values from a sticky form if it exists."
msgstr ""
#: ../../guides/actions.rst:574
msgid "The save action checks the input, then clears the sticky form upon success:"
msgstr ""
#: ../../guides/actions.rst:588
#: ../../guides/ajax.rst:2
#: ../../guides/hooks-list.rst:358
msgid "Ajax"
msgstr ""
#: ../../guides/actions.rst:590
msgid "See the :doc:`Ajax guide</guides/ajax>` for instructions on calling actions from JavaScript."
msgstr ""
#: ../../guides/actions.rst:593
#: ../../guides/web-services.rst:27
msgid "Security"
msgstr ""
#: ../../guides/actions.rst:595
msgid "For enhanced security, all actions require an CSRF token. Calls to action URLs that do not include security tokens will be ignored and a warning will be generated."
msgstr ""
#: ../../guides/actions.rst:598
msgid "A few views and functions automatically generate security tokens:"
msgstr ""
#: ../../guides/actions.rst:607
msgid "In rare cases, you may need to generate tokens manually:"
msgstr ""
#: ../../guides/actions.rst:614
msgid "You can also access the tokens from javascript:"
msgstr ""
#: ../../guides/actions.rst:621
msgid "These are refreshed periodically so should always be up-to-date."
msgstr ""
#: ../../guides/actions.rst:624
msgid "Security Tokens"
msgstr ""
#: ../../guides/actions.rst:626
msgid "On occasion we need to pass data through an untrusted party or generate an \"unguessable token\" based on some data. The industry-standard `HMAC <http://security.stackexchange.com/a/20301/4982>`_ algorithm is the right tool for this. It allows us to verify that received data were generated by our site, and were not tampered with. Note that even strong hash functions like SHA-2 should *not* be used without HMAC for these tasks."
msgstr ""
#: ../../guides/actions.rst:631
msgid "Elgg provides ``elgg_build_hmac()`` to generate and validate HMAC message authentication codes that are unguessable without the site's private key."
msgstr ""
#: ../../guides/actions.rst:655
msgid "Note: If you use a non-string as HMAC data, you must use types consistently. Consider the following:"
msgstr ""
#: ../../guides/actions.rst:668
msgid "Signed URLs"
msgstr ""
#: ../../guides/actions.rst:670
msgid "Signed URLs offer a limited level of security for situations where action tokens are not suitable, for example when sending a confirmation link via email. URL signatures verify that the URL has been generated by your Elgg installation (using site secret) and that the URL query elements were not tampered with."
msgstr ""
#: ../../guides/actions.rst:674
msgid "URLs a signed with an unguessable SHA-256 HMAC key. See `Security Tokens`_ for more details."
msgstr ""
#: ../../guides/actions.rst:688
msgid "Signed URLs do not offer CSRF protection and should not be used instead of action tokens."
msgstr ""
#: ../../guides/ajax.rst:4
msgid "The ``elgg/Ajax`` AMD module (introduced in Elgg 2.1) provides a set of methods for communicating with the server in a concise and uniform way, which allows plugins to collaborate on the request data, the server response, and the returned client-side data."
msgstr ""
#: ../../guides/ajax.rst:6
msgid "Client and server code written for the legacy API should not need modification."
msgstr ""
#: ../../guides/ajax.rst:15
msgid "All the ajax methods perform the following:"
msgstr ""
#: ../../guides/ajax.rst:17
msgid "Client-side, the ``data`` option (if given as an object) is filtered by the hook ``ajax_request_data``."
msgstr ""
#: ../../guides/ajax.rst:18
msgid "The request is made to the server, either rendering a view or a form, calling an action, or loading a path."
msgstr ""
#: ../../guides/ajax.rst:19
msgid "The method returns a ``jqXHR`` object, which can be used as a Promise."
msgstr ""
#: ../../guides/ajax.rst:20
msgid "Server-echoed content is turned into a response object (``Elgg\\Services\\AjaxResponse``) containing a string (or a JSON-parsed value)."
msgstr ""
#: ../../guides/ajax.rst:21
msgid "The response object is filtered by the hook ``ajax_response``."
msgstr ""
#: ../../guides/ajax.rst:22
msgid "The response object is used to create the HTTP response."
msgstr ""
#: ../../guides/ajax.rst:23
msgid "Client-side, the response data is filtered by the hook ``ajax_response_data``."
msgstr ""
#: ../../guides/ajax.rst:24
msgid "The ``jqXHR`` promise is resolved and any ``success`` callbacks are called."
msgstr ""
#: ../../guides/ajax.rst:26
msgid "More notes:"
msgstr ""
#: ../../guides/ajax.rst:28
msgid "All hooks have a type depending on the method and first argument. See below."
msgstr ""
#: ../../guides/ajax.rst:29
msgid "By default the ``elgg/spinner`` module is automatically used during requests."
msgstr ""
#: ../../guides/ajax.rst:30
msgid "User messages generated by ``system_message()`` and ``register_error()`` are collected and displayed on the client."
msgstr ""
#: ../../guides/ajax.rst:31
msgid "Elgg gives you a default error handler that shows a generic message if output fails."
msgstr ""
#: ../../guides/ajax.rst:32
msgid "PHP exceptions or denied resource return HTTP error codes, resulting in use of the client-side error handler."
msgstr ""
#: ../../guides/ajax.rst:33
msgid "The default HTTP method is ``POST`` for actions, otherwise ``GET``. You can set it via ``options.method``."
msgstr ""
#: ../../guides/ajax.rst:34
msgid "If a non-empty ``options.data`` is given, the default method is always ``POST``."
msgstr ""
#: ../../guides/ajax.rst:35
msgid "For client caching, set ``options.method`` to ``\"GET\"`` and ``options.data.elgg_response_ttl`` to the max-age you want in seconds."
msgstr ""
#: ../../guides/ajax.rst:36
msgid "To save system messages for the next page load, set ``options.data.elgg_fetch_messages = 0``. You may want to do this if you intent to redirect the user based on the response."
msgstr ""
#: ../../guides/ajax.rst:37
msgid "To stop client-side API from requiring AMD modules required server-side with ``elgg_require_js()``, set ``options.data.elgg_fetch_deps = 0``."
msgstr ""
#: ../../guides/ajax.rst:38
msgid "All methods accept a query string in the first argument. This is passed on to the fetch URL, but does not appear in the hook types."
msgstr ""
#: ../../guides/ajax.rst:41
msgid "Performing actions"
msgstr ""
#: ../../guides/ajax.rst:43
msgid "Consider this action:"
msgstr ""
#: ../../guides/ajax.rst:62
msgid "To execute it, use ``ajax.action('<action_name>', options)``:"
msgstr ""
#: ../../guides/ajax.rst:83
msgid "Notes for actions:"
msgstr ""
#: ../../guides/ajax.rst:87
msgid "All hooks have type ``action:<action_name>``. So in this case, three hooks will be triggered:"
msgstr ""
#: ../../guides/ajax.rst:86
msgid "client-side ``\"ajax_request_data\", \"action:do_math\"`` to filter the request data (before it's sent)"
msgstr ""
#: ../../guides/ajax.rst:87
msgid "server-side ``\"ajax_response\", \"action:do_math\"`` to filter the response (after the action runs)"
msgstr ""
#: ../../guides/ajax.rst:88
msgid "client-side ``\"ajax_response_data\", \"action:do_math\"`` to filter the response data (before the calling code receives it)"
msgstr ""
#: ../../guides/ajax.rst:89
msgid "CSRF tokens are added to the request data."
msgstr ""
#: ../../guides/ajax.rst:90
msgid "The default method is ``POST``."
msgstr ""
#: ../../guides/ajax.rst:91
msgid "An absolute action URL can be given in place of the action name."
msgstr ""
#: ../../guides/ajax.rst:92
msgid "Using ``forward()`` in an action simply sends the response. The URL given in not returned to the client."
msgstr ""
#: ../../guides/ajax.rst:94
msgid "When setting ``data``, use ``ajax.objectify($form)`` instead of ``$form.serialize()``. Doing so allows the ``ajax_request_data`` plugin hook to fire and other plugins to alter/piggyback on the request."
msgstr ""
#: ../../guides/ajax.rst:98
msgid "Fetching data"
msgstr ""
#: ../../guides/ajax.rst:100
msgid "Consider this PHP script that runs at ``http://example.org/myplugin_time``."
msgstr ""
#: ../../guides/ajax.rst:124
msgid "To fetch its output, use ``ajax.path('<url_path>', options)``."
msgstr ""
#: ../../guides/ajax.rst:140
msgid "Notes for paths:"
msgstr ""
#: ../../guides/ajax.rst:142
msgid "The 3 hooks (see Actions above) will have type ``path:<url_path>``. In this case, \"path:myplugin_time\"."
msgstr ""
#: ../../guides/ajax.rst:143
msgid "If the page handler echoes a regular web page, ``output`` will be a string containing the HTML."
msgstr ""
#: ../../guides/ajax.rst:144
msgid "An absolute URL can be given in place of the path name."
msgstr ""
#: ../../guides/ajax.rst:147
msgid "Fetching views"
msgstr ""
#: ../../guides/ajax.rst:149
msgid "Consider this view:"
msgstr ""
#: ../../guides/ajax.rst:168
msgid "Since it's a PHP file, we must register it for Ajax first:"
msgstr ""
#: ../../guides/ajax.rst:176
msgid "To fetch the view, use ``ajax.view('<view_name>', options)``:"