# 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 1.9\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-21 23:12+0300\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/actions.rst:2
# 11b846775f6441de98b80006065526d6
msgid "Forms + Actions"
msgstr ""

#: ../../guides/actions.rst:4
# e13a1be74a934ecab93400d9c4ef5679
msgid "Create, update, or delete content."
msgstr ""

#: ../../guides/actions.rst:6
# caf853bba2194051a65c9a89ddb536f8
msgid "Elgg forms submit to actions. Actions define the behavior for form submission."
msgstr ""

#: ../../guides/actions.rst:8
# ae2794e699bb49d598fb9ae8ef0d8b7f
msgid "This guide assumes basic familiarity with:"
msgstr ""

#: ../../guides/actions.rst:10
#: ../../guides/themes.rst:9
# 549b678559dc4d7c99b31a4d16e4608b
# b9c85e8b0c2f4757904108f9c205ab3d
msgid ":doc:`/admin/plugins`"
msgstr ""

#: ../../guides/actions.rst:11
#: ../../guides/themes.rst:10
# a60e724372d846b7914186e94706e589
# 720540d9dc884a32a2dfcbb73d3478c0
msgid ":doc:`views`"
msgstr ""

#: ../../guides/actions.rst:12
# 5ef06fb74cd04a1bb43e57f9bd7b7c72
msgid ":doc:`i18n`"
msgstr ""

#: ../../guides/actions.rst:15
# b4e1930bdc564657b0902ac34106f2e3
msgid "Registering actions"
msgstr ""

#: ../../guides/actions.rst:17
# 175996b8351d417386aebd0bc3548120
msgid "Actions must be registered before use. Use ``elgg_register_action`` for this:"
msgstr ""

#: ../../guides/actions.rst:23
# dd5b7a3cc4ba42a0bf2e418a00c30a18
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:27
# 4d373b35305a49cf82a76d6c71f0db34
msgid "Permissions"
msgstr ""

#: ../../guides/actions.rst:28
# 008706b42760486d8122dfc7d22b3753
msgid "By default, actions are only available to logged in users."
msgstr ""

#: ../../guides/actions.rst:30
# cffc4baef6884199861490e96022999c
msgid "To make an action available to logged out users, pass ``“public”`` as the third parameter:"
msgstr ""

#: ../../guides/actions.rst:36
# f047b270e1d3469699ae19449bd5ddf7
msgid "To restrict an action to only administrators, pass ``”admin”`` for the last parameter:"
msgstr ""

#: ../../guides/actions.rst:44
# 96ef27c4732844bf82ffad66d9281bfc
msgid "Implementing actions"
msgstr ""

#: ../../guides/actions.rst:46
# 0959f185bfe3430eab4e004c1e6ee749
msgid "Use the ``get_input`` function to get access to request parameters:"
msgstr ""

#: ../../guides/actions.rst:52
# f2a0f854f7804c2cade64b445f7bbf67
msgid "You can then use the :doc:`database` api to load entities and perform actions on them accordingly."
msgstr ""

#: ../../guides/actions.rst:54
# 94d4611590a74be0ad58bdaae35b109b
msgid "To redirect the page once you've completed your actions, use the ``forward`` function:"
msgstr ""

#: ../../guides/actions.rst:60
# c83274794c74438ab36a2bed0db57fc1
msgid "For example, to forward to the user's profile:"
msgstr ""

#: ../../guides/actions.rst:67
# 36c898d41bdf4102b26a041dc9715fbc
msgid "URLs can be relative to the Elgg root:"
msgstr ""

#: ../../guides/actions.rst:74
# b714c28db66b4bee9a7320ff36b3028d
msgid "Redirect to the referring page by using the ``REFERRER`` constant:"
msgstr ""

#: ../../guides/actions.rst:81
# 0d79662b904343a6a940f4d22de8f201
msgid "Give feedback to the user about the status of the action by using ``system_message`` for positive feedback or ``register_error`` for warnings and errors:"
msgstr ""

#: ../../guides/actions.rst:94
# c04589b55e3b44e9b8a618a47a72f66c
msgid "Customizing actions"
msgstr ""

#: ../../guides/actions.rst:96
# e0ac77f791fb4dbdaee92563c9429af0
msgid "Before executing any action, Elgg triggers a hook:"
msgstr ""

#: ../../guides/actions.rst:102
# 5bfe88d4b0d24fa2bfcee7a9edac77ff
msgid "Where ``$action`` is the action being called. If the hook returns ``false`` then the action will not be executed."
msgstr ""

#: ../../guides/actions.rst:105
# 6b8eada3011b4c08a01c17db44aada0f
msgid "Example: Captcha"
msgstr ""

#: ../../guides/actions.rst:107
# f47bd10068324743b4f3401c73283909
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 ``true`` if valid or ``false`` if not (which prevents the associated action from executing)."
msgstr ""

#: ../../guides/actions.rst:109
# 0afa9cbf42a447e5ae560abcedea5989
msgid "This is done as follows:"
msgstr ""

#: ../../guides/actions.rst:131
# 06fac5901b5a429aa38d56fb7a6abb40
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:134
# ed250c6c998244b6917cea54537e943b
msgid "To output a form, use the elgg_view_form function like so:"
msgstr ""

#: ../../guides/actions.rst:140
# 55d06d4f07914726b1ab26aa6f8ffdd2
msgid "Doing this should generate something like the following markup:"
msgstr ""

#: ../../guides/actions.rst:151
# 274bcc58862442bb80df74426986f0e5
msgid "Elgg does some things automatically for you when you generate forms this way:"
msgstr ""

#: ../../guides/actions.rst:153
# 27abde903dbd4ae3908588d432ee440a
msgid "It sets the action to the appropriate url based on the name of the action you pass to it"
msgstr ""

#: ../../guides/actions.rst:154
# 12a2a6addcbd4c6db0cc6620279b4013
msgid "It adds some anti-csrf tokens (``__elgg_ts`` and ``__elgg_token``) to help keep your actions secure"
msgstr ""

#: ../../guides/actions.rst:155
# 4853dc5c85ff4699b119df2cf4d3e068
msgid "It automatically looks for the body of the form in the ``forms/example`` view."
msgstr ""

#: ../../guides/actions.rst:157
# 7710cc190ff74f189d1a09c5e3a84eed
msgid "Put the content of your form in your plugin’s ``forms/example`` view:"
msgstr ""

#: ../../guides/actions.rst:165
# 08e9be5fac5e441baa04f6eadff122ed
msgid "Now when you call ``elgg_view_form('example')``, Elgg will produce:"
msgstr ""

#: ../../guides/actions.rst:180
# 2ebbc949a5834d31aa94a58d10b16cf7
msgid "Files and images"
msgstr ""

#: ../../guides/actions.rst:182
# 92bbe49766854b44861c7b76780f25b2
msgid "Use the input/file view in your form’s content view."
msgstr ""

#: ../../guides/actions.rst:189
# 2e5a05340e284032b307028bd0f9fd56
msgid "Set the enctype of the form to multipart/form-data:"
msgstr ""

#: ../../guides/actions.rst:197
# 91ca1e8b60a64d57be82245324c769b0
msgid "In your action file, use the ``$_FILES`` global to access the uploaded file:"
msgstr ""

#: ../../guides/actions.rst:204
# 79d32340066d44c5bf276927bc5574f4
msgid "Sticky forms"
msgstr ""

#: ../../guides/actions.rst:206
# e6f31a6373454d75969860dd6feda782
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 1.8 includes helper functions so you can make any form sticky."
msgstr ""

#: ../../guides/actions.rst:209
# ab60d29b162e4dceba61400145b16f53
msgid "Helper functions"
msgstr ""

#: ../../guides/actions.rst:211
# 0b220372a32d48c59d782022c62271b0
msgid "Sticky forms are implemented in Elgg 1.8 by the following functions:"
msgstr ""

#: ../../guides/actions.rst:213
# 91923ef8781d4355809bff5814efd439
msgid "``elgg_make_sticky_form($name)`` Tells the engine to make all input on a form sticky."
msgstr ""

#: ../../guides/actions.rst:216
# 6f1db978173447bdbb3b057e5fe40616
msgid "``elgg_clear_sticky_form($name)`` Tells the engine to discard all sticky input on a form."
msgstr ""

#: ../../guides/actions.rst:219
# dc8711764324477791c5d2f63bc55557
msgid "``elgg_is_sticky_form($name)`` Checks if $name is a valid sticky form."
msgstr ""

#: ../../guides/actions.rst:222
# 54329f561e39422cb4b7b709aeec3eb2
msgid "``elgg_get_sticky_values($name)`` Returns all sticky values saved for $name by elgg_make_sticky_form()."
msgstr ""

#: ../../guides/actions.rst:226
#: ../../guides/i18n.rst:9
# 637cf2b728fd4ebb93f71abe55f28723
# 741bc228fcd94dd5b475c7d72b50057b
msgid "Overview"
msgstr ""

#: ../../guides/actions.rst:228
# 5a783106c719469688c84a2dcf54ba15
msgid "The basic flow of using sticky forms is: Call ``elgg_make_sticky_form($name)`` at the top of actions for forms you want to be sticky. Use ``elgg_is_sticky_form($name)`` and ``elgg_get_sticky_values($name)`` to get sticky values when rendering a form view. 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:234
# 412113be967d4aa1857629e8a21615c0
msgid "Example: User registration"
msgstr ""

#: ../../guides/actions.rst:236
# cf4ba435fee54c8ea30af4b44a7145cd
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:238
# e42d3c7c737a4f4fb1c845730a44fb4f
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:253
# 0e431230a5dc46ea87b65105af254cf0
msgid "The registration action sets creates the sticky form and clears it once the action is completed:"
msgstr ""

#: ../../guides/actions.rst:270
# 70f658a01447468db379a03a9a32763e
msgid "Example: Bookmarks"
msgstr ""

#: ../../guides/actions.rst:272
# c7f92816a0cf4a4fbc7019cdf2a0db85
msgid "The bundled plugin Bookmarks' save form and action is an example of a complex sticky form."
msgstr ""

#: ../../guides/actions.rst:274
# 566ff81b7a5d47c780861e68b84f8f8c
msgid "The form view for the save bookmark action uses ``elgg_extract()`` to pull values from the ``$vars`` array:"
msgstr ""

#: ../../guides/actions.rst:288
# c5d5eeb0bd594d51bb5b86bd8e72ef34
msgid "The page handler scripts prepares the form variables and calls ``elgg_view_form()`` passing the correct values:"
msgstr ""

#: ../../guides/actions.rst:296
# a970f7b9f3854760af00782b635c17b6
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:308
# c897d1c27f684065afcc41ed8360afdd
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:310
# e63011256b474b93b1518c9534fd1ef2
msgid "Defines the input names and default values for form inputs."
msgstr ""

#: ../../guides/actions.rst:311
# ab6e488403f149ba83b4cf5192f29b65
msgid "Extracts the values from a bookmark object if it's passed."
msgstr ""

#: ../../guides/actions.rst:312
# e91dd8e1834b4b40b1db6a2a05e0439b
msgid "Extracts the values from a sticky form if it exists."
msgstr ""

#: ../../guides/actions.rst:314
# 00a76fd088034351ac4191c4e8228d04
msgid "TODO: Include directly from lib/bookmarks.php"
msgstr ""

#: ../../guides/actions.rst:353
# e98c1cdb08d24151bd6e4ebf698e5523
msgid "The save action checks the input, then clears the sticky form upon success:"
msgstr ""

#: ../../guides/actions.rst:367
# 12150cc2ef294029bbe53f94079efeae
msgid "Ajax"
msgstr ""

#: ../../guides/actions.rst:369
# 4eba8731783344f1a3df2fa103b56723
msgid "To call an action via javascript without actually submitting a form, use ``elgg.action``:"
msgstr ""

#: ../../guides/actions.rst:375
# bf8cfcb8137945fd90d54166966904ee
msgid "This does a few things under the hood:"
msgstr ""

#: ../../guides/actions.rst:377
# 8f7910602795493c8aa45f31b01dd437
msgid "Automatically normalizes the request URL to http://localhost/elgg/action/example."
msgstr ""

#: ../../guides/actions.rst:378
# 68e0069bf8f94c4098496520fcd647de
msgid "Adds XSRF tokens to the request body for security"
msgstr ""

#: ../../guides/actions.rst:379
# e32262f89f87442f9c7b21072cdfe98e
msgid "If the action emits any system messages or errors, they will automatically be displayed when the response comes back."
msgstr ""

#: ../../guides/actions.rst:381
# 0194ad4bc7b44796a51ff3454eadd393
msgid "Often you’ll want to do something in response to a successful action:"
msgstr ""

#: ../../guides/actions.rst:394
# 87ebb0df1b934aec97932ff9fa33c1ae
msgid "Security"
msgstr ""

#: ../../guides/actions.rst:395
# c46d9c3d37414032a53c322b57f78d4d
msgid "For enhanced security, all actions require an XSRF token. Calls to action URLs that do not include security tokens will be ignored and a warning will be generated."
msgstr ""

#: ../../guides/actions.rst:397
# 3b1e60d5f02a4a05812f242b0c75bb81
msgid "A few views and functions automatically generate security tokens:"
msgstr ""

#: ../../guides/actions.rst:406
# 5ca729ee407a4a5aa79bbcfbd40fe614
msgid "In rare cases, you may need to generate tokens manually:"
msgstr ""

#: ../../guides/actions.rst:413
# b3cea657391e4bc3bf0813f9345741c8
msgid "You can also access the tokens from javascript:"
msgstr ""

#: ../../guides/actions.rst:420
# 24bc3e047b504c4cb1247954ec59a7fb
msgid "These are refreshed periodically so should always be up-to-date."
msgstr ""

#: ../../guides/database.rst:2
# 372a0db87bc24fe1b0852a252cd2d190
msgid "Database"
msgstr ""

#: ../../guides/database.rst:4
# dcaa5709c47d474a94bd35ef1676ff70
msgid "Persist user-generated content and settings with Elgg's generic storage API."
msgstr ""

#: ../../guides/database.rst:7
# ed77612680db4da1bd79020d011e9768
msgid "Entities"
msgstr ""

#: ../../guides/database.rst:10
# c143e7909f3448c6b52bda3e0606b11d
msgid "Creating an object"
msgstr ""

#: ../../guides/database.rst:12
# c953ea3ab8874f60bcfe50a2f47072f2
msgid "To create an object in your code, you need to instantiate an ``ElggObject``. Setting data is simply a matter of adding instance variables or properties. The built-in properties are:"
msgstr ""

#: ../../guides/database.rst:16
# af9c57c0961848f4b358cf718dc9b72b
msgid "**``guid``** The entity's GUID; set automatically"
msgstr ""

#: ../../guides/database.rst:17
# fb36ff48d7224afbbe2ddfa96add4c2e
msgid "**``owner_guid``** The owning user's GUID"
msgstr ""

#: ../../guides/database.rst:18
# a9cc700fca51462d99d940cd14992774
msgid "**``site_guid``** The owning site's GUID. This is set automatically when an instance of ``ElggObject`` gets created)"
msgstr ""

#: ../../guides/database.rst:20
# c4fca88d46b74a67a08c97f32e566368
msgid "**``subtype``** A single-word arbitrary string that defines what kind of object it is, for example ``blog``"
msgstr ""

#: ../../guides/database.rst:22
# c90897f7b5d14c19b2e9a76a5828e129
msgid "**``access_id``** An integer representing the access level of the object"
msgstr ""

#: ../../guides/database.rst:24
# 7aebe659c1e9483486c054473642ad1e
msgid "**``title``** The title of the object"
msgstr ""

#: ../../guides/database.rst:25
# 2209dd475147432c9a6a834e3bf25de4
msgid "**``description``** The description of the object"
msgstr ""

#: ../../guides/database.rst:27
# ec1e890ce23540b286f90625ad9bd4ab
msgid "The object subtype is a special property. This is an arbitrary string that describes what the object is. For example, if you were writing a blog plugin, your subtype string might be *blog*. It's a good idea to make this unique, so that other plugins don't accidentally try and use the same subtype. For the purposes of this document, let's assume we're building a simple forum. Therefore, the subtype will be *forum*:"
msgstr ""

#: ../../guides/database.rst:41
# fcea32170a444ea7ab599ab6245dc3ad
msgid "``access_id`` is another important property. If you don't set this, your object will be private, and only the creator user will be able to see it. Elgg defines constants for the special values of ``access_id``:"
msgstr ""

#: ../../guides/database.rst:45
# 571fc97952c943fda37b6f832bd20828
msgid "**ACCESS_PRIVATE** Only the owner can see it"
msgstr ""

#: ../../guides/database.rst:46
# ba32efe7a28a4357a53e0fd18d509de6
msgid "**ACCESS_FRIENDS** Only the owner and his/her friends can see it"
msgstr ""

#: ../../guides/database.rst:47
# 0ca04e1df3f648f89c7fc75500e2f5b1
msgid "**ACCESS_LOGGED_IN** Any logged in user can see it"
msgstr ""

#: ../../guides/database.rst:48
# a82da8be310f4ff9abe0c77150cc4248
msgid "**ACCESS_PUBLIC** Even visitors not logged in can see it"
msgstr ""

#: ../../guides/database.rst:50
# 1f5cd57b9dba4dcfa159cd64a1783bc6
msgid "Saving the object will automatically populate the ``$object->guid`` property if successful. If you change any more base properties, you can call ``$object->save()`` again, and it will update the database for you."
msgstr ""

#: ../../guides/database.rst:54
# 65333be4c51d46498de1e29dd270fc94
msgid "You can set metadata on an object just like a standard property. Let's say we want to set the SKU of a product:"
msgstr ""

#: ../../guides/database.rst:61
# cd5efabcc245493a8a108dfe7bae2f80
msgid "If you assign an array, all the values will be set for that metadata. This is how, for example, you set tags."
msgstr ""

#: ../../guides/database.rst:64
# eab9d5c5eca945b5b1227a1d46de645e
msgid "Metadata cannot be persisted to the database until the entity has been saved, but for convenience, ElggEntity can cache it internally and save it when saving the entity."
msgstr ""

#: ../../guides/database.rst:69
# 92b568547b3444099f98e1537283fcc5
msgid "Loading an object"
msgstr ""

#: ../../guides/database.rst:72
# cd87a97a4d3545ae81886f97d8110fc7
msgid "By GUID"
msgstr ""

#: ../../guides/database.rst:81
# f269924376134a12be72d9e14ae53339
msgid "But what if you don't know the GUID? There are several options."
msgstr ""

#: ../../guides/database.rst:84
# 6bb2a7bc98c44cfbbc9d9cdd26baf53e
msgid "By user, subtype or site"
msgstr ""

#: ../../guides/database.rst:86
# c9d06b689e83481b841df8f38b862e60
msgid "If you know the user ID you want to get objects for, or the subtype, or the site, you have several options. The easiest is probably to call the procedural function ``elgg_get_entities``:"
msgstr ""

#: ../../guides/database.rst:98
# 9c1f71cfc9b049b79085caee6719de1d
msgid "This will return an array of ``ElggEntity`` objects that you can iterate through. ``elgg_get_entities`` paginates by default, with a limit of 10; and offset 0."
msgstr ""

#: ../../guides/database.rst:102
# 04980ecc7fb446589fd2f830a3ff0b09
msgid "You can leave out ``owner_guid`` to get all objects and leave out subtype or type to get objects of all types/subtypes."
msgstr ""

#: ../../guides/database.rst:105
# c76eb8bd9bf74572b55d662db2b6f286
msgid "If you already have an ``ElggUser`` – e.g. ``elgg_get_logged_in_user_entity``, which always has the current user's object when you're logged in – you can simply use:"
msgstr ""

#: ../../guides/database.rst:113
# 421170f744e241b6b012c0b9a5d9c8cf
msgid "But what about getting objects with a particular piece of metadata?"
msgstr ""

#: ../../guides/database.rst:116
# 0c568687ae154e1d8eb98a0628f47929
msgid "By metadata"
msgstr ""

#: ../../guides/database.rst:118
# 80562dcdd39b4cde8f1bf042b8206125
msgid "The function ``elgg_get_entities_from_metadata`` allows fetching entities with metadata in a variety of ways."
msgstr ""

#: ../../guides/database.rst:122
#: ../../guides/views.rst:187
# 91347ce95f5247d784ee663726466a99
# 9b4e51224cdd4c98bafe7bf434093fdc
msgid "Displaying entities"
msgstr ""

#: ../../guides/database.rst:124
# 02f73def21bd457884d466c1b221a567
msgid "In order for entities to be displayed in `listing functions`_ you need to provide a view for the entity in the views system."
msgstr ""

#: ../../guides/database.rst:127
# ff4d47bec3d34e09ba6b8f6385871c8a
msgid "To display an entity, create a view EntityType/subtype where EntityType is one of the following:"
msgstr ""

#: ../../guides/database.rst:130
# 0bfb9cfe94da47d9b714c6fd17d6704e
msgid "object: for entities derived from ElggObject user: for entities derived from ElggUser site: for entities derived from ElggSite group: for entities derived from ElggGroup"
msgstr ""

#: ../../guides/database.rst:137
# cbe2456e008a486196af5710e6b33b5e
msgid "A default view for all entities has already been created, this is called EntityType/default."
msgstr ""

#: ../../guides/database.rst:141
#: ../../guides/database.rst:239
# 48d68813459942c98e27a2f76c7fd0c6
# 5859e5b5dc654948bdbc7ababa60d7ec
msgid "Entity Icons"
msgstr ""

#: ../../guides/database.rst:143
# c57fe2ee8f1e4ea6870a3ba6b7cdcd64
msgid "Entities all have a method called ->getIcon($size)."
msgstr ""

#: ../../guides/database.rst:145
# 928c4315de614f619c16b10891a09359
msgid "This method accepts a $size variable, which can be either 'large', 'medium', 'small' or 'tiny'."
msgstr ""

#: ../../guides/database.rst:148
# 7a3364727a8c42e28e4b461849bd415a
msgid "The method triggers a `plugin hook`_ - 'entity:icon:url'. This is passed the following parameters:"
msgstr ""

#: ../../guides/database.rst:151
# d0adf50104a648e08343446f99bff516
msgid "'entity' : The entity in question 'viewtype' : The type of `view`_ e.g. 'default' or 'mobile'. 'size' : The size."
msgstr ""

#: ../../guides/database.rst:155
# ccdb52cb198a4e4aa1d23ae5894dc8c8
msgid "The hook should return a url."
msgstr ""

#: ../../guides/database.rst:157
# 8592d9a67e394f75b6a68bb2c675bb09
msgid "Hooks have already been defined, and will look in the following places for default values (in this order):"
msgstr ""

#: ../../guides/database.rst:163
# 1fd27148f48a47c3a33f5501e588e778
msgid "views/$viewtype/graphics/icons/$type/$subtype/$size.png"
msgstr ""

#: ../../guides/database.rst:164
# 1cfb4aef1cc8444bb3c2a529292eead6
msgid "views/$viewtype/graphics/icons/$type/default/$size.png"
msgstr ""

#: ../../guides/database.rst:165
# ff7db3564035441e960502b72a93aa9d
msgid "views/$viewtype/graphics/icons/default/$size.png"
msgstr ""

#: ../../guides/database.rst:167
# a069f296ddac4121bbc9989dcd58d099
msgid "Where"
msgstr ""

#: ../../guides/database.rst:169
# aee86d882edc496e9871b0c07dda624d
msgid "$viewtype : The type of `view`_ e.g. 'default' or 'mobile'. $type : The type of entity - group, site, user, object. $subtype : Subtype of $type, e.g. blog, page. $size : Size - 'large', 'medium', 'small' or 'tiny'"
msgstr ""

#: ../../guides/database.rst:175
# 64d882b045974b12ab75f4c3248bdb34
msgid "Adding, reading and deleting annotations"
msgstr ""

#: ../../guides/database.rst:177
# e3c205e2e2884b8e8fd87fec40798318
msgid "Annotations could be used, for example, to track ratings. To annotate an entity you can use the object's ``annotate()`` method. For example, to give a blog post a rating of 5, you could use:"
msgstr ""

#: ../../guides/database.rst:187
# 163120d34cd9453a87658f041a8686f1
msgid "To retrieve the ratings on the blog post, use ``$blogpost->getAnnotations('rating')`` and if you want to delete an annotation, you can operate on the ``ElggAnnotation`` class, eg ``$annotation->delete()``."
msgstr ""

#: ../../guides/database.rst:192
# 04908fe5baf644e6b6ef9316814a629f
msgid "Retrieving a single annotation can be done with ``get_annotation()`` if you have the annotation's ID. If you delete an ElggEntity of any kind, all its metadata, annotations, and relationships will be automatically deleted as well."
msgstr ""

#: ../../guides/database.rst:198
# 724ffba4be704869ba3f599f2d7cbe3a
msgid "Extending ElggEntity"
msgstr ""

#: ../../guides/database.rst:200
# f62a25a4ff1541e38c07328103c47836
msgid "If you derive from one of the Elgg core classes, you'll need to tell Elgg how to properly instantiate the new type of object so that get\\_entity() et al. will return the appropriate PHP class. For example, if I customize ElggGroup in a class called \"Committee\", I need to make Elgg aware of the new mapping. Following is an example class extension:"
msgstr ""

#: ../../guides/database.rst:230
# fac7cdfc1064481f96b868f1008ea4f3
msgid "Now if you invoke ``get_entity()`` with the GUID of a committee object, you'll get back an object of type Committee."
msgstr ""

#: ../../guides/database.rst:233
# 1ea3cbc508d14d8783e3129338c7091c
msgid "This template was extracted from the definition of ElggFile."
msgstr ""

#: ../../guides/database.rst:236
# bc0ad90103e0419faab548ee469473e9
msgid "Advanced features"
msgstr ""

#: ../../guides/database.rst:241
# 4741352d948e49babef1d33166176535
msgid "A url for an icon representing a given entity can be retrieved by the ``getIcon()`` method."
msgstr ""

#: ../../guides/database.rst:244
# a2e03e9b125c47089845e3be1e8195c8
msgid "This is handy as it provides a generic interface which allows the Elgg framework to draw an icon for your data - it also allows you to override icons for existing data types - for example providing `Gravatar support for user icons`_."
msgstr ""

#: ../../guides/database.rst:252
# 21604de10e104826b96b9adddb97f3c3
msgid "If no icon can be provided for the data type a default one is used, defined either by your current theme or the Elgg default."
msgstr ""

#: ../../guides/database.rst:256
# 5e2d0af240114809b481c144f34a4c73
msgid "Overriding the url for a specific instance"
msgstr ""

#: ../../guides/database.rst:258
# d8b46cc95e72402a993edf436d251035
msgid "To override the icon of a specific instance of an entity in a non-permanent and one off way, you can use the entity's ``setIcon()`` method."
msgstr ""

#: ../../guides/database.rst:263
# 113f884a68c245e2926ec91cc247e33f
msgid "Replacing icons via the views interface"
msgstr ""

#: ../../guides/database.rst:265
# dcad279774da4affb6b210c238ecab20
msgid "If you want to provide an icon for a new data type, or override an existing one you can do this simply through the views interface."
msgstr ""

#: ../../guides/database.rst:268
# f42f570406b9469a821d40fc69bb7cbd
msgid "Views are in the format:"
msgstr ""

#: ../../guides/database.rst:270
# f4556e7a6ede4101a14ef188bc9617f9
msgid "``icon/``\\ **``[TYPE]``**\\ ``/``\\ **``[SUBTYPE]``**\\ ``/``\\ **``[SIZE]``**"
msgstr ""

#: ../../guides/database.rst:274
# e6bd6414eef2487c9fd663aed3e920fe
msgid "Where:"
msgstr ""

#: ../../guides/database.rst:276
# ecefbc4409924cdfbea2569a5f768f98
msgid "[TYPE]: is the elgg type of the object - \"user\", \"group\", \"object\" or \"site\". [SUBTYPE]: is the specific subtype of the object, or \"default\" for the default icon for the given type. [SIZE]: the size, one of the following \"master\", \"large\", \"medium\", \"small\", \"topbar\" or \"tiny\"."
msgstr ""

#: ../../guides/database.rst:283
# 501b5feb9ff04c9db9fe7e5dcd65eb38
msgid "This view should contain the URL to the image only."
msgstr ""

#: ../../guides/database.rst:286
# f1b36841de6a4f509e4886fb87c4f19b
msgid "Overriding icons via a handler"
msgstr ""

#: ../../guides/database.rst:288
# 5fb9bce5415d46d8ac47c7086882966a
msgid "The final way to replace icons is via a handler to a plugin hook."
msgstr ""

#: ../../guides/database.rst:290
# 3c1ab6101bdf45b8afdc9b529eb9e634
msgid "This method lets you perform some additional logic in order to decide better which url to return."
msgstr ""

#: ../../guides/database.rst:293
# 969e39e9d5874a50a9500f69c7708283
msgid "The hook triggered is:"
msgstr ""

#: ../../guides/database.rst:295
# 6d7baa18b382490cb2e30100b2b89995
msgid "``trigger_plugin_hook('entity:icon:url', $entity->getType(), array('entity' => $entity, 'viewtype' => $viewtype, 'size' => $size));``"
msgstr ""

#: ../../guides/database.rst:296
# 7dce46a610f44b20908ceac75c2b7073
msgid "``       ``"
msgstr ""

#: ../../guides/database.rst:299
# 418c5addaeb847b98182657869728a06
msgid "Entity URLs"
msgstr ""

#: ../../guides/database.rst:301
# 97fc8d19e20c4184af94299b562c3560
msgid "Entity urls are provided by the ``getURL()`` interface and provide the Elgg framework with a common way of directing users to the appropriate display handler for any given object."
msgstr ""

#: ../../guides/database.rst:305
# d5d5f1a984f04d4983d9e98dc15acdbc
msgid "For example, a profile page in the case of users."
msgstr ""

#: ../../guides/database.rst:307
# a4ace646c81d4f77a12763e9f209ab45
msgid "The url is set using the ``elgg\\_register\\_entity\\_url\\_handler()`` function. The function you register must return the appropriate url for the given type - this itself can be an address set up by a page handler."
msgstr ""

#: ../../guides/database.rst:314
# 12c5456a9ec2464ebc550f3c5955e968
msgid "The default handler is to use the default export interface."
msgstr ""

#: ../../guides/database.rst:317
# ecf912268f564139b3e7bd762c1b9e90
msgid "Pre-1.8 Notes"
msgstr ""

#: ../../guides/database.rst:319
# 55cb28f4fdd642a891495552cad2cf77
msgid "update\\_subtype(): This function is new in 1.8. In prior versions, you would need to edit the database by hand if you updated the class name associated with a given subtype."
msgstr ""

#: ../../guides/database.rst:323
# 2faddfa352ad45c596a6c4657e7294a9
msgid "elgg\\_register\\_entity\\_url\\_handler(): This function is new in 1.8. It deprecates register\\_entity\\_url\\_handler(), which you should use if developing for a pre-1.8 version of Elgg."
msgstr ""

#: ../../guides/database.rst:327
# eec0b308ed6a4776b8180df4b2bc310c
msgid "elgg\\_get\\_entities\\_from\\_metadata(): This function is new in 1.8. It deprecates get\\_entities\\_from\\_metadata(), which you should use if developing for a pre-1.8 version of Elgg."
msgstr ""

#: ../../guides/events-list.rst:2
# 6b76a4a203134a6ca2ccd0fc0d2c8e78
msgid "List of events in core"
msgstr ""

#: ../../guides/events-list.rst:8
# 79f1f3a5dcb94b0a82e90573cde78d34
msgid "System events"
msgstr ""

#: ../../guides/events-list.rst:10
# dbfcfb12c1db4b9184b2d737a801217a
msgid "**boot, system**"
msgstr ""

#: ../../guides/events-list.rst:11
# e310efe122af49f788b9af763ef3370e
msgid "first event triggered. Triggered before plugins have been loaded."
msgstr ""

#: ../../guides/events-list.rst:13
# 97cb32a3a2074bdf98a06577b89a740f
msgid "**plugins_boot, system**"
msgstr ""

#: ../../guides/events-list.rst:14
# a2e16bda665349feb44e32d47a814116
msgid "triggered just after the plugins are loaded. Rarely used. init, system is used instead."
msgstr ""

#: ../../guides/events-list.rst:16
# 2bd77b9525ee4e2abf4ebbbafb498626
msgid "**init, system**"
msgstr ""

#: ../../guides/events-list.rst:17
# 694fde3b73c643d5925fc2d9d0b3c03f
msgid "plugins tend to use this event for initialization (extending views, registering callbacks, etc.)"
msgstr ""

#: ../../guides/events-list.rst:19
# 0525441232dd4e0d8712db4486e5babd
msgid "**ready, system**"
msgstr ""

#: ../../guides/events-list.rst:21
# e93719106d4145efb0963d67babad46f
msgid "**pagesetup, system**"
msgstr ""

#: ../../guides/events-list.rst:22
# 1726362dab19475bb774a4e40c67bfbc
msgid "called just before the first content is produced. Is triggered by elgg_view()."
msgstr ""

#: ../../guides/events-list.rst:27
# 76dae6933c0245a6bb7b601bad1ffbda
msgid "**shutdown, system**"
msgstr ""

#: ../../guides/events-list.rst:25
# 35a8bc304fc147849f452f35051ac13a
msgid "triggered after the page has been sent to the user. Expensive operations could be done here and not make the user wait. Note: Depending upon your server configuration the PHP output might not be shown until after the process is completed. This means that any long-running processes will still delay the page load."
msgstr ""

#: ../../guides/events-list.rst:30
# c8b94b237ed741f3bf2365a797c50a7f
msgid "**log, systemlog**"
msgstr ""

#: ../../guides/events-list.rst:32
# 25a10c991da84459b4aa19011026b6dd
msgid "**upgrade, system**"
msgstr ""

#: ../../guides/events-list.rst:34
# fec8ee94b9094731bae66280a72a5b6c
msgid "**upgrade, upgrade**"
msgstr ""

#: ../../guides/events-list.rst:36
# 706b4369379c46a8a52d02e7ab32da1e
msgid "**activate, plugin**"
msgstr ""

#: ../../guides/events-list.rst:37
# 2f26ff955d2d4d9195a8bb9eea8f745d
msgid "return false to prevent activation of the plugin."
msgstr ""

#: ../../guides/events-list.rst:39
# 16c96c3a50774c0eb342c7472063720c
msgid "**deactivate, plugin**"
msgstr ""

#: ../../guides/events-list.rst:40
# 3214c0a015b54cc19bb7db67000ea976
msgid "return false to prevent deactivation of the plugin."
msgstr ""

#: ../../guides/events-list.rst:42
# 466153eb077e4cc2865b598fa6dd057f
msgid "**init:cookie, <name>**"
msgstr ""

#: ../../guides/events-list.rst:43
# 50e6d22921824cbb8957fa216d1296e1
msgid "return false to override setting a cookie."
msgstr ""

#: ../../guides/events-list.rst:46
# 81cc762523c6408aa7fd6426d24f591c
msgid "User events"
msgstr ""

#: ../../guides/events-list.rst:48
# a88539dca27d4e8f87d624a879d4cf0a
msgid "**login, user**"
msgstr ""

#: ../../guides/events-list.rst:49
# 941b3a375e104d5ca4b1ce63882e1524
msgid "triggered during login. Returning false prevents the user from logging"
msgstr ""

#: ../../guides/events-list.rst:51
# f420098b156f4fcca6f09b0d67037649
msgid "**logout, user**"
msgstr ""

#: ../../guides/events-list.rst:52
# ad8e3f5dd99845a992d1f88cc413c450
msgid "triggered during logout. Returning false should prevent the user from logging out."
msgstr ""

#: ../../guides/events-list.rst:56
# 6e22d67409e948ef84a304d8be8fc7e5
msgid "**validate, user**"
msgstr ""

#: ../../guides/events-list.rst:55
# 6e5114b72d234addafa02160abb85746
msgid "when a user registers, the user's account is disabled. This event is triggered to allow a plugin to determine how the user should be validated (for example, through an email with a validation link)."
msgstr ""

#: ../../guides/events-list.rst:59
# 0d44bdd20fa6425da0da78a0509a9feb
msgid "**profileupdate, user**"
msgstr ""

#: ../../guides/events-list.rst:60
# 12790fe6b2eb4173883c6c3d0badd8b1
msgid "user has changed profile"
msgstr ""

#: ../../guides/events-list.rst:62
# 4c01d706802646d1a411b96616ce4ff8
msgid "**profileiconupdate, user**"
msgstr ""

#: ../../guides/events-list.rst:63
# 938a272754144a5982b486c66448b625
msgid "user has changed profile icon"
msgstr ""

#: ../../guides/events-list.rst:65
# 7dbe7d3e75cd44f9bcd4332815e93556
msgid "**ban, user**"
msgstr ""

#: ../../guides/events-list.rst:66
# 69536202a4404480b90139e79b8eb576
msgid "return true to ban user"
msgstr ""

#: ../../guides/events-list.rst:68
# 8f8c7f83d91446a083ecc5a5830d928e
msgid "**unban, user**"
msgstr ""

#: ../../guides/events-list.rst:69
# a2b9dba2702f482fac583ece60902fc0
msgid "return true to unban user"
msgstr ""

#: ../../guides/events-list.rst:71
# cd2be7463b8d47f1bab18e00d28115ed
msgid "**make_admin, user**"
msgstr ""

#: ../../guides/events-list.rst:73
# 623777c682de46afa715f4e801d55283
msgid "**remove_admin, user**"
msgstr ""

#: ../../guides/events-list.rst:76
# 0dbddd97dfbd4af6a502d577767b64e9
msgid "Relationship events"
msgstr ""

#: ../../guides/events-list.rst:79
# a9815cce6b33498496d4c506c614afdf
msgid "**create, <relationship>**"
msgstr ""

#: ../../guides/events-list.rst:79
# 8d93bac6b0734c02a79608c0e7da913f
msgid "called after the relationship has been created. Returning false deletes the relationship that was just created."
msgstr ""

#: ../../guides/events-list.rst:83
# 5c7e29d34d6945ceb684890b77506a00
msgid "**delete, <relationship>**"
msgstr ""

#: ../../guides/events-list.rst:83
# dd9e3459d0794731b756f3923bdfe654
msgid "called before the relationship is deleted. Return false to prevent it from being deleted."
msgstr ""

#: ../../guides/events-list.rst:86
# 7cd0099b4a724609b3e0d8edf34d47b2
msgid "**join, group**"
msgstr ""

#: ../../guides/events-list.rst:87
# 3e3beb5eba89432696dcdf38f22455d4
msgid "user joined a group"
msgstr ""

#: ../../guides/events-list.rst:89
# 3987f447b167497998d87e1b4b6db15f
msgid "**leave, group**"
msgstr ""

#: ../../guides/events-list.rst:90
# bf026fb0b6084220b1cb1fa345a357d1
msgid "user left a group"
msgstr ""

#: ../../guides/events-list.rst:93
# 9c74ff96e4454f43931ee28ae7771a0d
msgid "Entity events"
msgstr ""

#: ../../guides/events-list.rst:96
# 4adeab813d264e8cb64fe13356c1e6d1
msgid "**create, <entity type>**"
msgstr ""

#: ../../guides/events-list.rst:96
# 7e2f452685b544cd8e7e50b4024f3238
msgid "called for user, group, object, and site entities after creation. Return true or entity is deleted."
msgstr ""

#: ../../guides/events-list.rst:103
# ca0bf3447a2b48efaea778311525dd94
msgid "**update, <entity type>**"
msgstr ""

#: ../../guides/events-list.rst:100
# e0aed757448b4855bce04faba0361136
msgid "called after group update and return false to delete group. Called after object update and return false to delete the object. Called after site update and return false to delete site. Called after user update and returning false deletes the user. Called before entity update and returning false prevents update."
msgstr ""

#: ../../guides/events-list.rst:106
# 2aaf2555d7fd422995670701590a7bf8
msgid "**delete, <entity type>**"
msgstr ""

#: ../../guides/events-list.rst:107
# 417e13d98f9b4dcda225fd16f62b6c4d
msgid "called before entity deletion and returning false prevents deletion."
msgstr ""

#: ../../guides/events-list.rst:109
# 850a6c5182b646be972a7faa93da8418
msgid "**disable, <entity type>**"
msgstr ""

#: ../../guides/events-list.rst:110
# 725cf4806dfe40a5bac1dc2b566d85c7
msgid "return false to prevent disable"
msgstr ""

#: ../../guides/events-list.rst:112
# 208f7c8abab8466ab687ff9568f9c226
msgid "**enable, <entity type>**"
msgstr ""

#: ../../guides/events-list.rst:113
# c127c2956dd449409975ff824da54bdb
msgid "return false to prevent enable"
msgstr ""

#: ../../guides/events-list.rst:116
# f3158ad7649b42f89f16eccdcec95082
msgid "Metadata events"
msgstr ""

#: ../../guides/events-list.rst:119
# 8706d05651a44b71885cea853f565ddb
msgid "**create, metadata**"
msgstr ""

#: ../../guides/events-list.rst:119
# 6dc3d1bd88314a78a51692d1599eb024
msgid "called after the metadata has been created. Return false to delete the metadata that was just created."
msgstr ""

#: ../../guides/events-list.rst:123
# 1a9c1e926a6d477c834ad23909259ff5
msgid "**update, metadata**"
msgstr ""

#: ../../guides/events-list.rst:123
# 5fc36beb8b0e4aa1aa1ea4ef5fe24bee
msgid "called after the metadata has been updated. Return false to delete the metadata. (That doesn't sound like a good idea)"
msgstr ""

#: ../../guides/events-list.rst:126
# 1e4a7faa64c9460a91296413a44e3410
msgid "**delete, metadata**"
msgstr ""

#: ../../guides/events-list.rst:127
# 08d902577db341bd860b1a0e959a742a
msgid "called before metadata is deleted. Return false to prevent deletion."
msgstr ""

#: ../../guides/events-list.rst:130
# 103f00702ba94534bc9708bcc687d34e
msgid "Annotation events"
msgstr ""

#: ../../guides/events-list.rst:133
# 2a726d760226462d87fcd4fedfee8918
msgid "**annotate, <entity type>**"
msgstr ""

#: ../../guides/events-list.rst:133
# e031a88769f94e269a9fc0a215b225ae
msgid "called before the annotation has been created. Return false to prevent annotation of this entity."
msgstr ""

#: ../../guides/events-list.rst:137
# e7560f88d37844e8aa06b952e55deba0
msgid "**create, annotation**"
msgstr ""

#: ../../guides/events-list.rst:137
# a5fd42b888e24302ab5012df35c61dfb
msgid "called after the annotation has been created. Return false to delete the annotation."
msgstr ""

#: ../../guides/events-list.rst:141
# e7f1d4711efa467c980fff98a71c717b
msgid "**update, annotation**"
msgstr ""

#: ../../guides/events-list.rst:141
# 0571b1aa4b2140789663d1c392d0ecdd
msgid "called after the annotation has been updated. Return false to delete the annotation. (That doesn't sound like a good idea)"
msgstr ""

#: ../../guides/events-list.rst:144
# f3ac11db0b39415faaf941fd93a003db
msgid "**delete, annotation**"
msgstr ""

#: ../../guides/events-list.rst:145
# 0f576eb343ec4133816d83c728ce28ee
msgid "called before annotation is deleted. Return false to prevent deletion."
msgstr ""

#: ../../guides/events-list.rst:148
# e8422ffde1864a86b5c2110dc307b0b3
msgid "Notes"
msgstr ""

#: ../../guides/events-list.rst:150
# 92c0e5f5087b464a8153a854a5d1796d
msgid "Because of bugs in the Elgg core, some events may be thrown more than once on the same action. update, object is an example of an event that is thrown twice."
msgstr ""

#: ../../guides/hooks-list.rst:2
# 02f228fd622e41e9ad947542f1cf6e34
msgid "List of plugin hooks in core"
msgstr ""

#: ../../guides/hooks-list.rst:8
# 7282ee15f4e8481b9867f53568cc4c40
msgid "System hooks"
msgstr ""

#: ../../guides/hooks-list.rst:10
# 7f0d0294fb5a4615ab5442fc5a70cfb3
msgid "**index, system**"
msgstr ""

#: ../../guides/hooks-list.rst:12
# 25bcf5e568b6435591048cc6785129c8
msgid "**email, system**"
msgstr ""

#: ../../guides/hooks-list.rst:14
# 3f8727518a9f4ff9a0e47ded967279d0
msgid "**page_owner, system**"
msgstr ""

#: ../../guides/hooks-list.rst:16
# a072a2c682a14b73ad0f1036acde5573
msgid "**siteid, system**"
msgstr ""

#: ../../guides/hooks-list.rst:18
# 2db0397c182048a7b655d268f8bcbf88
msgid "**gc, system**"
msgstr ""

#: ../../guides/hooks-list.rst:20
# c257318f705a449aa9ff5532a5c13bc1
msgid "**unit_test, system**"
msgstr ""

#: ../../guides/hooks-list.rst:22
# 6f06bf31ed3b4b5397024310fd17ccc5
msgid "**diagnostics:report, system**"
msgstr ""

#: ../../guides/hooks-list.rst:24
#: ../../guides/hooks-list.rst:265
# b8f54feaabb24181a25404d6d6d8d3cf
# 09e67f5a08bc42cf8878bbeeba7db185
msgid "**search_types, get_types**"
msgstr ""

#: ../../guides/hooks-list.rst:26
# ea895d2056fd41bf81ca91fe441a3771
msgid "**cron, <period>**"
msgstr ""

#: ../../guides/hooks-list.rst:28
# fbd07f4485294c0d9a7703f595e97108
msgid "**validate, input**"
msgstr ""

#: ../../guides/hooks-list.rst:30
# 0ff708fdc11f45ca8115085db65ba3f9
msgid "**geocode, location**"
msgstr ""

#: ../../guides/hooks-list.rst:32
# f09d078de5e24448a66cd945c044ccb1
msgid "**diagnostics:report, all**"
msgstr ""

#: ../../guides/hooks-list.rst:34
# efa7ebbe139f48f2849577ddebe9af93
msgid "**debug, log**"
msgstr ""

#: ../../guides/hooks-list.rst:36
# 6426ce4960704ca8a2b8cf9e942c1b9e
msgid "**format, friendly:title**"
msgstr ""

#: ../../guides/hooks-list.rst:38
# 15f52cde260e401c98ae81f931314bce
msgid "**format, friendly:time**"
msgstr ""

#: ../../guides/hooks-list.rst:40
# 44339c0acf70479ab8c3000bc975400b
msgid "**format, strip_tags**"
msgstr ""

#: ../../guides/hooks-list.rst:44
# 811ddca3d9d04878a4f311ff084d061c
msgid "**output:before, page**"
msgstr ""

#: ../../guides/hooks-list.rst:43
# 39dd3d1ecb8a4d29aab2dbfe6c9a7277
msgid "In elgg_view_page(), this filters $vars before it's passed to the page shell view (page/\\*). To stop sending the X-Frame-Options header, unregister the handler _elgg_views_send_header_x_frame_options() from this hook."
msgstr ""

#: ../../guides/hooks-list.rst:47
# f9cf05629a78467fb79edb6cb2411f4d
msgid "**output, page**"
msgstr ""

#: ../../guides/hooks-list.rst:48
# b58216974c0a4bb688723c14a7b8b308
msgid "In elgg_view_page(), this filters the output return value"
msgstr ""

#: ../../guides/hooks-list.rst:50
# 7dc17cc80ca6438eb1ef6f02ae590e9e
msgid "**register, menu:<menu_name>**"
msgstr ""

#: ../../guides/hooks-list.rst:52
# e87a696696164b169119f4c613f6fb07
msgid "**prepare, menu:<menu_name>**"
msgstr ""

#: ../../guides/hooks-list.rst:54
# 55502b97283a4e8baca32ef822600523
msgid "**add, river**"
msgstr ""

#: ../../guides/hooks-list.rst:57
# 27d2fff1eda5476d8a17b1e85d189712
msgid "User hooks"
msgstr ""

#: ../../guides/hooks-list.rst:59
# 315250dd532e4afe8ef7a3fbd2b7a689
msgid "**usersettings:save, user**"
msgstr ""

#: ../../guides/hooks-list.rst:61
# 6b8295e913f54387955b9c4306535429
msgid "**unvalidated_login_attempt, user**"
msgstr ""

#: ../../guides/hooks-list.rst:63
# f5b8975c84d14319824bb05e82beceae
msgid "**unvalidated_requestnewpassword, user**"
msgstr ""

#: ../../guides/hooks-list.rst:65
#: ../../guides/hooks-list.rst:121
# b19365bbf1404447a42e6b5bc6ace465
# f1a1a7771e704d9c874d8de3a9f1ab3b
msgid "**access:collections:write, user**"
msgstr ""

#: ../../guides/hooks-list.rst:67
# 84797e13d3ed489985d942fd5a6da498
msgid "**registeruser:validate:username, all**"
msgstr ""

#: ../../guides/hooks-list.rst:69
# 340fcad839a649babb2e4ae040c48488
msgid "**registeruser:validate:password, all**"
msgstr ""

#: ../../guides/hooks-list.rst:71
# e83ec2dac3d344c994941c4a5a9d3141
msgid "**registeruser:validate:email, all**"
msgstr ""

#: ../../guides/hooks-list.rst:73
#: ../../guides/hooks-list.rst:115
# 76d8ee2ccd684f8fa901df9fec897711
# 0d519b6085124f5d969999f52da76341
msgid "**session:get, <key>**"
msgstr ""

#: ../../guides/hooks-list.rst:75
# f7eb18d9c06a49fbbcc76cc4dbbdb27d
msgid "**register, user**"
msgstr ""

#: ../../guides/hooks-list.rst:77
# 5bb7e441aad94f17bac56de5a7ce89f1
msgid "**login:forward, user**"
msgstr ""

#: ../../guides/hooks-list.rst:78
# c1110f1f14ab47ae8f2e7058f89b14cf
msgid "Filters the URL to which the user will be forwarded after login"
msgstr ""

#: ../../guides/hooks-list.rst:81
# 46e912c4d03642c0abf5d7942274a5f0
msgid "Object hooks"
msgstr ""

#: ../../guides/hooks-list.rst:83
# f93513cb315b48eb83cd39324b03edeb
msgid "**comments, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:85
# 9a8639c9e7524f27b0a60182192d7283
msgid "**comments:count, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:87
# 65cc9f55c84e484c89af3750a6e48eaf
msgid "**likes:count, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:90
# ffaf0e2157b64d80b801ec1b89703fe0
msgid "Action hooks"
msgstr ""

#: ../../guides/hooks-list.rst:92
# 3398399ed5cd41ffaf2ec7269d1aaa07
msgid "**action, <action>**"
msgstr ""

#: ../../guides/hooks-list.rst:94
# a5cd27c243ce4e05b9932bb91bce8905
msgid "**action_gatekeeper:permissions:check, all**"
msgstr ""

#: ../../guides/hooks-list.rst:96
# d0afdd1ef95444818b6572c3d4b50fce
msgid "**forward, <reason>**"
msgstr ""

#: ../../guides/hooks-list.rst:99
# 1703fa34a7d5485e9f2397e9202dc945
msgid "Permission hooks"
msgstr ""

#: ../../guides/hooks-list.rst:101
# aee2daccdde64a36b55a2c8a2d75a335
msgid "**container_permissions_check, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:103
# f513d0f3f990482f878077da27ceadce
msgid "**permissions_check, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:105
# 50107278a2a743f4816d493dae388ee0
msgid "**permissions_check, widget_layout**"
msgstr ""

#: ../../guides/hooks-list.rst:107
# 038df5e5d31a44189572d954a94d2c68
msgid "**permissions_check:metadata, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:109
# d709614542e6432ea2defa2005b70c33
msgid "**permissions_check:comment, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:111
# d7c8d7b684b84602a05210ab3268beab
msgid "**permissions_check:annotate**"
msgstr ""

#: ../../guides/hooks-list.rst:113
# 8987b3b6f4ea4653a60649283ee228ed
msgid "**fail, auth**"
msgstr ""

#: ../../guides/hooks-list.rst:117
# dc075e1bce50468499815f67b6f1aedb
msgid "**api_key, use**"
msgstr ""

#: ../../guides/hooks-list.rst:119
# 3db8855cbc4544f2aaf784f376500d33
msgid "**access:collections:read, user**"
msgstr ""

#: ../../guides/hooks-list.rst:123
# 0851e0b948df4c02a822a2c90bd7c344
msgid "**access:collections:addcollection, collection**"
msgstr ""

#: ../../guides/hooks-list.rst:125
# dce0f26ca3424833aab04baaf042cdcb
msgid "**access:collections:deletecollection, collection**"
msgstr ""

#: ../../guides/hooks-list.rst:127
# 7902517f510d446890aa55d9cba4934a
msgid "**access:collections:add_user, collection**"
msgstr ""

#: ../../guides/hooks-list.rst:129
# 82cde4490c4642d2ada33071e12b2f36
msgid "**access:collections:remove_user, collection**"
msgstr ""

#: ../../guides/hooks-list.rst:131
# 3a8e8bf9e3fe40f8bd3e8b34bada9947
msgid "**get_sql, access**"
msgstr ""

#: ../../guides/hooks-list.rst:132
# 2293a1a372c04bc48a570e1bedc05290
msgid "Filters the SQL clauses used in _elgg_get_access_where_sql()"
msgstr ""

#: ../../guides/hooks-list.rst:135
#: ../../guides/views.rst:2
# afc3b04847504432beacda203cb23869
# 8544bc0345a6464a9ac204f787d1fff7
msgid "Views"
msgstr ""

#: ../../guides/hooks-list.rst:137
# 2eb4d5925a374196a6c99edacd7f2e2d
msgid "**view, <view_name>**"
msgstr ""

#: ../../guides/hooks-list.rst:138
# 3e14f0b24be94b2fbc9ac7b4fe5a50f4
msgid "Filters the returned content of views"
msgstr ""

#: ../../guides/hooks-list.rst:140
# c8b0ed6f543f40fa9354832f7fa4debe
msgid "**layout, page**"
msgstr ""

#: ../../guides/hooks-list.rst:141
# 61f77697595d4280b6ce93304522eb7a
msgid "In elgg_view_layout(), filters the layout name"
msgstr ""

#: ../../guides/hooks-list.rst:143
# 20e4746157414aaa9509aab25fab8896
msgid "**display, view**"
msgstr ""

#: ../../guides/hooks-list.rst:144
# 99556e7101ac43389dd56a0acf63245e
msgid "Deprecated in 1.8! Use view, (view) instead"
msgstr ""

#: ../../guides/hooks-list.rst:146
# c486cb1824c24e2083e9f431b9a15188
msgid "**shell, view**"
msgstr ""

#: ../../guides/hooks-list.rst:147
# c778466bdf9545b38b4d2a1491781b25
msgid "In elgg_view_page(), filters the page shell name"
msgstr ""

#: ../../guides/hooks-list.rst:149
# b688585248154e82a19a0097ccf1f55c
msgid "**head, page**"
msgstr ""

#: ../../guides/hooks-list.rst:150
# 9fd9340635794518a6e95ed6e4e94761
msgid "In elgg_view_page(), filters $vars['head']"
msgstr ""

#: ../../guides/hooks-list.rst:153
# 784d4b92e8014af3b4454b5d426c86f5
msgid "Other"
msgstr ""

#: ../../guides/hooks-list.rst:155
# 879fdaab638b46de965f1c69257b1d1c
msgid "**default, access**"
msgstr ""

#: ../../guides/hooks-list.rst:156
# 5a71ea36eb6b4720b31888344cec42cc
msgid "In get_default_access(), filters the return value"
msgstr ""

#: ../../guides/hooks-list.rst:158
# 6c3e5a83ce50449d83dd9f8efcc70b4c
msgid "**entity:icon:url, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:160
# 3b771ca01a8b4a3c8dbc1fc9a40dce8e
msgid "**file:icon:url, override**"
msgstr ""

#: ../../guides/hooks-list.rst:162
# 4638a087143548dc97f1b6e142244a82
msgid "**entity:annotate, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:164
# cb82f2b6ca29407f949184223c96db12
msgid "**import, all**"
msgstr ""

#: ../../guides/hooks-list.rst:166
# 31f90887825445b786ec9b8ea8c43d7b
msgid "**export, all**"
msgstr ""

#: ../../guides/hooks-list.rst:168
# c46dd49faa2d4f2bb100e5cc9980e539
msgid "**object:notifications, <object_subtype>**"
msgstr ""

#: ../../guides/hooks-list.rst:170
# 25a80952c79946cabbad4e4d88474a06
msgid "**notify:entity:message, <entity_type> or is it <object_subtype>**"
msgstr ""

#: ../../guides/hooks-list.rst:172
# 7e1d819ec1924fdd98d2e66da6a6167f
msgid "**plugin:usersetting, user**"
msgstr ""

#: ../../guides/hooks-list.rst:174
# c220c59a30894a0791e8d76c0c23e1d4
msgid "**plugin:setting, plugin**"
msgstr ""

#: ../../guides/hooks-list.rst:176
# 8542464b2795429bb9a369a7931ff18e
msgid "**profile:fields, group**"
msgstr ""

#: ../../guides/hooks-list.rst:178
# cd291279006c426b8cf95436bdad394c
msgid "**profile:fields, profile**"
msgstr ""

#: ../../guides/hooks-list.rst:180
# 688b9fc73ca74656a0151e7c272bb19c
msgid "**widget_settings, <widget_handler>**"
msgstr ""

#: ../../guides/hooks-list.rst:182
# 29706eb86abc4cf7b0a4194fb948b6ec
msgid "**get_list, default_widgets**"
msgstr ""

#: ../../guides/hooks-list.rst:184
# 07839c0fb4e646efb08e6c31f9bd9bd3
msgid "**rest, init**"
msgstr ""

#: ../../guides/hooks-list.rst:186
# 34d506f8f7d64d3584d95e51975de6c3
msgid "**public_pages, walled_garden**"
msgstr ""

#: ../../guides/hooks-list.rst:188
# 2535e3a64928452fbe4faa5a962e88fa
msgid "**volatile, metadata**"
msgstr ""

#: ../../guides/hooks-list.rst:190
# 12e4841061d9423a9316b356d474ef91
msgid "**maintenance:allow, url**"
msgstr ""

#: ../../guides/hooks-list.rst:191
# 34da22c5333c4523b8da14abaef359d9
msgid "Allows whitelisting URLs to non-admins during maintenance mode"
msgstr ""

#: ../../guides/hooks-list.rst:194
#: ../../guides/plugins.rst:2
# 46e828ebc5d74bdfa215552edea08ebd
# eb598709526a4875b46b9fc0b4ced474
msgid "Plugins"
msgstr ""

#: ../../guides/hooks-list.rst:197
# 40c7184ec9ad4dbb9527f8d122230d72
msgid "File"
msgstr ""

#: ../../guides/hooks-list.rst:199
# 87091d76133741ce84f887d9a8414311
msgid "**simple_type, file**"
msgstr ""

#: ../../guides/hooks-list.rst:200
# 570babca6f95447295933cf217e1d36b
msgid "In file_get_simple_type(), filters the return value"
msgstr ""

#: ../../guides/hooks-list.rst:203
# 67c445658bf544448a21d41608a543da
msgid "Embed"
msgstr ""

#: ../../guides/hooks-list.rst:205
# 3ab4b6289aba4da28bd65fa591402854
msgid "**embed_get_items, <active_section>**"
msgstr ""

#: ../../guides/hooks-list.rst:207
# 1b1310cc68424e10ae6da46e9132f743
msgid "**embed_get_sections, all**"
msgstr ""

#: ../../guides/hooks-list.rst:209
# 4c4d8e24f49b40c4a2e8f693317b48ae
msgid "**embed_get_upload_sections, all**"
msgstr ""

#: ../../guides/hooks-list.rst:212
# 3f15e4506291452085c0c644de69ee26
msgid "HTMLawed"
msgstr ""

#: ../../guides/hooks-list.rst:214
# 4381d58c55e048e0b5bfa93ad73cc537
msgid "**allowed_styles, htmlawed**"
msgstr ""

#: ../../guides/hooks-list.rst:216
# d1a277ab0a9c46ce8f7a8223e4d231f1
msgid "**config, htmlawed**"
msgstr ""

#: ../../guides/hooks-list.rst:219
# 71fa7d2fc68e42babdf30d669773cef5
msgid "Members"
msgstr ""

#: ../../guides/hooks-list.rst:221
# 34c8492f34ff490bb2a077a05f8f5c53
msgid "**members:list, <page_segment>**"
msgstr ""

#: ../../guides/hooks-list.rst:222
# c6fc45729ee54c8186bcd0e4a532718b
msgid "To handle the page /members/$page_segment, handle this hook and return the HTML of the list."
msgstr ""

#: ../../guides/hooks-list.rst:225
# 8f0f844b044247a3a191bae7859d0682
msgid "**members:config, tabs**"
msgstr ""

#: ../../guides/hooks-list.rst:225
# c4bc0dfceee04aa2a8addfb62f916abc
msgid "This hook is used to assemble an array of tabs to be passed to the navigation/tabs view for the members pages."
msgstr ""

#: ../../guides/hooks-list.rst:229
# c0f11dfd59d2417d9f2f437ed7ba1f41
msgid "Twitter API"
msgstr ""

#: ../../guides/hooks-list.rst:231
# 5e3269196efa4a95b13dfd84de73c4f4
msgid "**login, twitter_api**"
msgstr ""

#: ../../guides/hooks-list.rst:233
# 88438c9fd24d4c82bcf394f070712975
msgid "**new_twitter_user, twitter_service**"
msgstr ""

#: ../../guides/hooks-list.rst:235
# 296c3fba548a469b8640fb06c23e7a46
msgid "**first_login, twitter_api**"
msgstr ""

#: ../../guides/hooks-list.rst:237
# 43dafb64ffe14acea7250a1cc720c6e4
msgid "**authorize, twitter_api**"
msgstr ""

#: ../../guides/hooks-list.rst:239
# 95007b83baea425286c16a8a595f8cf2
msgid "**plugin_list, twitter_service**"
msgstr ""

#: ../../guides/hooks-list.rst:242
# 824165774f0440dab07b8ca39dc05895
msgid "Reported Content"
msgstr ""

#: ../../guides/hooks-list.rst:244
# 5764d7d1ccbc43c68f732950bc9bd469
msgid "**reportedcontent:add, system**"
msgstr ""

#: ../../guides/hooks-list.rst:246
# 0f5f0d1db1f741a3a0691db7fa022a1b
msgid "**reportedcontent:archive, system**"
msgstr ""

#: ../../guides/hooks-list.rst:248
# 140f1ad1d40040c28068ea9d89de9260
msgid "**reportedcontent:delete, system**"
msgstr ""

#: ../../guides/hooks-list.rst:250
# 79387364f65640759675d27ee236785a
msgid "**reportedcontent:add, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:252
# a251388de98f4dd7b51a703d798d130a
msgid "**reportedcontent:archive, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:254
# c3facfca602748c4bed72d79628ac00a
msgid "**reportedcontent:delete, <entity_type>**"
msgstr ""

#: ../../guides/hooks-list.rst:257
# 153b3b832890484f9686f4672dd1d606
msgid "Search"
msgstr ""

#: ../../guides/hooks-list.rst:259
# e063ff8ff737419bb0deadf2a12ddb7a
msgid "**search, <type>:<subtype>**"
msgstr ""

#: ../../guides/hooks-list.rst:261
# 1d640dd05d3742b4a340a3526433c371
msgid "**search, tags**"
msgstr ""

#: ../../guides/hooks-list.rst:263
# 5363170aca904ca9bc70e7d00a922405
msgid "**search, <type>**"
msgstr ""

#: ../../guides/hooks-list.rst:268
# 71c5b0cd67dd4e06ad6b384f3f7f4efe
msgid "**search_types, get_queries**"
msgstr ""

#: ../../guides/hooks-list.rst:268
# 9f18210fb4194d2f8ef1b734a91d457b
msgid "Before a search this filters the types queried. This can be used to reorder the display of search results."
msgstr ""

#: ../../guides/i18n.rst:2
# 438893415a8d40ce88a44dddd618d7ee
msgid "Internationalization"
msgstr ""

#: ../../guides/i18n.rst:4
# 0f15bbb799894074b9dfc8b290c5938b
msgid "Make your UI translatable into many different languages."
msgstr ""

#: ../../guides/i18n.rst:6
# e34fe7e3c6724d719bb3727c92bbe0d6
msgid "If you’d like to contribute translations to Elgg, see :doc:`the contributors' guide </about/contributing>`."
msgstr ""

#: ../../guides/i18n.rst:11
# 74790b7a12e14bcdb0baf49664d24381
msgid "Translations are stored in PHP files in the ``/languages`` directory of your plugin. Each file corresponds to a language. The format is ``/languages/{language-code}.php`` where ``{language-code}`` is the ISO 639-1 short code for the language. For example:"
msgstr ""

#: ../../guides/i18n.rst:22
# 14d9dd02c28c432998625a4a2f1c96ff
msgid "The default language is “en” for English."
msgstr ""

#: ../../guides/i18n.rst:24
# 1f657968496a41b7b32a15fd911e6cbb
msgid "To change the wording of any phrase, provide a new mapping in your plugin’s ``{language}.php`` file for the associated key:"
msgstr ""

#: ../../guides/i18n.rst:36
# d32a384439da4685b6766e0acf329201
msgid "Unless you are overriding core’s or another plugin’s language strings, it is good practice for the language keys to start with your plugin name. For example: “yourplugin:success,” “yourplugin:title,” etc. This helps avoid conflicts with other language keys."
msgstr ""

#: ../../guides/i18n.rst:40
# 2a5c1fe987c842a2b4d8efa7259f9cb0
msgid "Server-side API"
msgstr ""

#: ../../guides/i18n.rst:42
# 2835d6621f214f5cad2863e41a369943
msgid "``elgg_echo($key, $args, $language)``"
msgstr ""

#: ../../guides/i18n.rst:44
# ecc8efe1257241d8b87fbb66995e19dd
msgid "Output the translation of the key in the current language."
msgstr ""

#: ../../guides/i18n.rst:46
# 8896e184714e4976a5c52c05246d74f8
msgid "Example:"
msgstr ""

#: ../../guides/i18n.rst:52
# ce3e9f98b2be4d73aeb9e80b4d6adac6
msgid "It also supports variable replacement using sprintf syntax:"
msgstr ""

#: ../../guides/i18n.rst:62
# cdb0b8944a944998ad80a95074537854
msgid "To force which language should be used for translation, set the third parameter:"
msgstr ""

#: ../../guides/i18n.rst:71
# 06daa8019af949b6893c62ba91ba1cd3
msgid "Javascript API"
msgstr ""

#: ../../guides/i18n.rst:73
# bf08eaee54054a9e9920f413b21456c5
msgid "``elgg.echo(key, args, language)``"
msgstr ""

#: ../../guides/i18n.rst:75
# b6f1f335d974475eb313c2099173c349
msgid "This function is the exact counterpart to ``elgg_echo`` in PHP."
msgstr ""

#: ../../guides/i18n.rst:77
# b13ce413882240b2b6cad6f584b93975
msgid "Client-side translations are loaded asynchronously. This means ``elgg.echo`` will not be ready until after the system is done initializing."
msgstr ""

#: ../../guides/index.rst:2
# f7aa321b9f8247da9854b9d944f3d752
msgid "Developer Guides"
msgstr ""

#: ../../guides/index.rst:4
# 5aba8bf4a87f4aaa82f8686fc5bc688b
msgid "Customize Elgg's behavior with plugins."
msgstr ""

#: ../../guides/javascript.rst:2
# 6b2fd46e009542e392961955c77c1b00
msgid "JavaScript"
msgstr ""

#: ../../guides/javascript.rst:7
# 7c03662a8173494e8555ceb4e3b03acb
msgid "As of Elgg 1.9, we encourage all developers to adopt the `AMD (Asynchronous Module Definition) <http://requirejs.org/docs/whyamd.html>`_ standard for writing JavaScript code in Elgg. The 1.8 version is still functional and is :ref:`described below<1.8-js>`."
msgstr ""

#: ../../guides/javascript.rst:12
# 3175a5f5e6cc4d95bd4a703b25fad136
msgid "AMD"
msgstr ""

#: ../../guides/javascript.rst:14
# 320e248956044f929132ea92832d45bf
msgid "Defining and loading a module in Elgg 1.9 takes two steps:"
msgstr ""

#: ../../guides/javascript.rst:16
# 38cbddb5087b4559aaab2d5f511ff702
msgid "Define your module as asynchronous JavaScript."
msgstr ""

#: ../../guides/javascript.rst:17
# fb55ee1b3ebb416c892c614d43791c5b
msgid "Tell Elgg to asynchronously execute your module in the current page."
msgstr ""

#: ../../guides/javascript.rst:20
# 6d190fd3cb604b6b82fdcddc771cc51f
msgid "1. Define your module as asynchronous JavaScript"
msgstr ""

#: ../../guides/javascript.rst:22
# 75ab9309dff34c4ba13d77a8c301caa2
msgid "You can define a module by creating a view or registering a URL."
msgstr ""

#: ../../guides/javascript.rst:25
# ff4b835558fc482592b1e5ec3d90eaa6
msgid "Defining modules as a view"
msgstr ""

#: ../../guides/javascript.rst:27
# 321ebf57e61b44148eeda9a697b2868d
msgid "Modules defined by creating views are immediately available for use and require no registration. To register a module named ``my/module``, create the view ``views/default/js/my/module.js``."
msgstr ""

#: ../../guides/javascript.rst:32
# d92487c57a654733bc447ef40647db9f
msgid "A basic module could look like this:"
msgstr ""

#: ../../guides/javascript.rst:46
# ddc64382a70442eca37702ebd3e74f6a
msgid "Define your module via a URL"
msgstr ""

#: ../../guides/javascript.rst:48
# 742ac71c2e17402e9e451db4db5697bc
msgid "You can define an existing AMD module using ``elgg_define_js()``. Traditional (browser-globals) JavaScript files can also be defined as AMD modules if you shim them by setting ``exports`` and optionally ``deps``."
msgstr ""

#: ../../guides/javascript.rst:52
# 6574caa055ea4e4e868b15096ee4c8fa
msgid "Calls to ``elgg_define_js()`` must be in an ``init, system`` event handler."
msgstr ""

#: ../../guides/javascript.rst:78
# 12d7e8d51d77458b8f8708b96bbac523
msgid "Some things to note"
msgstr ""

#: ../../guides/javascript.rst:80
# be8f46f2b4654ea5ba3dd3725e7066b7
msgid "1. Do not use ``elgg.provide()`` or ``elgg.require()`` anymore. They are fully replaced by ``define()`` and ``require()`` respectively. 2. Return the value of the module instead of adding to a global variable. 3. Static views (.css, .js) are automatically minified and cached by Elgg's simplecache system."
msgstr ""

#: ../../guides/javascript.rst:87
# 4227cb50f6d542dcb69acf9f162fc0bf
msgid "2. Tell Elgg to asynchronously execute your module in the current page"
msgstr ""

#: ../../guides/javascript.rst:88
# 3a0c849c13574fb893fed4aaa91a9b02
msgid "Once an AMD module is defined, you can use ``require([\"my/module\"])`` from JavaScript to access its \"exported\" value."
msgstr ""

#: ../../guides/javascript.rst:91
# 30179a40af0b4d1080bcbec16f5c609d
msgid "Also, calling ``elgg_require_js(\"my/module\")`` from PHP tells Elgg to execute the module code on the current page."
msgstr ""

#: ../../guides/javascript.rst:96
# c32c2585516148afbb80ca741c53edc8
msgid "Migrating JS from Elgg 1.8 to AMD / 1.9"
msgstr ""

#: ../../guides/javascript.rst:97
# a830bbb860224104aac52e11f0c52790
msgid "**Current 1.8 JavaScript modules will continue to work with Elgg**."
msgstr ""

#: ../../guides/javascript.rst:99
# 36457e9f19c84e739d40c444229ae45a
msgid "We do not anticipate any backwards compatibility issues with this new direction and will fix any issues that do come up. The old system will still be functional in Elgg 1.9, but developers are encouraged to begin looking to AMD as the future of JS in Elgg."
msgstr ""

#: ../../guides/javascript.rst:106
# 5b2a4f092d75489e8a75e9784c49d642
msgid "Traditional JavaScript (1.8)"
msgstr ""

#: ../../guides/javascript.rst:109
# 81f067cc74764b019f951c7a5813e596
msgid "Register third-party libraries with ``elgg_register_js``:"
msgstr ""

#: ../../guides/javascript.rst:115
# 225e999619d54ae7bb8d26e9304097d3
msgid "This will override any URLs previously registered under this name."
msgstr ""

#: ../../guides/javascript.rst:117
# f3113c47a5304962b64221074507b52f
msgid "Load a library on the current page with ``elgg_load_js``:"
msgstr ""

#: ../../guides/javascript.rst:123
# cd5c2078e7d6496583260093c0b74973
msgid "This will include and execute the linked code."
msgstr ""

#: ../../guides/javascript.rst:129
# 0bd12a6c5284453391b58ce15a595d20
msgid "Using inline scripts is strongly discouraged because:"
msgstr ""

#: ../../guides/javascript.rst:128
# 1fe1aac8fef442f6a807ab798bedd03a
msgid "They are not testable (maintainability)"
msgstr ""

#: ../../guides/javascript.rst:129
# 351994d2ca844fc6bc840963367badcf
msgid "They are not cacheable (performance)"
msgstr ""

#: ../../guides/javascript.rst:130
# 1553fc98461044b6840fc4a8c050d072
msgid "Doing so forces some scripts to be loaded in ``<head>`` (performance)"
msgstr ""

#: ../../guides/javascript.rst:132
# ab9d50f888eb46469f0216abb425a14b
msgid "Inline scripts in core or bundled plugins are considered legacy bugs."
msgstr ""

#: ../../guides/javascript.rst:135
# c1aa482dde8d4ba8831b2fbcbc7a74f0
msgid "Core functions available in JS"
msgstr ""

#: ../../guides/javascript.rst:137
# 603aaf4ebc1f4a04a5fc952eb06b2fa5
msgid "``elgg.echo``"
msgstr ""

#: ../../guides/javascript.rst:139
# 6e73f503d2a146c4988b248f8c263b6a
msgid "Translate interface text"
msgstr ""

#: ../../guides/javascript.rst:146
# 8e8989a8136349e981ef3d5c5d76f9e9
msgid "``elgg.system_message(message)``"
msgstr ""

#: ../../guides/javascript.rst:148
# 88c8f97afad04482b5ba1e0735f5d015
msgid "Display a status message to the user."
msgstr ""

#: ../../guides/javascript.rst:155
# 269c9f29f1ec4230a75d4c03d23adfd2
msgid "``elgg.register_error(message)``"
msgstr ""

#: ../../guides/javascript.rst:157
# 2010ac9fed3a45d3811cfbb2bf5030fe
msgid "Display an error message to the user."
msgstr ""

#: ../../guides/javascript.rst:164
# ad863c0984bf49e29a6018113484ab4f
msgid "``elgg.forward()``"
msgstr ""

#: ../../guides/javascript.rst:166
# d91876599b38434091bfab2f6c3cafe4
msgid "``elgg.normalize_url()``"
msgstr ""

#: ../../guides/javascript.rst:168
# 8a0e0d4713474fce9459707c87ea9969
msgid "Normalize a URL relative to the elgg root:"
msgstr ""

#: ../../guides/javascript.rst:175
# f2878c5495f64b9898b04a5e6b95d57f
msgid "Redirect to a new page."
msgstr ""

#: ../../guides/javascript.rst:181
# b439530034cf46a79e1f40c5e9e612c3
msgid "This function automatically normalizes the URL."
msgstr ""

#: ../../guides/javascript.rst:184
# f8b3b3c473294db79501c81b2fd80ed1
msgid "``elgg.parse_url()``"
msgstr ""

#: ../../guides/javascript.rst:186
# ebe242a9dd5a4ac4b9f99bee76a54dd4
msgid "Parse a URL into its component parts:"
msgstr ""

#: ../../guides/javascript.rst:199
# d2ca2940fdc84670b65021b043f132f9
msgid "``elgg.get_page_owner_guid()``"
msgstr ""

#: ../../guides/javascript.rst:201
# 773a678ca8cd439c9f55afd212ba473d
msgid "Get the GUID of the current page's owner."
msgstr ""

#: ../../guides/javascript.rst:204
# ef42737ebb9b42a78a37b10ec9b91b4f
msgid "``elgg.security.refreshToken()``"
msgstr ""

#: ../../guides/javascript.rst:206
# d32e726a1d3746d7b4bb742857620b11
msgid "Force a refresh of all XSRF tokens on the page."
msgstr ""

#: ../../guides/javascript.rst:208
# cec28f5107674bb09892db5834bd6b9b
msgid "This is automatically called every 5 minutes by default."
msgstr ""

#: ../../guides/javascript.rst:210
# f3c471e5ad1c457cbaf6b0ddebf57abb
msgid "This requires a valid security token in 1.8, but not in 1.9."
msgstr ""

#: ../../guides/javascript.rst:212
# abd41187cd51423ca3ef78b0c2529bad
msgid "The user will be warned if their session has expired."
msgstr ""

#: ../../guides/javascript.rst:215
# 1bff65805e9c43888633ee0b2969b71d
msgid "``elgg.security.addToken()``"
msgstr ""

#: ../../guides/javascript.rst:217
# 2815b237ae5749ce87461d5acbdf63bc
msgid "Add a security token to an object, URL, or query string:"
msgstr ""

#: ../../guides/javascript.rst:234
# b24edb199bdc46a7ab68922d250b03b2
msgid "``elgg.get_logged_in_user_entity()``"
msgstr ""

#: ../../guides/javascript.rst:236
# 2f7e900db6944ea8b8a54c1520d4f5d6
msgid "Returns the logged in user as an JS ElggUser object."
msgstr ""

#: ../../guides/javascript.rst:239
# 68d7160618e44e55a5e98598defa4540
msgid "``elgg.get_logged_in_user_guid()``"
msgstr ""

#: ../../guides/javascript.rst:241
# f915cbf51bd3436399857401dfad6c24
msgid "Returns the logged in user's guid."
msgstr ""

#: ../../guides/javascript.rst:244
# d7bb31f2389b4586a1510f96ef09878a
msgid "``elgg.is_logged_in()``"
msgstr ""

#: ../../guides/javascript.rst:246
# 97ebded841374a7fa16ec191926d8d47
msgid "True if the user is logged in."
msgstr ""

#: ../../guides/javascript.rst:249
# e40366f65fe5425db5cee7b240ab6358
msgid "``elgg.is_admin_logged_in()``"
msgstr ""

#: ../../guides/javascript.rst:251
# a9c987001c1544ab8b41b13cccb0c7ba
msgid "True if the user is logged in and is an admin."
msgstr ""

#: ../../guides/javascript.rst:254
# f336be3f05584f98a494580e7027dc01
msgid "``elgg.config.get_language()``"
msgstr ""

#: ../../guides/javascript.rst:256
# 89a888ce2fce4328b2b3aae1a5efc2f6
msgid "Get the current page's language."
msgstr ""

#: ../../guides/javascript.rst:259
# d2433136f6be4607bafd2418d9e5bb03
msgid "There are a number of configuration values set in the elgg object:"
msgstr ""

#: ../../guides/plugins.rst:5
# a55eea6241db4833b811534ba1e8ba58
msgid "start.php"
msgstr ""

#: ../../guides/plugins.rst:8
# 3b1d72cd3b844db582ec200e1871c8b3
msgid "manifest.xml"
msgstr ""

#: ../../guides/plugins.rst:10
# a6670f4c62154828be714bce2e8b4135
msgid "Elgg plugins are required to have a ``manifest.xml`` file in the root of a plugin."
msgstr ""

#: ../../guides/plugins.rst:12
# bca0233b6b8a408c9a4858d42d3beeb5
msgid "The ``manifest.xml`` file includes information about the plugin itself, requirements to run the plugin, and optional information including where to display the plugin in the admin area and what APIs the plugin provides."
msgstr ""

#: ../../guides/plugins.rst:15
# e4e10983a41e45ba97fba11589a364bf
msgid "Syntax"
msgstr ""

#: ../../guides/plugins.rst:17
# bd954c890e08425191115fb6dc33a835
msgid "The manifest file is a standard XML file in UTF-8. Everything is a child of the ``<plugin_manifest>`` element."
msgstr ""

#: ../../guides/plugins.rst:24
# d001f26050224757b2d6ff89f5040a2c
msgid "The manifest syntax is as follows:"
msgstr ""

#: ../../guides/plugins.rst:30
# 223678ff14944f72b2f6c825bea3a93f
msgid "Many elements can contain children attributes:"
msgstr ""

#: ../../guides/plugins.rst:40
# a2f68dcce6e14f4babc83fce9f607d8d
msgid "Required Elements"
msgstr ""

#: ../../guides/plugins.rst:42
# bc0591fbaaed44ff8b68ecfe64d637cc
msgid "All plugins are required to define the following elements in their manifest files:"
msgstr ""

#: ../../guides/plugins.rst:44
# feaf1c02659a4c0eaec9f15eae2a92ea
msgid "id - This has the name as the directory that the plugin uses."
msgstr ""

#: ../../guides/plugins.rst:45
# d0c16f625fdd4b59a86cad4c2f2e70ac
msgid "name - The display name of the plugin."
msgstr ""

#: ../../guides/plugins.rst:46
# 2f4fc857e2b74caba4618203d0ec6c17
msgid "author - The name of the author who wrote the plugin."
msgstr ""

#: ../../guides/plugins.rst:47
# 856cff9d36ef42609bd6be2f0ffc5839
msgid "version - The version of the plugin."
msgstr ""

#: ../../guides/plugins.rst:48
# 06fab55f1cf746f7b3f92589bd807352
msgid "description - A description of the what the plugin provides, its features, and other relevant information"
msgstr ""

#: ../../guides/plugins.rst:49
# 91c870fe5d044fbeac15fa6c30d1f8bd
msgid "requires - Each plugin must specify the release of Elgg it was developed for. See the plugin Dependencies page for more information."
msgstr ""

#: ../../guides/plugins.rst:52
# 09688869140e46f48f61fd7658c51588
msgid "Available Elements"
msgstr ""

#: ../../guides/plugins.rst:54
# a79fd769f1f24ada80376d6a00df25f1
msgid "In addition to the require elements above, the follow elements are available to use:"
msgstr ""

#: ../../guides/plugins.rst:56
# 4cdc3869eccb4a3bb8a175b346c2a2d3
msgid "blurb - A short description of the plugin."
msgstr ""

#: ../../guides/plugins.rst:57
# 6e6b5ed530ce469896da873e8e756032
msgid "category - The category of the plugin. It is recommended to follow the [[Plugin_Guidelines|plugin guidelines]] and use one of the defined categories. There can be multiple entries."
msgstr ""

#: ../../guides/plugins.rst:58
# 294e8ca3cea94314b326736c590cde2c
msgid "conflicts - Specifies that the plugin conflicts with a certain system configuration."
msgstr ""

#: ../../guides/plugins.rst:59
# f11a14a086fd45ca9a0249744c7a89fc
msgid "copyright - The plugin's copyright information."
msgstr ""

#: ../../guides/plugins.rst:60
# 9d00199f56c448e5994727ca0c6fad76
msgid "license - The plugin's license information."
msgstr ""

#: ../../guides/plugins.rst:61
# 81f1c48b157b40aa83425421aad7059b
msgid "provides - Specifies that this plugin provides the same functionality as another Elgg plugin or a PHP extension."
msgstr ""

#: ../../guides/plugins.rst:62
# 0c7ac5f0b92d4bb6a0b022e37d84714e
msgid "screenshot - Screenshots of the plugin. There can be multiple entries. See the advanced example for syntax."
msgstr ""

#: ../../guides/plugins.rst:63
# dfd3567e95904d62ae74cec4808687b6
msgid "suggests - Parallels the requires system, but doesn't affect if the plugin can be enabled. Used to suggest other plugins that interact or build on the plugin."
msgstr ""

#: ../../guides/plugins.rst:64
# ddb32a0b506a475194f749ee58de99d0
msgid "website - A link to the website for the plugin."
msgstr ""

#: ../../guides/plugins.rst:67
#: ../../guides/widgets.rst:131
# 2110f9da18054f44bdae70335e2b75a3
# b45fe232ed6741b3bb599abbaad80dd7
msgid "Simple Example"
msgstr ""

#: ../../guides/plugins.rst:69
# b8787f8357cc4c7ea7b8f08a806f2a71
msgid "This manifest file is the bare minimum a plugin must have."
msgstr ""

#: ../../guides/plugins.rst:87
# 493bd9d62d5449b28db2bd56c0de1ed0
msgid "Advanced example"
msgstr ""

#: ../../guides/plugins.rst:89
# 33b729b339814e6aa65e4187038656cd
msgid "This example uses all of the available elements:"
msgstr ""

#: ../../guides/river.rst:2
# 2436bc354bfd40058076f45a97362ef9
msgid "River"
msgstr ""

#: ../../guides/river.rst:4
# b743047fd3434c938db20e922cdf1e95
msgid "Elgg natively supports the \"river\", an activity stream containing descriptions of activities performed by site members. This page gives an overview of adding events to the river in an Elgg plugin."
msgstr ""

#: ../../guides/river.rst:9
# 1ef0f26c10144bdeb577ac57ee24340e
msgid "Pushing river items"
msgstr ""

#: ../../guides/river.rst:11
# fee212d9422b4f4394c24338897e9776
msgid "Items are pushed to the activity river through a function call, which you must include in your plugins for the items to appear."
msgstr ""

#: ../../guides/river.rst:14
# 6b4a298ee87c481589b6ae704c05debd
msgid "Here we add a river item telling that a user has created a new blog post:"
msgstr ""

#: ../../guides/river.rst:27
# 8cf74392304549bf96ff4dbe270e8634
msgid "All available parameters:"
msgstr ""

#: ../../guides/river.rst:29
# c6f4d69cd3b64662afd1e9f9ca9792de
msgid "``view`` => STR The view that will handle the river item (must exist)"
msgstr ""

#: ../../guides/river.rst:30
# c008052064da434198b401b17997d1a4
msgid "``action_type`` => STR An arbitrary string to define the action (e.g. 'create', 'update', 'vote', 'review', etc)"
msgstr ""

#: ../../guides/river.rst:31
# f07a0d66390d4f349edcbf0cd4f5b332
msgid "``subject_guid`` => INT The GUID of the entity doing the action"
msgstr ""

#: ../../guides/river.rst:32
# 222408459b15478e8d310973066ec33d
msgid "``object_guid`` => INT The GUID of the entity being acted upon"
msgstr ""

#: ../../guides/river.rst:33
# 8e6989c22a75453285f78b34d927174c
msgid "``target_guid`` => INT The GUID of the the object entity's container (optional)"
msgstr ""

#: ../../guides/river.rst:34
# f20ac864e4ff4ec1bc164550baa47455
msgid "``access_id`` => INT The access ID of the river item (default: same as the object)"
msgstr ""

#: ../../guides/river.rst:35
# 04eb1636819447cdb9879059ef62f12a
msgid "``posted`` => INT The UNIX epoch timestamp of the river item (default: now)"
msgstr ""

#: ../../guides/river.rst:36
# 035d64148c9c40dea21c14b1e2ea3a48
msgid "``annotation_id`` => INT The annotation ID associated with this river entry (optional)"
msgstr ""

#: ../../guides/river.rst:38
# f6a40f4e4a74432e8820b0288e1fe263
msgid "When an item is deleted or changed, the river item will be updated automatically."
msgstr ""

#: ../../guides/river.rst:41
# 095c5e5dc6f340ca9ef89e5ad66974c4
msgid "River views"
msgstr ""

#: ../../guides/river.rst:43
# 8c45ebb6f3af41a39ad8e178c06d3df0
msgid "In order for events to appear in the river you need to provide a corresponding `view <views.html>`__ with the name specified in the function above."
msgstr ""

#: ../../guides/river.rst:46
# d5a259e679d04a5c8d7ceb2167b528a5
msgid "We recommend ``/river/{type}/{subtype}/{action}``, where:"
msgstr ""

#: ../../guides/river.rst:48
# 3879b40777b249a3b2b0cb181de11864
msgid "{type} is the entity type of the content we're interested in (``object`` for objects, ``user`` for users, etc)"
msgstr ""

#: ../../guides/river.rst:49
# 740c66fbfec14c359108804d9307b931
msgid "{subtype} is the entity subtype of the content we're interested in (``blog`` for blogs, ``photo_album`` for albums, etc)"
msgstr ""

#: ../../guides/river.rst:50
# a8f1458439a94d54bf752ca798e9f2b8
msgid "{action} is the action that took place (''create'', ''update'', etc)"
msgstr ""

#: ../../guides/river.rst:52
# ab278b6211904ed58e0a6de685ac3a7e
msgid "River item information will be passed in an object called ``$vars['item']``, which contains the following important parameters:"
msgstr ""

#: ../../guides/river.rst:54
# 1727bfe8cfd543eaa06ba144868d004b
msgid "``$vars['item']->subject_guid`` The GUID of the user performing the action"
msgstr ""

#: ../../guides/river.rst:55
# f86a1753a4844ad3b48ab8592c4ada2a
msgid "``$vars['item']->object_guid`` The GUID of the entity being acted upon"
msgstr ""

#: ../../guides/river.rst:57
# 0a1615fcea2f4d06aa645ca7f5c9255c
msgid "Timestamps etc will be generated for you."
msgstr ""

#: ../../guides/river.rst:59
# faea7e86c14b43c9b61b44b167f002ea
msgid "For example, the blog plugin uses the following code for its river view:"
msgstr ""

#: ../../guides/routing.rst:2
# 57122b6363794a6db20253b1598bf455
msgid "Routing"
msgstr ""

#: ../../guides/routing.rst:4
# 61bb2b89918c409aabe354348b592ae5
msgid "Add new pages and customize URLs."
msgstr ""

#: ../../guides/themes.rst:2
# a21f05136a7a4b4da69e1a5f58125cc3
msgid "Themes"
msgstr ""

#: ../../guides/themes.rst:4
# a74b4f37efa747d7823f241a45d0fc2a
msgid "Customize the look and feel of Elgg."
msgstr ""

#: ../../guides/themes.rst:6
# 3876928132f64d7295ef8dc94c2b3ff8
msgid "A theme is a type of :doc:`plugin </admin/plugins>` that overrides display aspects of Elgg."
msgstr ""

#: ../../guides/themes.rst:10
# 57f8e2b42e174902ba3049a4000b2914
msgid "This guide assumes you are familiar with:"
msgstr ""

#: ../../guides/themes.rst:14
# f21a5bd65c794ea7a17e019fa58e4a00
msgid "Create your plugin"
msgstr ""

#: ../../guides/themes.rst:16
# 470bb842e30944a8a35c85d77272f0f6
msgid "Create your plugin as described in the :doc:`developer guide </guides/index>`."
msgstr ""

#: ../../guides/themes.rst:18
# 7992f2788fe04fcfaf7b5aa8c6ea5fa1
msgid "Create a new directory under mod/"
msgstr ""

#: ../../guides/themes.rst:19
# 3caa9d7bdad6421c8e338c8dc7ebde32
msgid "Create a new start.php"
msgstr ""

#: ../../guides/themes.rst:20
# 4624ac6c70f1460b9539b2d413d90837
msgid "Create a manifest.xml file describing your theme."
msgstr ""

#: ../../guides/themes.rst:23
# a1de90c2a8ea4ad6a058baaf5e512b6d
msgid "Customize the CSS"
msgstr ""

#: ../../guides/themes.rst:25
# 4d5e6c85e3764ec3ae8ec1d97dcb3ab5
msgid "As of Elgg 1.8, the css is split into several files based on what aspects of the site you're theming. This allows you to tackle them one at a time, giving you a chance to make real progress without getting overwhelmed."
msgstr ""

#: ../../guides/themes.rst:30
# 4781810db873469e844d2661a1e405d6
msgid "Here is a list of the existing CSS views:"
msgstr ""

#: ../../guides/themes.rst:32
# bed463e9ce89467abe65c8dc33e8de4f
msgid "css/elements/buttons: Provides a way to style all the different kinds of buttons your site will use. There are 5 kinds of buttons that plugins will expect to be available: action, cancel, delete, submit, and special."
msgstr ""

#: ../../guides/themes.rst:33
# 73828729b4784c178b64e601bce810ba
msgid "css/elements/chrome: This file has some miscellaneous look-and-feel classes."
msgstr ""

#: ../../guides/themes.rst:34
# a2bec6d28ed445d38a8d38ebf05e05c8
msgid "css/elements/components: This file contains many “css objects” that are used all over the site: media block, list, gallery, table, owner block, system messages, river, tags, photo, and comments."
msgstr ""

#: ../../guides/themes.rst:35
# 39c1a0168b3640b090b510889e7fe06b
msgid "css/elements/forms: This file determines what your forms and input elements will look like."
msgstr ""

#: ../../guides/themes.rst:36
# ff38fc3e6fdb48c6a343f18e18a4b9f1
msgid "css/elements/icons: Contains styles for the sprite icons and avatars used on your site."
msgstr ""

#: ../../guides/themes.rst:37
# ba6673bdd3c349dbaf6a382c002a39a8
msgid "css/elements/layout: Determines what your page layout will look like: sidebars, page wrapper, main body, header, footer, etc."
msgstr ""

#: ../../guides/themes.rst:38
# bace503728164556a075019455c43538
msgid "css/elements/modules: Lots of content in Elgg is displayed in boxes with a title and a content body. We called these modules. There are a few kinds: info, aside, featured, dropdown, popup, widget. Widget styles are included in this file too, since they are a subset of modules."
msgstr ""

#: ../../guides/themes.rst:39
# 15b33b11bb4f4c86b3924b884effdff9
msgid "css/elements/navigation: This file determines what all your menus will look like."
msgstr ""

#: ../../guides/themes.rst:40
# 4aceab4f0931490ab642e984cb197777
msgid "css/elements/typography: This file determines what the content and headings of your site will look like."
msgstr ""

#: ../../guides/themes.rst:41
# bf32cc01d55b4f568bb3b0882537387e
msgid "css/ie6: Custom rules for ie6 and below."
msgstr ""

#: ../../guides/themes.rst:42
# d0d9c99b2bf844528a6e06055abd1c3a
msgid "css/ie7: Custom rules for ie7 and below."
msgstr ""

#: ../../guides/themes.rst:43
# b7224354ee7a43588c4be88203f97b7c
msgid "css/rtl: Custom rules for users viewing your site in a right-to-left language."
msgstr ""

#: ../../guides/themes.rst:44
# 239fcff7883f4ea2a18830d109cec0b8
msgid "css/admin: A completely separate theme for the admin area (usually not overridden)."
msgstr ""

#: ../../guides/themes.rst:45
# d32a091b4476442d8f2889ec0ba17a1d
msgid "css/elgg: Compiles all the core css/elements/\\* files into one file (DO NOT OVERRIDE)."
msgstr ""

#: ../../guides/themes.rst:46
# efb8c307c8d5467d80b90e62ef21dfd9
msgid "css/elements/core: Contains base styles for the more complicated “css objects”. If you find yourself wanting to override this, you probably need to report a bug to Elgg core instead (DO NOT OVERRIDE)."
msgstr ""

#: ../../guides/themes.rst:47
# cd71fd4537484714922e51d77681d88f
msgid "css/elements/reset: Contains a reset stylesheet that forces elements to have the same default"
msgstr ""

#: ../../guides/themes.rst:51
# 371922f492b24441a9f1be51750d6f55
msgid "View extension"
msgstr ""

#: ../../guides/themes.rst:53
# f69d678a2b474f4a93b15348174ffe77
msgid "There are two ways you can modify views:"
msgstr ""

#: ../../guides/themes.rst:55
# 19a5cf470a68455cb5655dde401cdafd
msgid "The first way is to add extra stuff to an existing view via the extend view function from within your start.php’s initialization function."
msgstr ""

#: ../../guides/themes.rst:58
# 9edb8e0d61584c09b80edbbef6665e6c
msgid "For example, the following start.php will add mytheme/css to Elgg's core css file:"
msgstr ""

#: ../../guides/themes.rst:73
# 5b44f1f915814d0b825446d432083733
msgid "View overloading"
msgstr ""

#: ../../guides/themes.rst:75
# 9f23d93ca8634a4bb52d45512c96e8cb
msgid "Plugins can have a view hierarchy, any file that exists here will replace any files in the existing core view hierarchy... so for example, if my plugin has a file:"
msgstr ""

#: ../../guides/themes.rst:79
# 316532113b66473bb423521f8f9ebd25
msgid "``/mod/myplugin/views/default/css/elements/typography.php``"
msgstr ""

#: ../../guides/themes.rst:81
# beabf7fbe0f240c09b054ed19a36feb2
msgid "it will replace:"
msgstr ""

#: ../../guides/themes.rst:83
# 8fd228f70c444aeba4af2be1c2c3094d
msgid "``/views/default/css/elements/typography.php``"
msgstr ""

#: ../../guides/themes.rst:85
# e6e4803d428149f78c6f13fae5aaed4f
msgid "But only when the plugin is active."
msgstr ""

#: ../../guides/themes.rst:87
# f8dd7c746d0b48118e8f67e80e3c7492
msgid "This gives you total control over the way Elgg looks and behaves. It gives you the option to either slightly modify or totally replace existing views."
msgstr ""

#: ../../guides/themes.rst:92
# dbb5b66ae5664c10a1684468ca2c6364
msgid "Tools"
msgstr ""

#: ../../guides/themes.rst:94
# 4521c3068acd41ab8e7f9e19c28aa26e
msgid "Starting in Elgg 1.8, we've provided you with some development tools to help you with theming: Turn on the “Developers” plugin and go to the “Theme Preview” page to start tracking your theme's progress."
msgstr ""

#: ../../guides/themes.rst:99
# 6101286808f448c9a6b4800171e54d61
msgid "Customizing the front page"
msgstr ""

#: ../../guides/themes.rst:100
# 589f2a4b142d48c9b98ad10bc09236d5
msgid "The main Elgg index page runs a plugin hook called 'index,system'. If this returns true, it assumes that another front page has been drawn and doesn't display the default page."
msgstr ""

#: ../../guides/themes.rst:104
# ab8c5aa2c4864e2ab27a190d2cb8a9d9
msgid "Therefore, you can override it by registering a function to the 'index,system' plugin hook and then returning true from that function."
msgstr ""

#: ../../guides/themes.rst:107
# b594378145b6482db3ab5c5c03441f58
msgid "Here's a quick overview:"
msgstr ""

#: ../../guides/themes.rst:109
# a0df961403dd449e94645c7434383e2b
msgid "Create your new plugin"
msgstr ""

#: ../../guides/themes.rst:111
# a456ff68712f478ab674ee7b50c6199b
msgid "In the start.php you will need something like the following:"
msgstr ""

#: ../../guides/themes.rst:133
# 4ce935fbf8ae4652a9f37c8aba31d111
msgid "Then, create an index page (/pluginname/pages/index.php) and use that to put the content you would like on the front page of your Elgg site."
msgstr ""

#: ../../guides/upgrading.rst:2
# 21f0de0609fe42b0b3aa1bb08f86b37f
msgid "Upgrading Plugins"
msgstr ""

#: ../../guides/upgrading.rst:4
# 903a47474e6541cc888885eb48ae3b9c
msgid "Prepare your plugin for the next version of Elgg."
msgstr ""

#: ../../guides/upgrading.rst:6
# 99754759691b4173aa9b6dd938e995b5
msgid "See the administator guides for :doc:`how to upgrade a live site </admin/upgrading>`."
msgstr ""

#: ../../guides/upgrading.rst:9
# 3bb2216d063a4599a26752f571113da4
msgid "From 1.8 to 1.9"
msgstr ""

#: ../../guides/upgrading.rst:11
# 6ede149471f142a29e4a66c0152b92ec
msgid "In the examples we are upgrading an imaginary \"Photos\" plugin."
msgstr ""

#: ../../guides/upgrading.rst:13
# 4492e07b5e59410784d484284a63da9e
msgid "Only the key changes are included. For example some of the deprecated functions are not mentioned here separately."
msgstr ""

#: ../../guides/upgrading.rst:15
# 9f0b8a88835f4ca6952ce7611ccb1e15
msgid "Each section will include information whether the change is backwards compatible with Elgg 1.8."
msgstr ""

#: ../../guides/upgrading.rst:18
# 7a3576581a4d4ac8b48fc5ae40677126
msgid "The manifest file"
msgstr ""

#: ../../guides/upgrading.rst:20
# 6bfd33d1a6ab473e8a83439c5c80d716
msgid "No changes are needed if your plugin is compatible with 1.8."
msgstr ""

#: ../../guides/upgrading.rst:22
# fc3515a90d794a599dde43001817dd19
msgid "It's however recommended to add the ``<id>`` tag. It's value should be the name of the directory where the plugin is located inside the ``mod/`` directory."
msgstr ""

#: ../../guides/upgrading.rst:24
# 9461b20488a942d2b6047bd50092a014
msgid "If you make changes that break BC, you must update the plugin version and the required Elgg release."
msgstr ""

#: ../../guides/upgrading.rst:26
# dd716d815f85445d8b83d931902310c2
msgid "Example of (shortened) old version:"
msgstr ""

#: ../../guides/upgrading.rst:42
# 68b42d96715b4a45af69dcbe33e45fbe
msgid "Example of (shortened) new version:"
msgstr ""

#: ../../guides/upgrading.rst:60
# 00d55457e3494fa9a8bade73f22fb79d
msgid "$CONFIG and $vars['config']"
msgstr ""

#: ../../guides/upgrading.rst:62
# a118504911f94b6991b1b7f11a4b5d6c
msgid "Both the global ``$CONFIG`` variable and the ``$vars['config']`` parameter have been deprecated. They should be replaced with the ``elgg_get_config()`` function."
msgstr ""

#: ../../guides/upgrading.rst:64
# 267eaacef596475b92a331d1951beaaa
msgid "Example of old code:"
msgstr ""

#: ../../guides/upgrading.rst:75
# 56ade9f378e44defb6227f574ce64772
msgid "Example of new code:"
msgstr ""

#: ../../guides/upgrading.rst:83
#: ../../guides/upgrading.rst:272
# f3eaf221798c488a8a8c9e3830702aca
# f61bbafa832f4f0abc12857bbe64f3fd
msgid "Compatible with 1.8"
msgstr ""

#: ../../guides/upgrading.rst:87
# d9895e6969ca427caabf2046648391fc
msgid "See how the community_plugins plugin was updated: https://github.com/Elgg/community_plugins/commit/f233999bbd1478a200ee783679c2e2897c9a0483"
msgstr ""

#: ../../guides/upgrading.rst:90
# fa3527a21db74792a013c2b27b7ef893
msgid "Language files"
msgstr ""

#: ../../guides/upgrading.rst:92
# 681670c1fa15485598fa1d40225f2021
msgid "In Elgg 1.8 the language files needed to use the ``add_translation()`` function. In 1.9 it is enough to just return the array that was previously passed to the function as a parameter. Elgg core will use the file name (e.g. en.php) to tell which language the file contains."
msgstr ""

#: ../../guides/upgrading.rst:95
# 29986da4e5894003ae6dd9f9daa5af2d
msgid "Example of the old way in ``languages/en.php``:"
msgstr ""

#: ../../guides/upgrading.rst:104
# 6c6ca80d697446dc836f05f9d2b5b2db
msgid "Example of new way:"
msgstr ""

#: ../../guides/upgrading.rst:114
#: ../../guides/upgrading.rst:204
#: ../../guides/upgrading.rst:300
#: ../../guides/upgrading.rst:362
# 88b5d0c742264120bd777dbc8c9f8398
# c12ff3302ddd4a3e8a0b6faa70ac0764
# a23337653d374cb6affe3acd2482eeb6
# b2766bb0ef8d4197ad6d1eeaac664702
msgid "Not compatible with 1.8"
msgstr ""

#: ../../guides/upgrading.rst:117
# dbdb0bb6622643faafea38d149778afe
msgid "Notifications"
msgstr ""

#: ../../guides/upgrading.rst:119
# 30cfa1115c864670a56842e6f9203f83
msgid "One of the biggest changes in Elgg 1.9 is the notifications system. The new system allows more flexible and scalable way of sending notifications."
msgstr ""

#: ../../guides/upgrading.rst:121
#: ../../guides/upgrading.rst:222
#: ../../guides/upgrading.rst:307
# 863e402d87fa4a4a982cfe16bdcc31a7
# 35c462adcdc542ecb5808d760d86175e
# fc80aec83a484cd6bc3cbe5240f4cf28
msgid "Example of the old way:"
msgstr ""

#: ../../guides/upgrading.rst:160
#: ../../guides/upgrading.rst:242
#: ../../guides/upgrading.rst:328
# 029358d96c284725bf8c26c4a6ed0c6e
# 1c36ae67ed1c4a1fb5e325332bee5f4d
# 2501c6dedde04d7faad1d73396843f50
msgid "Example of the new way:"
msgstr ""

#: ../../guides/upgrading.rst:208
# 2a9ebbf84f2b4c4889ded5a8395ae11f
msgid "See how the community_plugins plugin was updated to use the new system: https://github.com/Elgg/community_plugins/commit/bfa356cfe8fb99ebbca4109a1b8a1383b70ff123"
msgstr ""

#: ../../guides/upgrading.rst:210
# e122a33792a34aeb8e5c5195b109551d
msgid "Notifications can also be sent with the ``notify_user()`` function."
msgstr ""

#: ../../guides/upgrading.rst:212
# 0d71faeb77964b7f9b1bdde6d903a84c
msgid "It has however been updated to support three new optional parameters passed inside an array as the fifth parameter."
msgstr ""

#: ../../guides/upgrading.rst:214
# 99d38a6c1ed347599704975f67898a2b
msgid "The parameters give notification plugins more control over the notifications, so they should be included whenever possible. For example the bundled site_notifications plugin won't work properly if the parameters are missing."
msgstr ""

#: ../../guides/upgrading.rst:216
# 24f37633f33f4743aee91bc76766bfef
msgid "Parameters:"
msgstr ""

#: ../../guides/upgrading.rst:218
# 95bc8c85c06543158b79cec8ad3be55e
msgid "**object** The object that we are notifying about (e.g. ElggEntity or ElggAnnotation). This is needed so that notification plugins can provide a link to the object."
msgstr ""

#: ../../guides/upgrading.rst:219
# 0b729faba59d4b56a16cba94fb19947c
msgid "**action** String that describes the action that triggered the notification (e.g. \"create\", \"update\", etc)."
msgstr ""

#: ../../guides/upgrading.rst:220
# 962c9857ed604a9ca0a6ea3154bda9ca
msgid "**summary** String that contains a summary of the notification. (It should be more informative than the notification subject but less informative than the notification body.)"
msgstr ""

#: ../../guides/upgrading.rst:275
# a81c354842cd4c648a486567120a5b80
msgid "Adding items to the Activity listing"
msgstr ""

#: ../../guides/upgrading.rst:290
# 85f0434b5b5c454d9c7ab72757b2b9ad
msgid "You can also add the optional ``target_guid`` parameter which tells the target of the create action."
msgstr ""

#: ../../guides/upgrading.rst:292
# dd96a6c9d8f641b9879b2a109a0f2f39
msgid "If the photo would had been added for example into a photo album, we could add it by passing in also:"
msgstr ""

#: ../../guides/upgrading.rst:303
# dd0e561c573546efb2a71b31113e8cb8
msgid "Entity URL handlers"
msgstr ""

#: ../../guides/upgrading.rst:305
# 70d83617cbea47a6a76eeaef607a5e75
msgid "The ``elgg_register_entity_url_handler()`` function has been deprecated. In 1.9 you should use the ``'entity:url', 'object'`` plugin hook instead."
msgstr ""

#: ../../guides/upgrading.rst:365
# b799606a84b44b1fb8a0b30964e1e32d
msgid "From 1.7 to 1.8"
msgstr ""

#: ../../guides/upgrading.rst:366
# cb22f9c2a49748929b05bc8ce22bcecc
msgid "Elgg 1.8 is the biggest leap forward in the development of Elgg since version 1.0. As such, there is more work to update core and plugins than with previous upgrades. There were a small number of API changes and following our standard practice, the methods we deprecated have been updated to work with the new API. The biggest changes are in the standardization of plugins and in the views system."
msgstr ""

#: ../../guides/upgrading.rst:374
# 57e65993a2e445028988827ffb97a1cb
msgid "Updating core"
msgstr ""

#: ../../guides/upgrading.rst:375
# 6fa9440e2264466ba55ccac6d97dba8e
msgid "Delete the following core directories (same level as _graphics and engine):"
msgstr ""

#: ../../guides/upgrading.rst:377
# 19bdbce3b7a6471c9cae460024ccec08
msgid "_css"
msgstr ""

#: ../../guides/upgrading.rst:378
# bab86fad03eb4e48b8edad1796ece738
msgid "account"
msgstr ""

#: ../../guides/upgrading.rst:379
# a2e4ac1ea3d4404a975c807d2343849c
msgid "admin"
msgstr ""

#: ../../guides/upgrading.rst:380
# ff8e067079a34ef7a5d151ba12c0d6e8
msgid "dashboard"
msgstr ""

#: ../../guides/upgrading.rst:381
# 6e5cb0856afa4eeab352cfc591aebfa7
msgid "entities"
msgstr ""

#: ../../guides/upgrading.rst:382
# e48cec80966b4b9595cefa463cfb5cb5
msgid "friends"
msgstr ""

#: ../../guides/upgrading.rst:383
# c6b0b8d4a17a4ea2823c3bb333c1600f
msgid "search"
msgstr ""

#: ../../guides/upgrading.rst:384
# 5f35fc5d2532470a84806f05ec22edfc
msgid "settings"
msgstr ""

#: ../../guides/upgrading.rst:385
# 847c8c8110a04efda83692c27940c8a7
msgid "simplecache"
msgstr ""

#: ../../guides/upgrading.rst:386
# 8cb8496b4d194dedaeee39a166b81570
msgid "views"
msgstr ""

#: ../../guides/upgrading.rst:390
# 2dd814ebbcb044e5855ff9f328119bb8
msgid "If you do not delete these directories before an upgrade, you will have problems!"
msgstr ""

#: ../../guides/upgrading.rst:394
# fe8d430c037d4f65bb1c64880f9b0f4f
msgid "Updating plugins"
msgstr ""

#: ../../guides/upgrading.rst:397
# 8df4b0ff34454fa1bbac647750904527
msgid "Use standardized routing with page handlers"
msgstr ""

#: ../../guides/upgrading.rst:398
# d75b305926214f34b65cbf6bcb692b1c
msgid "All: /page_handler/all"
msgstr ""

#: ../../guides/upgrading.rst:399
# cf4b440741634597aa383eca9b3b3974
msgid "User’s content: /page_handler/owner/:username"
msgstr ""

#: ../../guides/upgrading.rst:400
# a30abc5181a34432b072cb04da8520b0
msgid "User’s friends' content: /page_handler/friends/:username"
msgstr ""

#: ../../guides/upgrading.rst:401
# 5479e850f12a4520877dd81659f9fa0d
msgid "Single entity: /page_handler/view/:guid/:title"
msgstr ""

#: ../../guides/upgrading.rst:402
# 257420e5677747c9b064ab4af0062fa6
msgid "Added: /page_handler/add/:container_guid"
msgstr ""

#: ../../guides/upgrading.rst:403
# f6e152ea150545cd88f81f577e9a7586
msgid "Editing: /page_handler/edit/:guid"
msgstr ""

#: ../../guides/upgrading.rst:404
# 3ab974c3070143f9af7c18a9ca9b3178
msgid "Group list: /page_handler/group/:guid/all"
msgstr ""

#: ../../guides/upgrading.rst:408
# f27358e23c0a4bb89815421fb5c9fa6c
msgid "Include page handler scripts from the page handler"
msgstr ""

#: ../../guides/upgrading.rst:409
# 8f59995ccdba46bcbc2f3c36854a1ae6
msgid "Almost every page handler should have a page handler script. (Example: ``bookmarks/all => mod/bookmarks/pages/bookmarks/all.php``)"
msgstr ""

#: ../../guides/upgrading.rst:412
# 1d4b3325a1f84d17be3b60abd040bb97
msgid "Call ``set_input()`` for entity guids in the page handler and use ``get_input()`` in the page handler scripts."
msgstr ""

#: ../../guides/upgrading.rst:413
# e999594fab0747baad158f0afb54704f
msgid "Call ``gatekeeper()`` and ``admin_gatekeeper()`` in the page handler function if required."
msgstr ""

#: ../../guides/upgrading.rst:414
# 11f2effaddd240f39472eb6c30dcc1ab
msgid "The group URL should use the ``pages/:handler/owner.php`` script."
msgstr ""

#: ../../guides/upgrading.rst:415
# badcc1e96c1c417db615b2550b433b57
msgid "Page handlers should not contain HTML."
msgstr ""

#: ../../guides/upgrading.rst:416
# f581cc0a89554f10ae264d5ce9fa9ea4
msgid "Update the URLs throughout the plugin. (Don't forget to remove ``/pg/``!)"
msgstr ""

#: ../../guides/upgrading.rst:420
# 0832bc9b6dc741518caa2b4bea954c7c
msgid "Use standardized page handlers and scripts"
msgstr ""

#: ../../guides/upgrading.rst:421
# 805e9865e58149e696d748a207c75588
msgid "Store page handler scripts in ``mod/:plugin/pages/:page_handler/:page_name.php``"
msgstr ""

#: ../../guides/upgrading.rst:422
# cab262e053c445e99959fcf9f89504ec
msgid "Use the content page layout in page handler scripts:"
msgstr ""

#: ../../guides/upgrading.rst:428
# ea7c2b127b0045e9a094817a5a551d83
msgid "Page handler scripts should not contain HTML."
msgstr ""

#: ../../guides/upgrading.rst:429
# bc6e82c9adc543adaa747202388f52c9
msgid "Call ``elgg_push_breadcrumb()`` in the page handler scripts."
msgstr ""

#: ../../guides/upgrading.rst:430
# 7bbe3435a6f6482baf3bf48df0b24b97
msgid "No need to set page owner if the URLs are in the standardized format."
msgstr ""

#: ../../guides/upgrading.rst:431
# 1a2c815072a7448da7672025dd2c09e5
msgid "For group content, check the container_guid by using elgg_get_page_owner_entity()."
msgstr ""

#: ../../guides/upgrading.rst:435
# cac8ab81b59c4fa690016c7cf65bd36a
msgid "The ``object/:subtype`` view"
msgstr ""

#: ../../guides/upgrading.rst:436
# 0176f04a81b244a3a975aa4d90907fc2
msgid "Make sure there are views for ``$vars['full_view'] == true`` and ``$vars['full_view'] == false``. ``$vars['full_view']`` replaced ``$vars['full]``."
msgstr ""

#: ../../guides/upgrading.rst:437
# 710b3eac6b6843bda27600651f2e5a12
msgid "Check for the object in ``$vars['entity']``. Use ``elgg_instance_of()`` to make sure it's the type of entity you want."
msgstr ""

#: ../../guides/upgrading.rst:438
# faa81755318d4f40b4eb4e234e47fcbe
msgid "Return ``true`` to short circuit the view if the entity is missing or wrong."
msgstr ""

#: ../../guides/upgrading.rst:439
# da00df4c8d724a0495e3a3f5df57a454
msgid "Use ``elgg_view(‘object/elements/summary’, array(‘entity’ => $entity));`` and ``elgg_view_menu(‘entity’, array(‘entity’ => $entity));`` to help format. You should use very little markup in these views."
msgstr ""

#: ../../guides/upgrading.rst:443
# 28787730a09748288d5b0f9266e3e03f
msgid "Update action structure"
msgstr ""

#: ../../guides/upgrading.rst:444
# 85e8aa950b984251b6cdc572b3d8cb4e
msgid "Namespace action files and action names (example: ``mod/blog/actions/blog/save.php`` => ``action/blog/save``)"
msgstr ""

#: ../../guides/upgrading.rst:445
# 1f77fdd608554272afbe55c8bbc1f028
msgid "Use the following action URLs:"
msgstr ""

#: ../../guides/upgrading.rst:447
# 19b76e3014204cee87afc492e6ccc6e6
msgid "Add: ``action/:plugin/save``"
msgstr ""

#: ../../guides/upgrading.rst:448
# 8f60f94ef50749329aa9b7163d718942
msgid "Edit: ``action/:plugin/save``"
msgstr ""

#: ../../guides/upgrading.rst:449
# 0f895e187bbc48589086784a64ce11ad
msgid "Delete: ``action/:plugin/delete``"
msgstr ""

#: ../../guides/upgrading.rst:451
# 7888e505f16144f5836404153c865b7c
msgid "Make the delete action accept ``action/:handler/delete?guid=:guid`` so the metadata entity menu has the correct URL by default."
msgstr ""

#: ../../guides/upgrading.rst:455
# 2cc19f4a519a4888b7439c8e09949e78
msgid "Update deprecated functions"
msgstr ""

#: ../../guides/upgrading.rst:456
# 0119f7a331824b49a691b5b5a68bee9c
msgid "Functions deprecated in 1.7 will produce visible errors in 1.8."
msgstr ""

#: ../../guides/upgrading.rst:458
# f9386cd5ddb94cd0adfa9035bb4fd275
msgid "See ``/engine/lib/deprecated-1.7.php`` for the full list."
msgstr ""

#: ../../guides/upgrading.rst:460
# fddb752ac0ab4229b2288722198400e5
msgid "You can also update functions deprecated in 1.8."
msgstr ""

#: ../../guides/upgrading.rst:462
# fb2004e74a214404b4211c683d5c3cf1
msgid "Many registration functions simply added an ``elgg_`` prefix for consistency, and should be easy to update."
msgstr ""

#: ../../guides/upgrading.rst:463
# b5aeaa7b4c254d0784b2c1051d73af77
msgid "See ``/engine/lib/deprecated-1.8.php`` for the full list."
msgstr ""

#: ../../guides/upgrading.rst:464
# 94dc87a7a20142a6a147eb256ab6190d
msgid "You can set the debug level to “warning” to get visual reminders of deprecated functions."
msgstr ""

#: ../../guides/upgrading.rst:468
# f5984be346cc460bb80fa192c7712dfc
msgid "Update the widget views"
msgstr ""

#: ../../guides/upgrading.rst:469
# 132629c3be7844a280f4c1f457c9c2f2
msgid "See the blog or file widgets for examples."
msgstr ""

#: ../../guides/upgrading.rst:473
# d2f1620521ff497ba37bc692c0a67aaf
msgid "Update the group profile module"
msgstr ""

#: ../../guides/upgrading.rst:474
# 270afeda0a5d491cbbcfc43622388640
msgid "Use the blog or file plugins for examples. This will help with making your plugin themeable by the new CSS framework."
msgstr ""

#: ../../guides/upgrading.rst:478
# 469b2df276204340b80d99ec9aa0a47d
msgid "Update forms"
msgstr ""

#: ../../guides/upgrading.rst:479
# 9fed64b7ec7c48d899e319bd109f23ea
msgid "Move form bodies to the ``forms/:action`` view to use Evan's new ``elgg_view_form``."
msgstr ""

#: ../../guides/upgrading.rst:480
# 7f6617f28ba343a4988a99d25eb19beb
msgid "Use input views in form bodies rather than html. This helps with theming and future-proofing."
msgstr ""

#: ../../guides/upgrading.rst:481
# 8402b2e902c14b2db2b49357132ecaa3
msgid "Add a function that prepares the form (see ``mod/file/lib/file.php`` for an example)"
msgstr ""

#: ../../guides/upgrading.rst:482
# 9e54f63684274fd88415a8f870d6d9b2
msgid "Make your forms sticky (see the file plugin's upload action and form prepare function)."
msgstr ""

#: ../../guides/upgrading.rst:484
# 5535978479884ec599985282ab936610
msgid "The forms API is discussed in more detail in :doc:`/guides/actions`."
msgstr ""

#: ../../guides/upgrading.rst:488
# c6d25b596ef9470bbf3e6205481fe76f
msgid "Clean up CSS/HTML"
msgstr ""

#: ../../guides/upgrading.rst:489
# 31a87141b48a49fbb29e3a3a33fb564e
msgid "We have added many CSS patterns to the base CSS file (modules, image block, spacing primitives). We encourage you to use these patterns and classes wherever possible. Doing so should:"
msgstr ""

#: ../../guides/upgrading.rst:491
# 4ac5de3ec2e8422abce9b4aa7370e870
msgid "Reduce maintenance costs, since you can delete most custom CSS."
msgstr ""

#: ../../guides/upgrading.rst:492
# 8ed4402c04bb4daba3efdfed42753877
msgid "Make your plugin more compatible with community themes."
msgstr ""

#: ../../guides/upgrading.rst:494
# dafd0a0626634d5ba0bca740bad26171
msgid "Look for patterns that can be moved into core if you need significant CSS."
msgstr ""

#: ../../guides/upgrading.rst:496
# c1a21868001e4d878592b36c310ca4c8
msgid "We use hyphens rather than underscores in classes/ids and encourage you do the same for consistency."
msgstr ""

#: ../../guides/upgrading.rst:498
# fa7e5a526fee4636920df4f00b3f926d
msgid "If you do need your own CSS, you should use your own namespace, rather than ``elgg-``."
msgstr ""

#: ../../guides/upgrading.rst:502
# 934a195ae963466e8e0994bf3573e1db
msgid "Update manifest.xml"
msgstr ""

#: ../../guides/upgrading.rst:503
# 281c956ee3574545941c973f58b8003b
msgid "Use http://el.gg/manifest17to18 to automate this."
msgstr ""

#: ../../guides/upgrading.rst:504
# 7fd86d2ab0184c14bcf7ddc3fad0ebda
msgid "Don't use the \"bundled\" category with your plugins. That is only for plugins distributed with Elgg."
msgstr ""

#: ../../guides/upgrading.rst:508
# 2a808debc13542cc96e025bc068df26d
msgid "Update settings and user settings views"
msgstr ""

#: ../../guides/upgrading.rst:509
# 85ab391f877e4d5393c3c2655f8d94fc
msgid "The view for settings is now ``plugins/:plugin/settings`` (previously ``settings/:plugin/edit``)."
msgstr ""

#: ../../guides/upgrading.rst:510
# b0b684718adb4943b84c0ec69f699b44
msgid "The view for user settings is now ``plugins/:plugin/usersettings`` (previously ``usersettings/:plugin/edit``)."
msgstr ""

#: ../../guides/views.rst:5
# 030a1091096449eaa309100a16b471b9
msgid "Introduction"
msgstr ""

#: ../../guides/views.rst:7
# d4eaed659f0547bd85eccc4edf3067d8
msgid "Elgg follows a MVC pattern and Views are the V in MVC. Views are responsible for creating the output. Generally, this will be HTML sent to a web browser, but it could also be RSS, JSON or any number of other data formats."
msgstr ""

#: ../../guides/views.rst:9
# dfecc331a0374cc1abf80a026eddbc9c
msgid "The Views system handles everything from the layout of pages and chunks of presentation output (like a footer or a toolbar) down to individual links and form inputs. It also allows for advanced features like automatic RSS generation, a swift-to-develop mobile interface, and the alternative interfaces suggested below."
msgstr ""

#: ../../guides/views.rst:12
# a449fb3738444926b86dbb86c42c2a6f
msgid "Using views"
msgstr ""

#: ../../guides/views.rst:14
# fbed254e064849138b2635cb9aa5e648
msgid "At their most basic level, the default views are just PHP files with snippets of html. For example:"
msgstr ""

#: ../../guides/views.rst:20
# 202246c8e1604e09b3023277c367c671
msgid "Assuming this view is located at ``/views/default/hello.php``, we could output it like so:"
msgstr ""

#: ../../guides/views.rst:26
# 432265d9b6f34793a002d40492b2226a
msgid "For your convenience, Elgg comes with quite a lot of views by default. In order to keep things manageable, they are organized into subdirectories. Elgg handles this situation quite nicely. For example, our simple view might live in ``/views/default/hello/world.php``, in which case it would be called like so:"
msgstr ""

#: ../../guides/views.rst:32
# 05f0275803f84e96aeff866760899f32
msgid "Well that's easy enough to remember! The name of the view simply reflects the location of the view in the views directory."
msgstr ""

#: ../../guides/views.rst:35
# fdc4cc18f08e46948cd7229acc226fa7
msgid "Views as templates"
msgstr ""

#: ../../guides/views.rst:37
# c09a1caf246a4b23a028a44d5f73e8cb
msgid "Views would be pretty useless if they could only contain static information. Fortunately, you can pass arbitrary data to a view via the ``$vars`` array. Our ``hello/world`` view might be modified to accept a variable like so:"
msgstr ""

#: ../../guides/views.rst:43
# ccbec6a012f049ec86aa60a2d37eef8d
msgid "In this case, we can pass an arbitrary name parameter to the view like so:"
msgstr ""

#: ../../guides/views.rst:49
# a1a7f1f2d6244bf9a4ed48b87dd97902
msgid "which would produce the following output:"
msgstr ""

#: ../../guides/views.rst:56
# dce09311a84d4395afe1e2e7aee6c814
msgid "Overriding views in plugins"
msgstr ""

#: ../../guides/views.rst:58
# c06c318da13b4e7b95ec57d59049b034
msgid "You may want to change the output or rendering strategy of a view that Elgg provides by default. Fortunately, Elgg's plugin system makes this easy. Each plugin may have its own ``/views`` directory, with its own viewtypes. Views in plugin directories always override views in the core directory, so this allows you to customize the behavior of any number of views without touching Elgg core."
msgstr ""

#: ../../guides/views.rst:60
# 009ee96a5c0349848fa2559b9613a6c4
msgid "For example, if we wanted to customize the ``hello/world`` view to use an ``h2`` instead of an ``h1``, we could create a file at ``/mod/example/views/default/hello/world.php`` like this:"
msgstr ""

#: ../../guides/views.rst:66
# 4078397ed56541e8aae32cdc1c933f7f
msgid "While it is **not recommended**, one *could* alternatively force the location of a view using the ``set_view_location`` function:"
msgstr ""

#: ../../guides/views.rst:72
# 17deec0d6f9046fc9720e268e65940fb
msgid "Again, the best way to override views is to place them in the appropriate place in the views hierarchy."
msgstr ""

#: ../../guides/views.rst:76
# 0713d8d541b44150b5d5bdad37722947
msgid "When considering long-term maintenance, overriding views in the core and bundled plugins has a cost: Upgrades may bring changes in views, and if you have overridden them, you will not get those changes. You may want to use `post processing <views#post-processing-views>`__ if the change you're making can be easily made with string replacement methods."
msgstr ""

#: ../../guides/views.rst:80
# c90cddc2b77d4c94b9308a8f8cb87398
msgid "Elgg caches view locations. This means that you should disable the system cache while working with views. When you install the changes to a production environment you mush flush the caches."
msgstr ""

#: ../../guides/views.rst:83
# ac1f76894dbb4b6398ef86ca8a01b1d1
msgid "Viewtypes"
msgstr ""

#: ../../guides/views.rst:85
# 1c3e730287ae495a9bd2e9efb903b076
msgid "You might be wondering, \"what's with the 'default' in the directory structure? Why don't we just put the ``hello/world`` view at ``/views/hello/world.php``?\"."
msgstr ""

#: ../../guides/views.rst:87
# e9293509d76f455cbcc397c7065037e7
msgid "Great question."
msgstr ""

#: ../../guides/views.rst:89
# 2f155a8e870941a980568db00dae2891
msgid "This subdirectory (the one under ``/views``) determines the *viewtype* of the views below it. It's possible that you might want your Elgg site to have several sets of interface pages. For example:"
msgstr ""

#: ../../guides/views.rst:91
# fb70babaa64542e3a3c458e6b06b70b1
msgid "Standard HTML for desktop browsing (This is the default view)"
msgstr ""

#: ../../guides/views.rst:92
# 346b0ed5c9444e54b8d00510697b9149
msgid "HTML optimized for Mobile devices (iPhone, Android, Blackberry, etc.)"
msgstr ""

#: ../../guides/views.rst:93
# 4df2cc3943c04d0b9c35149123b68511
msgid "HTML optimized Tablet devices (iPad, etc.)"
msgstr ""

#: ../../guides/views.rst:94
# d3818e692b9440aa9c2ae775f44d9495
msgid "RSS"
msgstr ""

#: ../../guides/views.rst:95
# a2f89f1991c349bdabdc255ec39c0ca3
msgid "Atom"
msgstr ""

#: ../../guides/views.rst:96
# 8b38fb5aaff642089ba1bc35f3ebfad4
msgid "JSON"
msgstr ""

#: ../../guides/views.rst:97
# cc8a0d0fff60447d9ee6f65682aaf508
msgid "etc..."
msgstr ""

#: ../../guides/views.rst:99
# c9bb5de5fdfe40a09554d3785b3d8a06
msgid "In Elgg, one set of these interface pages is called a *viewtype*. You can force Elgg to use a particular viewtype to render the page simply by setting the ``$view`` input variable. For example, to get an RSS version of the home page, you would access ``http://localhost/elgg/?view=rss``."
msgstr ""

#: ../../guides/views.rst:101
# 7e732b0231a740e7b16f4fd1d4151217
msgid "You could also write a plugin to set this automatically using the ``set_input()`` function. For example, your plugin might detect that the page was accessed with an iPhone's browser string, and set the viewtype to *handheld* by calling:"
msgstr ""

#: ../../guides/views.rst:107
# e62ffa5d16ad4747a15f682340bfbf2e
msgid "The plugin would presumably also supply a set of views optimized for handheld devices."
msgstr ""

#: ../../guides/views.rst:110
# 41d2d72203d1455dba969017361d8eb7
msgid "Extending views"
msgstr ""

#: ../../guides/views.rst:112
# 3cc8b8d6720547a8ba247b8e1073ea5b
msgid "There may be other situations in which you don't want to override the whole view, you just want to add some more content to the end of it. In Elgg this is called *extending* a view."
msgstr ""

#: ../../guides/views.rst:114
# 53c1a3c0266e483abd9dfcd27ab1eeb4
msgid "For example, instead of overriding the ``hello/world`` view, we could extend it like so:"
msgstr ""

#: ../../guides/views.rst:120
# 19e66bddfdfe4004b8ce5c1da0888213
msgid "If the contents of ``/views/default/hello/greeting.php`` is:"
msgstr ""

#: ../../guides/views.rst:126
# 04b3c8dd3b6940639d39451f800d3c26
msgid "Then every time we call ``elgg_view('hello/world');``, we'll get:"
msgstr ""

#: ../../guides/views.rst:133
# 4604b60575fd46d28e48c158a06572c8
msgid "You can also optionally prepend views as well by passing a value to the 3rd parameter that is less than 500:"
msgstr ""

#: ../../guides/views.rst:143
# c927e5d98ce14831995b19fcf545c9cc
msgid "Note that if you extend the core css view like this:"
msgstr ""

#: ../../guides/views.rst:149
# 0e6522a43a2d489bbf28c8962029374b
msgid "You **must** do so within code that is executed by engine/start.php (normally this would mean your plugin's init code).  Because the core css view is loaded separately via a ``<link>`` tag, any extensions you add will not have the same context as the rest of your page."
msgstr ""

#: ../../guides/views.rst:152
# e8e5ae526bd944758cd29adefe43d247
msgid "Post processing views"
msgstr ""

#: ../../guides/views.rst:154
# 19afa059d34e4fb8a5bf1f9b7e9f92f3
msgid "Sometimes it is preferable to process or rewrite the output of a view instead of overriding it."
msgstr ""

#: ../../guides/views.rst:156
# 70435b0202db43768cefe0e994c92a50
msgid "The output of each view is run through the `plugin hook <guides/events.html#post-plugin-hooks>`__ ``[view, view_name]`` before being returned by ``elgg_view()``. Each registered handler function is passed these arguments:"
msgstr ""

#: ../../guides/views.rst:158
# 708c85e910a94c60974c96baffe835d7
msgid "``$hook`` - the string ``\"view\"``"
msgstr ""

#: ../../guides/views.rst:159
# eae44456f1904f9dae6e1e3f6403465e
msgid "``$type`` - the view name being rendered (the first argument passed to ``elgg_view()``)"
msgstr ""

#: ../../guides/views.rst:160
# 2ccb0f1ab67d46758001bc3798dc345f
msgid "``$returnvalue`` - the rendered output of the view (or the return value of the last handler)"
msgstr ""

#: ../../guides/views.rst:161
# 677b8a61e76a4566b26128d9fead901c
msgid "``$params`` - an array containing the key ``viewtype`` with value being the `viewtype <views.html#viewtypes>`__ being rendered"
msgstr ""

#: ../../guides/views.rst:163
# a41d7bbb19c44741bc974cf66514ba95
msgid "To alter the view output, the handler just needs to alter ``$returnvalue`` and return a new string."
msgstr ""

#: ../../guides/views.rst:166
# 5b12e462c9eb4297bf36ed7d9e158c21
msgid "Post pocessing view example"
msgstr ""

#: ../../guides/views.rst:168
# a9f72139c40d4113a2365bb39de7b7bc
msgid "Here we'll eliminate breadcrumbs that don't have at least one link."
msgstr ""

#: ../../guides/views.rst:189
# 51ed79f3758b40e399067bddf81d5d38
msgid "If you don't know what an entity is, :doc:`check this page out first </design/database>`."
msgstr ""

#: ../../guides/views.rst:191
# faa62ef8da50439eacb17f2635744ae2
msgid "The following code will automatically display the entity in ``$entity``:"
msgstr ""

#: ../../guides/views.rst:197
# 14b921b25c6f441584b53ac5c81bf8f8
msgid "As you'll know from the data model introduction, all entities have a *type* (object, site, user or group), and optionally a subtype (which could be anything - 'blog', 'forumpost', 'banana'). ``elgg_view_entity`` will automatically look for a view called ``type/subtype``; if there's no subtype, it will look for ``type/type``. Failing that, before it gives up completely it tries ``type/default``. (RSS feeds in Elgg generally work by outputting the ``object/default`` view in the 'rss' viewtype.)"
msgstr ""

#: ../../guides/views.rst:199
# 4b102dc8fa27438d822f3e956384b96c
msgid "So for example, the view to display a blogpost might be ``object/blog``. The view to display a user is ``user/user``."
msgstr ""

#: ../../guides/views.rst:202
# 5bb00299da754f24b00660f20055a1b7
msgid "Full and partial entity views"
msgstr ""

#: ../../guides/views.rst:204
# 8ee0305e370a4694a82854cd4339fa57
msgid "``elgg_view_entity`` actually has a number of parameters, although only the very first one is required. The first three are:"
msgstr ""

#: ../../guides/views.rst:206
# b54e0ac9853f43008362fcdcfa3369c4
msgid "``$entity`` - The entity to display"
msgstr ""

#: ../../guides/views.rst:207
# 5ddf03814905415c95c25fedadb10f9e
msgid "``$viewtype`` - The viewtype to display in (defaults to the one we're currently in, but it can be forced - eg to display a snippet of RSS within an HTML page)"
msgstr ""

#: ../../guides/views.rst:208
# eed68194e1f0466e90fa75e4fa6bdb51
msgid "``$full_view`` - Whether to display a *full* version of the entity. (Defaults to false.)"
msgstr ""

#: ../../guides/views.rst:210
# 3d9c29e787d047288d47c1e196b14e7c
msgid "This last parameter is passed to the view as ``$vars['full_view']``. It's up to you what you do with it; the usual behaviour is to only display comments and similar information if this is set to true."
msgstr ""

#: ../../guides/views.rst:213
# 89493b3fe99f454984b4b8c6a4bf0bee
msgid "Listing entities"
msgstr ""

#: ../../guides/views.rst:215
# 5a0a6fba2cb842d296de40923904a97b
msgid "This is then used in the provided listing functions. To automatically display a list of blog posts (:doc:`see the full tutorial </tutorials/blog>`), you can call:"
msgstr ""

#: ../../guides/views.rst:224
# 64b17fa247d4452291bfcbf43c18a661
msgid "This function checks to see if there are any entities; if there are, it first displays the ``navigation/pagination`` view in order to display a way to move from page to page. It then repeatedly calls ``elgg_view_entity`` on each entity, before returning the result."
msgstr ""

#: ../../guides/views.rst:226
# 96a6c3f3c7f54e3b9ada8fcf39d98568
msgid "Because it does this, Elgg knows that it can automatically supply an RSS feed - it extends the ``metatags`` view (which is called by the header) in order to provide RSS autodiscovery, which is why you can see the orange RSS icon on those pages."
msgstr ""

#: ../../guides/views.rst:228
# 3e0358c1b127422999eeb29868d21c09
msgid "See also :doc:`check this page out first </design/database>`."
msgstr ""

#: ../../guides/views.rst:231
# 91b120cbc745472d9d8009b90fdec274
msgid "Using a different templating system"
msgstr ""

#: ../../guides/views.rst:233
# f6dcdf31252c4b8180a532687a1ac4bf
msgid "You can write your own templating system if you want to."
msgstr ""

#: ../../guides/views.rst:235
# 80eb98be8bff421182acee724b638093
msgid "Before going through the motions of drawing views, Elgg checks the ``$CONFIG->template_handler`` variable to see if it contains the name of a callable function. If it does, the function will be passed the view name and template vars, and the return value of this function will be returned instead of the standard output:"
msgstr ""

#: ../../guides/web-services.rst:2
# 8fc13f8252ee47b0ae821510d3c0b977
msgid "Web services"
msgstr ""

#: ../../guides/web-services.rst:4
# e294c7f7da904111aa56eb9a1c86ba8b
msgid "Build an HTTP API for your site."
msgstr ""

#: ../../guides/web-services.rst:6
# 10f87e7bec9742ca887fb449d6c0d9cf
msgid "Elgg provides a powerful framework for building web services. This allows developers to expose functionality to other web sites and desktop applications along with doing integrations with third-party web applications. While we call the API RESTful, it is actually a REST/RPC hybrid similar to the APIs provided by sites like Flickr and Twitter."
msgstr ""

#: ../../guides/web-services.rst:12
# 7793785c22d04d82b20c02f2a89b1b50
msgid "To create an API for your Elgg site, you need to do 3 things:"
msgstr ""

#: ../../guides/web-services.rst:14
# 8762cde158c24ab084472fa5a59f6f42
msgid "expose methods"
msgstr ""

#: ../../guides/web-services.rst:15
# 3bbd3867a9164701b434a066aa808655
msgid "setup API authentication"
msgstr ""

#: ../../guides/web-services.rst:16
# c955a59008a240fc8743c8d9f425a279
msgid "setup user authentication"
msgstr ""

#: ../../guides/web-services.rst:18
# e2055481d1db47319bbdd3df629e3d83
msgid "Additionally, you may want to control what types of authentication are available on your site. This will also be covered."
msgstr ""

#: ../../guides/web-services.rst:22
# 337f5a2956464f15aeda68d3f291626c
msgid "Exposing methods"
msgstr ""

#: ../../guides/web-services.rst:24
# c2b4c96d05a941589083450b5b74af3f
msgid "The function to use to expose a method is `expose\\_function()`_. As an example, let's assume you want to expose a function that echos text back to the calling application. The function could look like this"
msgstr ""

#: ../../guides/web-services.rst:34
# e4ba651881a9490b8dedb6c9a63dae0a
msgid "Since we are providing this function to allow developers to test their API clients, we will require neither API authentication nor user authentication. This call registers the function with the web services API framework:"
msgstr ""

#: ../../guides/web-services.rst:50
# 11d1162ba2d34da8bbf10b9631fe7e6b
msgid "If you add this code to a plugin and then go to http://yoursite.com/services/api/rest/xml/?method=system.api.list, you should now see your test.echo method listed as an API call. Further, to test the exposed method from a web browser, you could hit the url: http://yoursite.com/services/api/rest/xml/?method=test.echo&string=testing and you should see xml data like this:"
msgstr ""

#: ../../guides/web-services.rst:65
# 370722f1d1b240278a3edb91bb05ff82
msgid "Response formats"
msgstr ""

#: ../../guides/web-services.rst:67
# 249a55dfc7ad440a900f11ceefa06bdd
msgid "The web services API framework provides three different response formats by default: xml, json, and serialized php. You can request the different formats for substituting “json” or “php” for “xml” in the above URLs. You can also add additional response formats by defining new viewtypes."
msgstr ""

#: ../../guides/web-services.rst:73
# e56d1a01265b4fd7b22db7aba845e490
msgid "API authentication"
msgstr ""

#: ../../guides/web-services.rst:75
# 710c695d334a417287045332584e47cc
msgid "You may want to control access to some of the functions that you expose. Perhaps you are exposing functions in order to integrate Elgg with another open source platform on the same server. In that case, you only want to allow that other application access to these methods. Another possibility is that you want to limit what external developers have access to your API. Or maybe you want to limit how many calls a developer can make against your API in a single day."
msgstr ""

#: ../../guides/web-services.rst:85
# c983e0df2d004182816ce3b80cbb5dcd
msgid "In all of these cases, you can use Elgg's API authentication functions to control access. Elgg provides two built-in methods to perform API authentication: key based and HMAC signature based. You can also add your own authentication methods. The key based approach is very similar to what Google, Flickr, or Twitter. Developers can request a key (a random string) and pass that key with all calls that require API authentication. The keys are stored in the database and if an API call is made without a key or a bad key, the call is denied and an error message is returned."
msgstr ""

#: ../../guides/web-services.rst:96
# 04e8d04c33104bd09b5f0af25f6656dd
msgid "Key-based authentication"
msgstr ""

#: ../../guides/web-services.rst:98
# 45be833ab3004162a3ccb070eb90ffcb
msgid "As an example, let's write a function that returns the number of users that have viewed the site in the last x minutes."
msgstr ""

#: ../../guides/web-services.rst:109
# 644e559162ca44f9a7e272d89d3404f1
msgid "Now, let's expose it and make the number of minutes an optional parameter:"
msgstr ""

#: ../../guides/web-services.rst:124
# b95e97858886436880985d7b80453e29
msgid "This function is now available and if you check ``system.api.list``, you will see that it requires API authentication. If you hit the method with a web browser, it will return an error message about failing the API authentication. To test this method, you need an API key. Fortunately, there is a plugin called apiadmin that creates keys for you. It is available in the Elgg plugin repository. It will return a public and private key and you will use the public key for this kind of API authentication. Grab a key and then do a GET request with your browser on this API method passing in the key string as the parameter ``api_key``. It might look something like this: http://yoursite.com/services/api/rest/xml/?method=users.active&api_key=1140321cb56c71710c38feefdf72bc462938f59f."
msgstr ""

#: ../../guides/web-services.rst:137
# 2d92a5ec77ec4643aa7ca6cfef743d2e
msgid "Signature-based authentication"
msgstr ""

#: ../../guides/web-services.rst:139
# d1b7dc0f139b4e9283df67d7e63231b7
msgid "The `HMAC Authentication`_ is similar to what is used with `OAuth`_ or Amazon's S3 service. This involves both the public and private key. If you want to be very sure that the API calls are coming from the developer you think they are coming from and you want to make sure the data is not being tampered with during transmission, you would use this authentication method. Be aware that it is much more involved and could turn off developers when there are other sites out there with key-based authentication."
msgstr ""

#: ../../guides/web-services.rst:149
# b47cc0c7981d47f0a241423f8313b615
msgid "OAuth"
msgstr ""

#: ../../guides/web-services.rst:151
# 111cacd205b441c2b5ac84452eedf8df
msgid "With the addition of the `OAuth`_ plugin, Elgg also fully supports the OAuth 1.0a authorization standard. Clients can then use standard OAuth libraries to make any API calls to the site."
msgstr ""

#: ../../guides/web-services.rst:159
# 604f975affeb47769599a19461722e0b
msgid "User authentication"
msgstr ""

#: ../../guides/web-services.rst:161
# d7e4aae636534f088743fce8e4021f4d
msgid "So far you have been allowing developers to pull data out of your Elgg site. Now we'll move on to pushing data into Elgg. In this case, it is going to be done by a user. Maybe you have created a desktop application that allows your Users to post to the wire without going to the site. You need to expose a method for posting to the wire and you need to make sure that a user cannot post using someone else's account. Elgg provides a token-based approach for user authentication. It allows a user to submit their username and password in exchange for a token using the method ``auth.gettoken``. This token can then be used for some amount of time to authenticate all calls to the API before it expires by passing it as the parameter ``auth_token``. If you do not want to have your users trusting their passwords to 3rd-party applications, you can also extend the current capability to use an approach like OAuth."
msgstr ""

#: ../../guides/web-services.rst:175
# 9fee7d5b90a247cc80b572bc02bda059
msgid "Let's write our wire posting function:"
msgstr ""

#: ../../guides/web-services.rst:189
# 034a7435336f47ffbf3c0a4c2ebbe633
msgid "Exposing this function is the same as the previous except we require user authentication and we're going to make this use POST rather than GET HTTP requests."
msgstr ""

#: ../../guides/web-services.rst:204
# c6c6fc039a974c5991277655362c0ed9
msgid "Please note that you will not be able to test this using a web browser as you did with the other methods. You need to write some client code to do this. There is some example client code in ``/engine/lib/api.php``. Take a look at `send\\_api\\_post\\_call()`_. You can also do a search for clients that have been written for the APIs of Flickr or Twitter or any other similar API. You will find a wide variety written in almost any language you can think of."
msgstr ""

#: ../../guides/web-services.rst:213
# 6bee8df078d34a97b006f00469153b87
msgid "Building out your API"
msgstr ""

#: ../../guides/web-services.rst:215
# ba79479a65234198950322421f3c7d32
msgid "As soon as you feel comfortable with Elgg's web services API framework, you will want to step back and design your API. What sort of data are you trying to expose? Who or what will be API users? How do you want them to get access to authentication keys? How are you going to document your API? Be sure to take a look at the APIs created by popular Web 2.0 sites for inspiration. If you are looking for 3rd party developers to build applications using your API, you will probably want to provide one or more language-specific clients."
msgstr ""

#: ../../guides/web-services.rst:227
# 698890471fc84feb875e40f083ddb4f2
msgid "Determining the authentication available"
msgstr ""

#: ../../guides/web-services.rst:229
# 2d2ffb005db9409691414c459b4a463f
msgid "Elgg's web services API uses a type of `pluggable authentication module (PAM)`_ architecture to manage how users and developers are authenticated. This provides you the flexibility to add and remove authentication modules. Do you want to not use the default user authentication PAM but would prefer using OAuth? You can do this."
msgstr ""

#: ../../guides/web-services.rst:235
# c8456c104ed44fe8b0d9d1d13d71b0e7
msgid "The first step is registering a callback function for the *rest, init* plugin hook:"
msgstr ""

#: ../../guides/web-services.rst:242
# 2fc1e7631e3f469692a85b118aa8d792
msgid "Then in the callback function, you register the PAMs that you want to use:"
msgstr ""

#: ../../guides/web-services.rst:258
# 57c24b5771ee4f1e87aa8f1bd87623a9
msgid "When testing, you may find it useful to register the ``pam_auth_session`` PAM so that you can easily test your methods from the browser. Be careful not to use this PAM on a production site because it could open up your users to a `CSRF attack`_."
msgstr ""

#: ../../guides/web-services.rst:263
# ef03a7f44b5a4a85bec6799ac966abe1
msgid "Right now, the only other PAMs publicly available besides those provided by the Elgg core are the OAuth PAMs. See `Justin Richer's OAuth plugin`_ for more detail."
msgstr ""

#: ../../guides/widgets.rst:2
# 4125974ec8be4e2c81765162c1fbf70f
msgid "Widgets"
msgstr ""

#: ../../guides/widgets.rst:4
# 3a098323d9c54ffd9368c1ae1da1fc85
msgid "Widgets are content areas that users can drag around their page to customize the layout. They can typically be customized by their owner to show more/less content and determine who sees the widget. By default Elgg provides plugins for customizing the profile page and dashboard via widgets."
msgstr ""

#: ../../guides/widgets.rst:8
# c5fc3b7235644058be5128b04a2bb5d2
msgid "TODO: Screenshot"
msgstr ""

#: ../../guides/widgets.rst:11
# 95e77465932b4360be5c72710eab0ab6
msgid "Structure"
msgstr ""

#: ../../guides/widgets.rst:13
# 4ff784dc8b254cc8a17d32c5133f97c3
msgid "To create a widget, create two views:"
msgstr ""

#: ../../guides/widgets.rst:15
# d1e145c1d2ae4dc88adc722016b0524a
msgid "``widgets/:widget/edit``"
msgstr ""

#: ../../guides/widgets.rst:16
# 81c894e1e33645b08d0dec34b4c5d460
msgid "``widgets/:widget/content``"
msgstr ""

#: ../../guides/widgets.rst:18
# dcf59c4182e345edb7cfdf9c266f3826
msgid "``content.php`` is responsible for all the content that will output within the widget. The edit.php file contains any extra edit functions you wish to present to the user. You do not need to add access level as this comes as part of the widget framework."
msgstr ""

#: ../../guides/widgets.rst:22
# 05fef0f030c44c39b7fa397debfabd97
msgid "NOTE: using HTML checkboxes to set widget flags is problematic because if unchecked, the checkbox input is omitted from form submission. The effect is that you can only set and not clear flags. The \"input/checkboxes\" view will not work properly in a widget's edit panel."
msgstr ""

#: ../../guides/widgets.rst:28
# bc5ecd62b9cd47a3a36165bb3006a240
msgid "Initialise the widget"
msgstr ""

#: ../../guides/widgets.rst:30
# e62083fc6f2d4cc1946f32cd279087ba
msgid "Once you have created your edit and view pages, you need to initialize the plugin widget. This is done within the plugins init() function."
msgstr ""

#: ../../guides/widgets.rst:38
# 85950e8fdd314006864045a78b2ab614
msgid "Note: it is possible to add multiple widgets for a plugin. You just initialize as many widget directories as you need."
msgstr ""

#: ../../guides/widgets.rst:52
# 11ff413d4b81457b8eeaa97a2c6f8fb7
msgid "Multiple widgets"
msgstr ""

#: ../../guides/widgets.rst:54
# c6c8c19df04847cb816512d4b48aef9e
msgid "Make sure you have the corrosponding directories within your plugin views structure:"
msgstr ""

#: ../../guides/widgets.rst:57
# 3b0d36c2da10449d9b5b427de25ced47
msgid "'Plugin'"
msgstr ""

#: ../../guides/widgets.rst:59
# 7e66f142a5354f3b916812b0402efe9b
msgid "/views"
msgstr ""

#: ../../guides/widgets.rst:61
# 9d453e06263c40bcbc477692a66a7352
msgid "/default"
msgstr ""

#: ../../guides/widgets.rst:63
# ae4060d7095c4039a50d0cfcf7fd3d6a
msgid "/widgets"
msgstr ""

#: ../../guides/widgets.rst:65
# d71c3b251e89455790d3af84198c56d1
msgid "/filerepo"
msgstr ""

#: ../../guides/widgets.rst:67
#: ../../guides/widgets.rst:72
#: ../../guides/widgets.rst:77
# 47a25faa8add44338cd0a7bd8cc75048
# c11552791c47440b84129068a3b1c4d7
# 4c7d19ed344b40ac926d3019e4819768
msgid "/edit.php"
msgstr ""

#: ../../guides/widgets.rst:68
#: ../../guides/widgets.rst:73
#: ../../guides/widgets.rst:78
# 0a0016f51b39400598c5d72285729ef2
# 35957dee83c145dfa582d06754bdfc6a
# 12bcccb65b304dcb936adaeff6c9d657
msgid "/view.php"
msgstr ""

#: ../../guides/widgets.rst:70
# 1da06fc961a246bba7d96041e08b5c7f
msgid "/filerepo2"
msgstr ""

#: ../../guides/widgets.rst:75
# 317b54fb35d341cab9136efed0f421a5
msgid "/filerepo3"
msgstr ""

#: ../../guides/widgets.rst:81
# ca05c8a8a6ee44088ce24cf5530c0403
msgid "Elgg 1.8: Default widgets"
msgstr ""

#: ../../guides/widgets.rst:83
# 94b555249d404ae581d06648c8af1485
msgid "If your plugin uses the widget canvas, you can register default widget support with Elgg core, which will handle everything else."
msgstr ""

#: ../../guides/widgets.rst:86
# 44a5e31a513645b09b8e97006a709185
msgid "To announce default widget support in your plugin, register for the ``get_list, default_widgets`` plugin hook:"
msgstr ""

#: ../../guides/widgets.rst:93
# 026fc5e2ee9d4fb7a6c6bcb2f669b425
msgid "In the plugin hook handler, push an array into the return value defining your default widget support and when to create default widgets. Arrays require the following keys to be defined:"
msgstr ""

#: ../../guides/widgets.rst:97
# 58e54dc866424d68bf5d2431d1a8d707
msgid "name - The name of the widgets page. This is displayed on the tab in the admin interface."
msgstr ""

#: ../../guides/widgets.rst:99
# cfd14ca41bc34674a9f294728d9c8282
msgid "widget\\_context - The context the widgets page is called from. (If not explicitly set, this is your plugin's id.)"
msgstr ""

#: ../../guides/widgets.rst:101
# 596a23b7f06d454e888797b7aaccb41b
msgid "widget\\_columns - How many columns the widgets page will use."
msgstr ""

#: ../../guides/widgets.rst:102
# 2eb39d13807e439b9e668b24f29b3d04
msgid "event - The Elgg event to create new widgets for. This is usually “create.”"
msgstr ""

#: ../../guides/widgets.rst:104
# 36b5342cecd243d6a90a3124fbb469ba
msgid "entity\\_type - The entity type to create new widgets for."
msgstr ""

#: ../../guides/widgets.rst:105
# 5a49335ecc904ae68706a8c35b70e060
msgid "entity\\_subtype - The entity subtype to create new widgets for. The can be ELGG\\_ENTITIES\\_ANY\\_VALUE to create for all entity types."
msgstr ""

#: ../../guides/widgets.rst:108
# c0f54e0b64b84335a4831998ed1c4441
msgid "When an object triggers an event that matches the event, entity\\_type, and entity\\_subtype parameters passed, Elgg core will look for default widgets that match the widget\\_context and will copy them to that object's owner\\_guid and container\\_guid. All widget settings will also be copied."
msgstr ""

#: ../../guides/widgets.rst:133
# 59feca8ccc53428694a926c6ede079f1
msgid "Here is a simple Flickr widget that uses Flickr's JSON output."
msgstr ""

#: ../../guides/widgets.rst:135
# 13356a1afd484b4d8df26ca05db7798b
msgid "Widget edit page:"
msgstr ""

#: ../../guides/widgets.rst:146
# 2431038e37fd4828977ba96c195e2232
msgid "Widget view page:"
msgstr ""

