# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2013, Various
# This file is distributed under the same license as the Elgg package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Elgg master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-09 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: ../../appendix/faqs.rst:2
msgid "FAQs and Other Troubleshooting"
msgstr ""

#: ../../appendix/faqs.rst:4
msgid "Below are some commonly asked questions about Elgg."
msgstr ""

#: ../../appendix/faqs.rst:8
#: ../../appendix/releases.rst:16
#: ../../appendix/support.rst:8
#: ../../appendix/upgrade-notes/1.10-to-1.11.rst:6
#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:6
#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:6
#: ../../appendix/upgrade-notes/1.9-to-1.10.rst:6
#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:6
#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:6
#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:6
#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:6
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:6
#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:6
#: ../../appendix/upgrade-notes/3.1-to-3.2.rst:6
#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:7
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:6
msgid "Contents"
msgstr ""

#: ../../appendix/faqs/general.rst:2
#: ../../appendix/faqs/general.rst:2
msgid "General"
msgstr ""

#: ../../appendix/faqs/general.rst:6
#: ../../appendix/faqs/general.rst:6
msgid ":doc:`/admin/getting-help`"
msgstr ""

#: ../../appendix/faqs/general.rst:9
#: ../../appendix/faqs/general.rst:9
msgid "\"Plugin cannot start and has been deactivated\" or \"This plugin is invalid\""
msgstr ""

#: ../../appendix/faqs/general.rst:10
#: ../../appendix/faqs/general.rst:10
msgid "This error is usually accompanied by more details explaining why the plugin is invalid. This is usually caused by an incorrectly installed plugin."
msgstr ""

#: ../../appendix/faqs/general.rst:13
#: ../../appendix/faqs/general.rst:13
msgid "If you are installing a plugin called \"test\", there will be a test directory under mod. In that test directory there needs to be a ``composer.json`` file ``/mod/test/composer.json``."
msgstr ""

#: ../../appendix/faqs/general.rst:20
#: ../../appendix/faqs/general.rst:20
msgid "If this file does not exist, it could be caused by:"
msgstr ""

#: ../../appendix/faqs/general.rst:16
#: ../../appendix/faqs/general.rst:16
msgid "installing a plugin to the wrong directory"
msgstr ""

#: ../../appendix/faqs/general.rst:17
#: ../../appendix/faqs/general.rst:17
msgid "creating a directory under /mod that does not contain a plugin"
msgstr ""

#: ../../appendix/faqs/general.rst:18
#: ../../appendix/faqs/general.rst:18
msgid "a bad ftp transfer"
msgstr ""

#: ../../appendix/faqs/general.rst:19
#: ../../appendix/faqs/general.rst:19
msgid "unzipping a plugin into an extra directory (myplugin.zip unzips to ``myplugin/myplugin``)"
msgstr ""

#: ../../appendix/faqs/general.rst:20
#: ../../appendix/faqs/general.rst:20
msgid "incompatible plugin"
msgstr ""

#: ../../appendix/faqs/general.rst:22
#: ../../appendix/faqs/general.rst:22
msgid "If you are on a Unix-based host and the files exist in the correct directory, check the permissions. Elgg must have read access to the files and read + execute access on the directories."
msgstr ""

#: ../../appendix/faqs/general.rst:25
#: ../../appendix/faqs/general.rst:25
msgid "White Page (WSOD)"
msgstr ""

#: ../../appendix/faqs/general.rst:30
#: ../../appendix/faqs/general.rst:30
msgid "A blank, white page (often called a \"white screen of death\") means there is a PHP syntax error. There are a few possible causes of this:"
msgstr ""

#: ../../appendix/faqs/general.rst:28
#: ../../appendix/faqs/general.rst:28
msgid "corrupted file - try transfering the code again to your server"
msgstr ""

#: ../../appendix/faqs/general.rst:29
#: ../../appendix/faqs/general.rst:29
msgid "a call to a php module that was not loaded - this can happen after you install a plugin that requires a specific module."
msgstr ""

#: ../../appendix/faqs/general.rst:30
#: ../../appendix/faqs/general.rst:30
msgid "bad plugin - not all plugins have been written to the same quality so you should be careful which ones you install."
msgstr ""

#: ../../appendix/faqs/general.rst:32
#: ../../appendix/faqs/general.rst:32
msgid "To find where the error is occurring, change the .htaccess file to display errors to the browser. Set display_errors to 1 and load the same page again. You should see a PHP error in your browser. Change the setting back once you've resolved the problem."
msgstr ""

#: ../../appendix/faqs/general.rst:36
#: ../../appendix/faqs/general.rst:36
msgid "If you are using the Developer's Tools plugin, go to its settings page and make sure you have \"Display fatal PHP errors\" enabled."
msgstr ""

#: ../../appendix/faqs/general.rst:38
#: ../../appendix/faqs/general.rst:38
msgid "If the white screen is due to a bad plugin, remove the latest plugins that you have installed by deleting their directories and then reload the page."
msgstr ""

#: ../../appendix/faqs/general.rst:42
#: ../../appendix/faqs/general.rst:42
msgid "You can temporarily disable all plugins by creating an empty file at ``mod/disabled``. You can then disable the offending module via the administrator tools panel."
msgstr ""

#: ../../appendix/faqs/general.rst:44
#: ../../appendix/faqs/general.rst:44
msgid "If you are getting a WSOD when performing an action, like logging in or posting a blog, but there are no error messages, it's most likely caused by non-printable characters in plugin code. Check the plugin for white spaces/new lines characters after finishing php tag (``?>``) and remove them."
msgstr ""

#: ../../appendix/faqs/general.rst:47
#: ../../appendix/faqs/general.rst:47
msgid "Page not found"
msgstr ""

#: ../../appendix/faqs/general.rst:49
#: ../../appendix/faqs/general.rst:49
msgid "If you have recently installed your Elgg site, the most likely cause for a page not found error is that ``mod_rewrite`` is not setup correctly on your server. There is information in the :doc:`Install Troubleshooting </intro/install>` page on fixing this. The second most likely cause is that your site url in your database is incorrect."
msgstr ""

#: ../../appendix/faqs/general.rst:51
#: ../../appendix/faqs/general.rst:51
msgid "If you've been running your site for a while and suddenly start getting page not found errors, you need to ask yourself what has changed. Have you added any plugins? Did you change your server configuration?"
msgstr ""

#: ../../appendix/faqs/general.rst:53
#: ../../appendix/faqs/general.rst:53
msgid "To debug a page not found error:"
msgstr ""

#: ../../appendix/faqs/general.rst:55
#: ../../appendix/faqs/general.rst:55
msgid "Confirm that the link leading to the missing page is correct. If not, how is that link being generated?"
msgstr ""

#: ../../appendix/faqs/general.rst:56
#: ../../appendix/faqs/general.rst:56
msgid "Confirm that the ``.htaccess`` rewrite rules are being picked up."
msgstr ""

#: ../../appendix/faqs/general.rst:59
#: ../../appendix/faqs/general.rst:59
msgid "Login token mismatch"
msgstr ""

#: ../../appendix/faqs/general.rst:61
#: ../../appendix/faqs/general.rst:61
msgid "If you have to log in twice to your site and the error message after the first attempt says there was a token mismatch error, the URL in Elgg's settings does not match the URL used to access it. The most common cause for this is adding or removing the \"www\" when accessing the site. For example, www.elgg.org vs elgg.org. This causes a problem with session handling because of the way that web browsers save cookies."
msgstr ""

#: ../../appendix/faqs/general.rst:63
#: ../../appendix/faqs/general.rst:63
msgid "To fix this, you can add rewrite rules. To redirect from www.elgg.org to elgg.org in Apache, the rules might look like:"
msgstr ""

#: ../../appendix/faqs/general.rst:71
#: ../../appendix/faqs/general.rst:71
msgid "Redirecting from non-www to www could look like this:"
msgstr ""

#: ../../appendix/faqs/general.rst:78
#: ../../appendix/faqs/general.rst:78
msgid "If you don't know how to configure rewrite rules, ask your host for more information."
msgstr ""

#: ../../appendix/faqs/general.rst:81
#: ../../appendix/faqs/general.rst:81
msgid "Form is missing __token or __ts fields"
msgstr ""

#: ../../appendix/faqs/general.rst:83
#: ../../appendix/faqs/general.rst:83
msgid "All Elgg actions require a security token, and this error occurs when that token is missing. This is either a problem with your server configuration or with a 3rd party plugin."
msgstr ""

#: ../../appendix/faqs/general.rst:85
#: ../../appendix/faqs/general.rst:85
msgid "If you experience this on a new installation, make sure that your server is properly configured and your rewrite rules are correct. If you experience this on an upgrade, make sure you have updated your rewrite rules either in .htaccess (Apache) or in the server configuration."
msgstr ""

#: ../../appendix/faqs/general.rst:87
#: ../../appendix/faqs/general.rst:87
msgid "If you are experiencing this, disable all 3rd party plugins and try again. Very old plugins for Elgg don't use security tokens. If the problem goes away when plugins are disabled, it's due to a plugin that should be updated by its author."
msgstr ""

#: ../../appendix/faqs/general.rst:90
#: ../../appendix/faqs/general.rst:90
msgid "Maintenance mode"
msgstr ""

#: ../../appendix/faqs/general.rst:92
#: ../../appendix/faqs/general.rst:92
msgid "To take your site temporarily offline, go to Administration -> Utilities -> Maintenance Mode. Complete the form and hit save to disable your site for everyone except admin users."
msgstr ""

#: ../../appendix/faqs/general.rst:95
#: ../../appendix/faqs/general.rst:95
msgid "Missing email"
msgstr ""

#: ../../appendix/faqs/general.rst:97
#: ../../appendix/faqs/general.rst:97
msgid "If your users are reporting that validation emails are not showing up, have them check their spam folder. It is possible that the emails coming from your server are being marked as spam. This depends on many factors such as whether your hosting provider has a problem with spammers, how your PHP mail configuration is set up, what mail transport agent your server is using, or your host limiting the number of email that you can send in an hour."
msgstr ""

#: ../../appendix/faqs/general.rst:99
#: ../../appendix/faqs/general.rst:99
msgid "If no one gets email at all, it is quite likely your server is not configured properly for email. Your server needs a program to send email (called a Mail Transfer Agent - MTA) and PHP must be configured to use the MTA."
msgstr ""

#: ../../appendix/faqs/general.rst:101
#: ../../appendix/faqs/general.rst:101
msgid "To quickly check if PHP and an MTA are correctly configured, create a file on your server with the following content:"
msgstr ""

#: ../../appendix/faqs/general.rst:120
#: ../../appendix/faqs/general.rst:120
msgid "Be sure to replace \"your_email@your_host.com\" with your actual email address.  Take care to keep quotes around it!  When you access this page through your web browser, it will attempt to send a test email.  This test will let you know that PHP and your MTA are correctly configured.  If it fails--either you get an error or you never receive the email--you will need to do more investigating and possibly contact your service provider."
msgstr ""

#: ../../appendix/faqs/general.rst:122
#: ../../appendix/faqs/general.rst:122
msgid "Fully configuring an MTA and PHP's email functionality is beyond the scope of this FAQ and you should search the Internet for more resources on this. Some basic information on php parameters can be found on `PHP's site`__"
msgstr ""

#: ../../appendix/faqs/general.rst:128
#: ../../appendix/faqs/general.rst:128
msgid "Server logs"
msgstr ""

#: ../../appendix/faqs/general.rst:130
#: ../../appendix/faqs/general.rst:130
msgid "Most likely you are using Apache as your web server. Warnings and errors are written to a log by the web server and can be useful for debugging problems. You will commonly see two types of log files: access logs and error logs. Information from PHP and Elgg is written to the server error log."
msgstr ""

#: ../../appendix/faqs/general.rst:132
#: ../../appendix/faqs/general.rst:132
msgid "Linux -- The error log is probably in /var/log/httpd or /var/log/apache2."
msgstr ""

#: ../../appendix/faqs/general.rst:133
#: ../../appendix/faqs/general.rst:133
msgid "Windows - It is probably inside your Apache directory."
msgstr ""

#: ../../appendix/faqs/general.rst:134
#: ../../appendix/faqs/general.rst:134
msgid "Mac OS - The error log is probably in /var/log/apache2/error_log"
msgstr ""

#: ../../appendix/faqs/general.rst:136
#: ../../appendix/faqs/general.rst:136
msgid "If you are using shared hosting without ssh access, your hosting provider may provide a mechanism for obtaining access to your server logs. You will need to ask them about this."
msgstr ""

#: ../../appendix/faqs/general.rst:139
#: ../../appendix/faqs/general.rst:139
msgid "How does registration work?"
msgstr ""

#: ../../appendix/faqs/general.rst:141
#: ../../appendix/faqs/general.rst:141
msgid "With a default setup, this is how registration works:"
msgstr ""

#: ../../appendix/faqs/general.rst:143
#: ../../appendix/faqs/general.rst:143
msgid "User fills out registration form and submits it"
msgstr ""

#: ../../appendix/faqs/general.rst:144
#: ../../appendix/faqs/general.rst:144
msgid "User account is created and disabled until validated"
msgstr ""

#: ../../appendix/faqs/general.rst:145
#: ../../appendix/faqs/general.rst:145
msgid "Email is sent to user with a link to validate the account"
msgstr ""

#: ../../appendix/faqs/general.rst:146
#: ../../appendix/faqs/general.rst:146
msgid "When a user clicks on the link, the account is validated"
msgstr ""

#: ../../appendix/faqs/general.rst:147
#: ../../appendix/faqs/general.rst:147
msgid "The user can now log in"
msgstr ""

#: ../../appendix/faqs/general.rst:149
#: ../../appendix/faqs/general.rst:149
msgid "Failures during this process include the user entering an incorrect email address, the validation email being marked as spam, or a user never bothering to validate the account."
msgstr ""

#: ../../appendix/faqs/general.rst:152
#: ../../appendix/faqs/general.rst:152
msgid "User validation"
msgstr ""

#: ../../appendix/faqs/general.rst:154
#: ../../appendix/faqs/general.rst:154
msgid "By default, all users who self-register must validate their accounts through email. If a user has problems validating an account, you can validate users manually by going to Administration -> Users -> Unvalidated."
msgstr ""

#: ../../appendix/faqs/general.rst:157
#: ../../appendix/faqs/general.rst:157
msgid "You can remove this requirement by deactivating the User Validation by Email plugin."
msgstr ""

#: ../../appendix/faqs/general.rst:161
#: ../../appendix/faqs/general.rst:161
msgid "Removing validation has some consequences: There is no way to know that a user registered with a working email address, and it may leave you system open to spammers."
msgstr ""

#: ../../appendix/faqs/general.rst:164
#: ../../appendix/faqs/general.rst:164
msgid "Manually add user"
msgstr ""

#: ../../appendix/faqs/general.rst:166
#: ../../appendix/faqs/general.rst:166
msgid "To manually add a user, under the Administer controls go to Users. There you will see a link title \"Add new User\". After you fill out the information and submit the form, the new user will receive an email with username and password and a reminder to change the password."
msgstr ""

#: ../../appendix/faqs/general.rst:170
#: ../../appendix/faqs/general.rst:170
msgid "Elgg does not force the user to change the password."
msgstr ""

#: ../../appendix/faqs/general.rst:173
#: ../../appendix/faqs/general.rst:173
msgid "I'm making or just installed a new theme, but graphics or other elements aren't working"
msgstr ""

#: ../../appendix/faqs/general.rst:175
#: ../../appendix/faqs/general.rst:175
msgid "Make sure the theme is at the bottom of the plugin list."
msgstr ""

#: ../../appendix/faqs/general.rst:177
#: ../../appendix/faqs/general.rst:177
msgid "Clear your browser cache and reload the page. To lighten the load on the server, Elgg instructs the browser to rarely load the CSS file. A new theme will completely change the CSS file and a refresh should cause the browser to request the CSS file again."
msgstr ""

#: ../../appendix/faqs/general.rst:179
#: ../../appendix/faqs/general.rst:179
msgid "If you're building or modifying a theme, make sure you have disabled the simple and system caches. This can be done by enabling the Developer Tools plugin, then browsing to Administration -> Develop -> Settings. Once you're satisfied with the changes, enable the caches or performance will suffer."
msgstr ""

#: ../../appendix/faqs/general.rst:183
#: ../../appendix/faqs/general.rst:183
msgid "Changing profile fields"
msgstr ""

#: ../../appendix/faqs/general.rst:185
#: ../../appendix/faqs/general.rst:185
msgid "Within the Administration settings of Elgg is a page for replacing the default profile fields. Elgg by default gives the administrator two choices:"
msgstr ""

#: ../../appendix/faqs/general.rst:187
#: ../../appendix/faqs/general.rst:187
msgid "Use the default profile fields"
msgstr ""

#: ../../appendix/faqs/general.rst:188
#: ../../appendix/faqs/general.rst:188
msgid "Replace the default with a set of custom profile fields"
msgstr ""

#: ../../appendix/faqs/general.rst:190
#: ../../appendix/faqs/general.rst:190
msgid "You cannot add new profile fields to the default ones. Adding a new profile field through the replace profile fields option clears the default ones. Before letting in users, it is best to determine what profile fields you want, what field types they should be, and the order they should appear. You cannot change the field type or order or delete fields after they have been created without wiping the entire profile blank."
msgstr ""

#: ../../appendix/faqs/general.rst:192
#: ../../appendix/faqs/general.rst:192
msgid "More flexibility can be gained through plugins. There is at least two plugins on the community site that enable you to have more control over profile fields. The `Profile Manager`_ plugin has become quite popular in the Elgg community. It lets you add new profile fields whenever you want, change the order, group profile fields, and add them to registration."
msgstr ""

#: ../../appendix/faqs/general.rst:197
#: ../../appendix/faqs/general.rst:197
msgid "Changing registration"
msgstr ""

#: ../../appendix/faqs/general.rst:199
#: ../../appendix/faqs/general.rst:199
msgid "The registration process can be changed through a plugin. Everything about registration can be changed: the look and feel, different registration fields, additional validation of the fields, additional steps and so on. These types of changes require some basic knowledge of HTML, CSS, PHP."
msgstr ""

#: ../../appendix/faqs/general.rst:201
#: ../../appendix/faqs/general.rst:201
msgid "Another option is to use the `Profile Manager`_ plugin that lets you add fields to both user profiles and the registration form."
msgstr ""

#: ../../appendix/faqs/general.rst:204
#: ../../appendix/faqs/development.rst:36
#: ../../appendix/faqs/development.rst:36
#: ../../appendix/faqs/general.rst:204
msgid "Create the plugin skeleton"
msgstr ""

#: ../../appendix/faqs/general.rst:204
#: ../../appendix/faqs/development.rst:38
#: ../../appendix/faqs/development.rst:38
#: ../../appendix/faqs/general.rst:204
msgid ":doc:`/guides/plugins/plugin-skeleton`"
msgstr ""

#: ../../appendix/faqs/general.rst:207
#: ../../appendix/faqs/general.rst:207
msgid "Changing registration display"
msgstr ""

#: ../../appendix/faqs/general.rst:207
#: ../../appendix/faqs/general.rst:207
msgid "Override the ``account/forms/register`` view"
msgstr ""

#: ../../appendix/faqs/general.rst:210
#: ../../appendix/faqs/general.rst:210
msgid "Changing the registration action handler"
msgstr ""

#: ../../appendix/faqs/general.rst:210
#: ../../appendix/faqs/general.rst:210
msgid "You can write your own action to create the user's account"
msgstr ""

#: ../../appendix/faqs/general.rst:213
#: ../../appendix/faqs/general.rst:213
msgid "How do I change PHP settings using .htaccess?"
msgstr ""

#: ../../appendix/faqs/general.rst:215
#: ../../appendix/faqs/general.rst:215
msgid "You may want to change php settings in your ``.htaccess`` file. This is especially true if your hosting provider does not give you access to the server's ``php.ini`` file. The variables could be related to file upload size limits, security, session length, or any number of other php attributes. For examples of how to do this, see the `PHP documentation`_ on this."
msgstr ""

#: ../../appendix/faqs/general.rst:220
#: ../../appendix/faqs/general.rst:220
msgid "HTTPS login turned on accidently"
msgstr ""

#: ../../appendix/faqs/general.rst:222
#: ../../appendix/faqs/general.rst:222
msgid "If you have turned on HTTPS login but do not have SSL configured, you are now locked out of your Elgg install. To turn off this configuration parameter, you will need to edit your database. Use a tool like phpMyAdmin to view your database. Select the ``config`` table and delete the row that has the name ``https_login``."
msgstr ""

#: ../../appendix/faqs/general.rst:225
#: ../../appendix/faqs/general.rst:225
msgid "Using a test site"
msgstr ""

#: ../../appendix/faqs/general.rst:227
#: ../../appendix/faqs/general.rst:227
msgid "It is recommended to always try out new releases or new plugins on a test site before running them on a production site (a site with actual users). The easiest way to do this is to maintain a separate install of Elgg with dummy accounts. When testing changes it is important to use dummy accounts that are not admins to test what your users will see."
msgstr ""

#: ../../appendix/faqs/general.rst:229
#: ../../appendix/faqs/general.rst:229
msgid "A more realistic test is to mirror the content from your production site to your test site. Following the instructions for :doc:`duplicating a site </admin/duplicate-installation>`. Then make sure you prevent emails from being sent to your users. You could write a small plugin that redirects all email to your own account (be aware of plugins that include their own custom email sending code so you'll have to modify those plugins). After this is done you can view all of the content to make sure the upgrade or new plugin is functioning as desired and is not breaking anything. If this process sounds overwhelming, please stick with running a simple test site."
msgstr ""

#: ../../appendix/faqs/general.rst:232
#: ../../appendix/faqs/general.rst:232
msgid "500 - Internal Server Error"
msgstr ""

#: ../../appendix/faqs/general.rst:235
#: ../../appendix/faqs/general.rst:235
msgid "What is it?"
msgstr ""

#: ../../appendix/faqs/general.rst:237
#: ../../appendix/faqs/general.rst:237
msgid "A **500 - Internal Server Error** means the web server experienced a problem serving a request."
msgstr ""

#: ../../appendix/faqs/general.rst:241
#: ../../appendix/faqs/general.rst:241
msgid "`The Wikipedia page on HTTP status codes <https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_Error>`_"
msgstr ""

#: ../../appendix/faqs/general.rst:244
#: ../../appendix/faqs/general.rst:244
msgid "Possible causes"
msgstr ""

#: ../../appendix/faqs/general.rst:247
#: ../../appendix/faqs/general.rst:247
msgid "Web server configuration"
msgstr ""

#: ../../appendix/faqs/general.rst:247
#: ../../appendix/faqs/general.rst:247
msgid "The most common cause for this is an incorrectly configured server. If you edited the ``.htaccess`` file and added something incorrect, Apache will send a 500 error."
msgstr ""

#: ../../appendix/faqs/general.rst:250
#: ../../appendix/faqs/general.rst:250
msgid "Permissions on files"
msgstr ""

#: ../../appendix/faqs/general.rst:250
#: ../../appendix/faqs/general.rst:250
msgid "It could also be a permissions problem on a file. Apache needs to be able to read Elgg's files. Using permissions 755 on directories and 644 on files will allow Apache to read the files."
msgstr ""

#: ../../appendix/faqs/general.rst:253
#: ../../appendix/faqs/general.rst:253
msgid "When I upload a photo or change my profile picture I get a white screen"
msgstr ""

#: ../../appendix/faqs/general.rst:255
#: ../../appendix/faqs/general.rst:255
msgid "Most likely you don't have the PHP GD library installed or configured properly. You may need assistance from the administrator of your server."
msgstr ""

#: ../../appendix/faqs/general.rst:258
#: ../../appendix/faqs/general.rst:258
msgid "CSS is missing"
msgstr ""

#: ../../appendix/faqs/general.rst:261
#: ../../appendix/faqs/general.rst:261
msgid "Wrong URL"
msgstr ""

#: ../../appendix/faqs/general.rst:263
#: ../../appendix/faqs/general.rst:263
msgid "Sometimes people install Elgg so that the base URL is ``localhost`` and then try to view the site using a hostname. In this case, the browser won't be able to load the CSS file. Try viewing the source of the web page and copying the link for the CSS file. Paste that into your browser. If you get a 404 error, it is likely this is your problem. You will need to change the base URL of your site."
msgstr ""

#: ../../appendix/faqs/general.rst:266
#: ../../appendix/faqs/general.rst:266
msgid "Syntax error"
msgstr ""

#: ../../appendix/faqs/general.rst:268
#: ../../appendix/faqs/general.rst:268
msgid "Elgg stores its CSS as PHP code to provide flexibility and power. If there is a syntax error, the CSS file served to the browser may be blank. Disabling non-bundled plugins is the recommended first step."
msgstr ""

#: ../../appendix/faqs/general.rst:271
#: ../../appendix/faqs/general.rst:271
msgid "Rewrite rules errors"
msgstr ""

#: ../../appendix/faqs/general.rst:273
#: ../../appendix/faqs/general.rst:273
msgid "A bad ``.htaccess`` file could also result in a 404 error when requesting the CSS file. This could happen when doing an upgrade and forgetting to also upgrade ``.htaccess``."
msgstr ""

#: ../../appendix/faqs/general.rst:276
#: ../../appendix/faqs/general.rst:276
msgid "Should I edit the database manually?"
msgstr ""

#: ../../appendix/faqs/general.rst:280
#: ../../appendix/faqs/general.rst:280
msgid "No, you should never manually edit the database!"
msgstr ""

#: ../../appendix/faqs/general.rst:283
#: ../../appendix/faqs/general.rst:283
msgid "Will editing the database manually break my site?"
msgstr ""

#: ../../appendix/faqs/general.rst:285
#: ../../appendix/faqs/general.rst:285
msgid "Yes."
msgstr ""

#: ../../appendix/faqs/general.rst:288
#: ../../appendix/faqs/general.rst:288
msgid "Can I add extra fields to tables in the database?"
msgstr ""

#: ../../appendix/faqs/general.rst:290
#: ../../appendix/faqs/general.rst:290
msgid "(AKA: I don't understand the Elgg :doc:`data model </design/database>` so I'm going to add columns. Will you help?)"
msgstr ""

#: ../../appendix/faqs/general.rst:292
#: ../../appendix/faqs/general.rst:292
msgid "No, this is a bad idea. Learn the :doc:`data model </design/database>` and you will see that unless it's a very specific and highly customized installation, you can do everything you need within Elgg's current data model."
msgstr ""

#: ../../appendix/faqs/general.rst:295
#: ../../appendix/faqs/general.rst:295
msgid "I want to remove users. Can't I just delete them from the elgg_entities table?"
msgstr ""

#: ../../appendix/faqs/general.rst:297
#: ../../appendix/faqs/general.rst:297
msgid "No, it will corrupt your database. Delete them through the site."
msgstr ""

#: ../../appendix/faqs/general.rst:300
#: ../../appendix/faqs/general.rst:300
msgid "I want to remove spam. Can't I just search and delete it from the elgg_entities table?"
msgstr ""

#: ../../appendix/faqs/general.rst:302
#: ../../appendix/faqs/general.rst:302
msgid "No, it will corrupt your database. Delete it through the site."
msgstr ""

#: ../../appendix/faqs/general.rst:305
#: ../../appendix/faqs/general.rst:305
msgid "Someone on the community site told me to edit the database manually. Should I?"
msgstr ""

#: ../../appendix/faqs/general.rst:307
#: ../../appendix/faqs/general.rst:307
msgid "Who was it? Is it someone experienced with Elgg, like one of the core developers or a well-known plugin author? Did he or she give you clear and specific instructions on what to edit? If you don't know who it is, or if you can't understand or aren't comfortable following the instructions, do not edit the database manually."
msgstr ""

#: ../../appendix/faqs/general.rst:310
#: ../../appendix/faqs/general.rst:310
msgid "I know PHP and MySQL and have a legitimate reason to edit the database. Is it okay to manually edit the database?"
msgstr ""

#: ../../appendix/faqs/general.rst:312
#: ../../appendix/faqs/general.rst:312
msgid "Make sure you understand Elgg's :doc:`data model </design/database>` and schema first. Make a backup, edit carefully, then test copiously."
msgstr ""

#: ../../appendix/faqs/general.rst:315
#: ../../appendix/faqs/general.rst:315
msgid "Internet Explorer (IE) login problem"
msgstr ""

#: ../../appendix/faqs/general.rst:318
#: ../../appendix/faqs/general.rst:318
msgid "Canonical URL"
msgstr ""

#: ../../appendix/faqs/general.rst:320
#: ../../appendix/faqs/general.rst:320
msgid "IE does not like working with sites that use both http://example.org and http://www.example.org. It stores multiple cookies and this causes problems. Best to only use one base URL. For details on how to do this see Login token mismatch error."
msgstr ""

#: ../../appendix/faqs/general.rst:323
#: ../../appendix/faqs/general.rst:323
msgid "Chrome Frame"
msgstr ""

#: ../../appendix/faqs/general.rst:325
#: ../../appendix/faqs/general.rst:325
msgid "Using the chrome frame within IE can break the login process."
msgstr ""

#: ../../appendix/faqs/general.rst:328
#: ../../appendix/faqs/general.rst:328
msgid "Emails don't support non-Latin characters"
msgstr ""

#: ../../appendix/faqs/general.rst:330
#: ../../appendix/faqs/general.rst:330
msgid "In order to support non-Latin characters, (such as Cyrillic or Chinese) Elgg requires `multibyte string support`_ to be compiled into PHP."
msgstr ""

#: ../../appendix/faqs/general.rst:332
#: ../../appendix/faqs/general.rst:332
msgid "On many installs (e.g. Debian & Ubuntu) this is turned on by default. If it is not, you need to turn it on (or recompile PHP to include it). To check whether your server supports multibyte strings, check `phpinfo`_."
msgstr ""

#: ../../appendix/faqs/general.rst:338
#: ../../appendix/faqs/general.rst:338
msgid "Session length"
msgstr ""

#: ../../appendix/faqs/general.rst:340
#: ../../appendix/faqs/general.rst:340
msgid "Session length is controlled by your php configuration. You will first need to locate your ``php.ini`` file. In that file will be several session variables. A complete list and what they do can be found in the `php manual`_."
msgstr ""

#: ../../appendix/faqs/general.rst:345
#: ../../appendix/faqs/general.rst:345
msgid "File is missing an owner"
msgstr ""

#: ../../appendix/faqs/general.rst:347
#: ../../appendix/faqs/general.rst:347
msgid "There are three causes for this error. You could have an entity in your database that has an ``owner_guid`` of ``0``. This should be extremely rare and may only occur if your database/server crashes during a write operation."
msgstr ""

#: ../../appendix/faqs/general.rst:349
#: ../../appendix/faqs/general.rst:349
msgid "The second cause would be an entity where the owner no longer exists. This could occur if a plugin is turned off that was involved in the creation of the entity and then the owner is deleted but the delete operation failed (because the plugin is turned off). If you can figure out entity is causing this, look in your ``entities`` table and change the ``owner_guid`` to your own and then you can delete the entity through Elgg."
msgstr ""

#: ../../appendix/faqs/general.rst:353
#: ../../appendix/faqs/general.rst:353
msgid "Reed the section \"Should I edit the database manually?\". Be very carefull when editing the database directly. It can break your site. **Always** make a backup before doing this."
msgstr ""

#: ../../appendix/faqs/general.rst:356
#: ../../appendix/faqs/general.rst:356
msgid "Fixes"
msgstr ""

#: ../../appendix/faqs/general.rst:358
#: ../../appendix/faqs/general.rst:358
msgid "`Database Validator`_ plugin will check your database for these causes and provide an option to fix them. Be sure to backup the database before you try the fix option."
msgstr ""

#: ../../appendix/faqs/general.rst:363
#: ../../appendix/faqs/general.rst:363
msgid "No images"
msgstr ""

#: ../../appendix/faqs/general.rst:365
#: ../../appendix/faqs/general.rst:365
msgid "If profile images, group images, or other files have stopped working on your site it is likely due to a misconfiguration, especially if you have migrated to a new server."
msgstr ""

#: ../../appendix/faqs/general.rst:367
#: ../../appendix/faqs/general.rst:367
msgid "These are the most common misconfigurations that cause images and other files to stop working."
msgstr ""

#: ../../appendix/faqs/general.rst:370
#: ../../appendix/faqs/general.rst:370
msgid "Wrong path for data directory"
msgstr ""

#: ../../appendix/faqs/general.rst:372
#: ../../appendix/faqs/general.rst:372
msgid "Make sure the data directory's path is correct in the Site Administration admin area. It should have a trailing slash."
msgstr ""

#: ../../appendix/faqs/general.rst:375
#: ../../appendix/faqs/general.rst:375
msgid "Wrong permissions on the data directory"
msgstr ""

#: ../../appendix/faqs/general.rst:377
#: ../../appendix/faqs/general.rst:377
msgid "Check the permissions for the data directory. The data directory should be readable and writeable by the web server user."
msgstr ""

#: ../../appendix/faqs/general.rst:380
#: ../../appendix/faqs/general.rst:380
msgid "Migrated installation with new data directory location"
msgstr ""

#: ../../appendix/faqs/general.rst:382
#: ../../appendix/faqs/general.rst:382
msgid "If you migrated an installation and need to change your data directory path, be sure to update the SQL for the filestore location as documented in the :doc:`/admin/duplicate-installation` instructions."
msgstr ""

#: ../../appendix/faqs/general.rst:385
#: ../../appendix/faqs/general.rst:385
msgid "Deprecation warnings"
msgstr ""

#: ../../appendix/faqs/general.rst:387
#: ../../appendix/faqs/general.rst:387
msgid "If you are seeing many deprecation warnings that say things like"
msgstr ""

#: ../../appendix/faqs/general.rst:393
#: ../../appendix/faqs/general.rst:393
msgid "then you are using a plugin that was written for an older version of Elgg. This means the plugin is using functions that are scheduled to be removed in a future version of Elgg. You can ask the plugin developer if the plugin will be updated or you can update the plugin yourself. If neither of those are likely to happen, you should not use that plugin."
msgstr ""

#: ../../appendix/faqs/general.rst:396
#: ../../appendix/faqs/general.rst:396
msgid "Javascript not working"
msgstr ""

#: ../../appendix/faqs/general.rst:398
#: ../../appendix/faqs/general.rst:398
msgid "If the user hover menu stops working or you cannot dismiss system messages, that means JavaScript is broken on your site. This usually due to a plugin having bad JavaScript code. You should find the plugin causing the problem and disable it. You can do this be disabling non-bundled plugins one at a time until the problem goes away. Another approach is disabling all non-bundled plugins and then enabling them one by one until the problem occurs again."
msgstr ""

#: ../../appendix/faqs/general.rst:400
#: ../../appendix/faqs/general.rst:400
msgid "Most web browsers will give you a hint as to what is breaking the JavaScript code. They often have a console for JavaScript errors or an advanced mode for displaying errors. Once you see the error message, you may have an easier time locating the problem."
msgstr ""

#: ../../appendix/faqs/general.rst:403
#: ../../appendix/faqs/general.rst:403
msgid "IP addresses in the logs are wrong"
msgstr ""

#: ../../appendix/faqs/general.rst:405
#: ../../appendix/faqs/general.rst:405
msgid "When your Elgg installation is behind a proxy server or loadbalancer the IP addresses logged in the System Log plugin can be wrong. It could show only the IP addresses for the proxy server."
msgstr ""

#: ../../appendix/faqs/general.rst:408
#: ../../appendix/faqs/general.rst:408
msgid "In order to solve this you can configure the IP addresses of the proxy server as a trusted IP address and with that allow the system access to the correct IP address of your users."
msgstr ""

#: ../../appendix/faqs/general.rst:411
#: ../../appendix/faqs/general.rst:411
msgid "In the ``settings.php`` file you can configure settings for ``$CONFIG->http_request_trusted_proxy_ips`` and ``$CONFIG->http_request_trusted_proxy_headers`` check the ``settings.php`` file for more information."
msgstr ""

#: ../../appendix/faqs/security.rst:2
#: ../../appendix/faqs/security.rst:2
msgid "Security"
msgstr ""

#: ../../appendix/faqs/security.rst:5
#: ../../appendix/faqs/security.rst:5
msgid "Is upgrade.php a security concern?"
msgstr ""

#: ../../appendix/faqs/security.rst:7
#: ../../appendix/faqs/security.rst:7
msgid "Upgrade.php is a file used to run code and database upgrades. It is in the root of the directory and doesn't require a logged in account to access. On a fully upgraded site, running the file will only reset the caches and exit, so this is not a security concern."
msgstr ""

#: ../../appendix/faqs/security.rst:9
#: ../../appendix/faqs/security.rst:9
msgid "If you are still concerned, you can either delete, move, or change permissions on the file until you need to upgrade."
msgstr ""

#: ../../appendix/faqs/security.rst:12
#: ../../appendix/faqs/security.rst:12
msgid "Should I delete install.php?"
msgstr ""

#: ../../appendix/faqs/security.rst:14
#: ../../appendix/faqs/security.rst:14
msgid "This file is used to install Elgg and doesn't need to be deleted. The file checks if Elgg is already installed and forwards the user to the front page if it is."
msgstr ""

#: ../../appendix/faqs/security.rst:17
#: ../../appendix/faqs/security.rst:17
msgid "Filtering"
msgstr ""

#: ../../appendix/faqs/security.rst:19
#: ../../appendix/faqs/security.rst:19
msgid "Filtering is used in Elgg to make `XSS`_ attacks more difficult. The purpose of the filtering is to remove Javascript and other dangerous input from users."
msgstr ""

#: ../../appendix/faqs/security.rst:21
#: ../../appendix/faqs/security.rst:21
msgid "Filtering is performed through the function ``filter_tags()``. This function takes in a string and returns a filtered string. It triggers a *validate*, *input* :ref:`plugin hook <design/events#plugin-hooks>`. By default Elgg comes with the htmLawed filtering code as a plugin. Developers can drop in any additional or replacement filtering code as a plugin."
msgstr ""

#: ../../appendix/faqs/security.rst:23
#: ../../appendix/faqs/security.rst:23
msgid "The ``filter_tags()`` function is called on any user input as long as the input is obtained through a call to ``get_input()``. If for some reason a developer did not want to perform the default filtering on some user input, the ``get_input()`` function has a parameter for turning off filtering."
msgstr ""

#: ../../appendix/faqs/development.rst:2
#: ../../appendix/faqs/development.rst:2
msgid "Development"
msgstr ""

#: ../../appendix/faqs/development.rst:5
#: ../../appendix/faqs/development.rst:5
msgid "What should I use to edit php code?"
msgstr ""

#: ../../appendix/faqs/development.rst:7
#: ../../appendix/faqs/development.rst:7
msgid "There are two main options: text editor or `integrated development environment`_ (IDE)."
msgstr ""

#: ../../appendix/faqs/development.rst:10
#: ../../appendix/faqs/development.rst:10
msgid "Text Editor"
msgstr ""

#: ../../appendix/faqs/development.rst:12
#: ../../appendix/faqs/development.rst:12
msgid "If you are new to software development or do not have much experience with IDEs, using a text editor will get you up and running the quickest. At a minimum, you will want one that does syntax highlighting to make the code easier to read. If you think you might submit patches to the bug tracker, you will want to make sure that your text editor does not change line endings. If you are using Windows, `Notepad++`_ is a good choice. If you are on a Mac, TextWrangler_ is a popular choice. You could also give TextMate_ a try."
msgstr ""

#: ../../appendix/faqs/development.rst:15
#: ../../appendix/faqs/development.rst:15
msgid "Integrated Development Environment"
msgstr ""

#: ../../appendix/faqs/development.rst:17
#: ../../appendix/faqs/development.rst:17
msgid "An IDE does just what its name implies: it includes a set of tools that you would normally use separately. Most IDEs will include source code control which will allow you to directly commit and update your code from your cvs repository. It may have an FTP client built into it to make the transfer of files to a remote server easier. It will have syntax checking to catch errors before you try to execute the code on a server."
msgstr ""

#: ../../appendix/faqs/development.rst:19
#: ../../appendix/faqs/development.rst:19
msgid "The two most popular free IDEs for PHP developers are Eclipse_ and NetBeans_. Eclipse has two different plugins for working with PHP code: PDT_ and PHPEclipse_."
msgstr ""

#: ../../appendix/faqs/development.rst:31
#: ../../appendix/faqs/development.rst:31
msgid "I don't like the wording of something in Elgg. How do I change it?"
msgstr ""

#: ../../appendix/faqs/development.rst:33
#: ../../appendix/faqs/development.rst:33
msgid "The best way to do this is with a plugin."
msgstr ""

#: ../../appendix/faqs/development.rst:41
#: ../../appendix/faqs/development.rst:41
msgid "Locate the string that you want to change"
msgstr ""

#: ../../appendix/faqs/development.rst:43
#: ../../appendix/faqs/development.rst:43
msgid "All the strings that a user sees should be in the ``/languages`` directory or in a plugin's languages directory (``/mod/<plugin name>/languages``). This is done so that it is easy to change what language Elgg uses. For more information on this see the developer documentation on :doc:`/guides/i18n` ."
msgstr ""

#: ../../appendix/faqs/development.rst:45
#: ../../appendix/faqs/development.rst:45
msgid "To find the string use ``grep`` or a text editor that provides searching through files to locate the string. (A good text editor for Windows is `Notepad++`_ ) Let's say we want to change the string \"Add friend\" to \"Make a new friend\". The ``grep`` command to find this string would be ``grep -r \"Add friend\" *``. Using `Notepad++`_ , you would use the \"Find in files\" command. You would search for the string, set the filter to ``*.php``, set the directory to the base directory of Elgg, and make sure it searches all subdirectories. You might want to set it to be case sensitive also."
msgstr ""

#: ../../appendix/faqs/development.rst:47
#: ../../appendix/faqs/development.rst:47
msgid "You should locate the string \"Add friend\" in ``/languages/en.php``. You should see something like this in the file:"
msgstr ""

#: ../../appendix/faqs/development.rst:53
#: ../../appendix/faqs/development.rst:53
msgid "This means every time Elgg sees ``friend:add`` it replaces it with \"Add friend\". We want to change the definition of ``friend:add``."
msgstr ""

#: ../../appendix/faqs/development.rst:56
#: ../../appendix/faqs/development.rst:56
msgid "Override the string"
msgstr ""

#: ../../appendix/faqs/development.rst:58
#: ../../appendix/faqs/development.rst:58
msgid "To override this definition, we will add a languages file to the plugin that we built in the first step."
msgstr ""

#: ../../appendix/faqs/development.rst:60
#: ../../appendix/faqs/development.rst:60
msgid "Create a new directory: ``/mod/<your plugin name>/languages``"
msgstr ""

#: ../../appendix/faqs/development.rst:61
#: ../../appendix/faqs/development.rst:61
msgid "Create a file in that directory called ``en.php``"
msgstr ""

#: ../../appendix/faqs/development.rst:62
#: ../../appendix/faqs/development.rst:62
msgid "Add these lines to that file"
msgstr ""

#: ../../appendix/faqs/development.rst:72
#: ../../appendix/faqs/development.rst:72
msgid "Make sure that you do not have any spaces or newlines before the ``<?php``."
msgstr ""

#: ../../appendix/faqs/development.rst:74
#: ../../appendix/faqs/development.rst:74
msgid "You're done now and should be able to enable the plugin and see the change. If you are override the language of a plugin, make sure your plugin is loaded after the one you are trying to modify. The loading order is determined in the Tools Administration page of the admin section. As you find more things that you'd like to change, you can keep adding them to this plugin."
msgstr ""

#: ../../appendix/faqs/development.rst:77
#: ../../appendix/faqs/development.rst:77
msgid "How do I find the code that does x?"
msgstr ""

#: ../../appendix/faqs/development.rst:79
#: ../../appendix/faqs/development.rst:79
msgid "The best way to find the code that does something that you would like to change is to use ``grep`` or a similar search tool. If you do not have ``grep`` as a part of your operating system, you will want to install a grep tool or use a text-editor/IDE that has good searching in files. `Notepad++`_ is a good choice for Windows users. `Eclipse`_ with PHP and `NetBeans`_ are good choices for any platform."
msgstr ""

#: ../../appendix/faqs/development.rst:82
#: ../../appendix/faqs/development.rst:82
msgid "String Example"
msgstr ""

#: ../../appendix/faqs/development.rst:84
#: ../../appendix/faqs/development.rst:84
msgid "Let's say that you want to find where the *Log In* box code is located. A string from the *Log In* box that should be fairly unique is ``Remember me``. ``Grep`` for that string. You will find that it is only used in the ``en.php`` file in the ``/languages`` directory. There it is used to define the :doc:`/guides/i18n` string ``user:persistent``. ``Grep`` for that string now. You will find it in two places: the same ``en.php`` language file and in ``/views/default/forms/login.php``. The latter defines the html code that makes up the *Log In* box."
msgstr ""

#: ../../appendix/faqs/development.rst:87
#: ../../appendix/faqs/development.rst:87
msgid "Action Example"
msgstr ""

#: ../../appendix/faqs/development.rst:89
#: ../../appendix/faqs/development.rst:89
msgid "Let's say that you want to find the code that is run when a user clicks on the *Save* button when arranging widgets on a profile page. View the Profile page for a test user. Use Firebug to drill down through the html of the page until you come to the action of the edit widgets form. You'll see the url from the base is ``action/widgets/move``."
msgstr ""

#: ../../appendix/faqs/development.rst:91
#: ../../appendix/faqs/development.rst:91
msgid "``Grep`` on ``widgets/move`` and two files are returned. One is the JavaScript code for the widgets : ``/js/lib/ui.widgets.js``. The other one, ``/engine/lib/widgets.php``, is where the action is registered using ``elgg_register_action('widgets/reorder')``. You may not be familiar with that function in which case, you should look it up at the API reference. Do a search on the function and it returns the documentation on the function. This tells you that the action is in the default location since a file location was not specified. The default location for actions is ``/actions`` so you will find the file at ``/actions/widgets/move.php``."
msgstr ""

#: ../../appendix/faqs/development.rst:94
#: ../../appendix/faqs/development.rst:94
msgid "Debug mode"
msgstr ""

#: ../../appendix/faqs/development.rst:96
#: ../../appendix/faqs/development.rst:96
msgid "During the installation process you might have noticed a checkbox that controlled whether debug mode was turned on or off. This setting can also be changed on the Site Administration page. Debug mode writes a lot of extra data to your php log. For example, when running in this mode every query to the database is written to your logs. It may be useful for debugging a problem though it can produce an overwhelming amount of data that may not be related to the problem at all. You may want to experiment with this mode to understand what it does, but make sure you run Elgg in normal mode on a production server."
msgstr ""

#: ../../appendix/faqs/development.rst:100
#: ../../appendix/faqs/development.rst:100
msgid "Because of the amount of data being logged, don't enable this on a production server as it can fill up the log files really quick."
msgstr ""

#: ../../appendix/faqs/development.rst:103
#: ../../appendix/faqs/development.rst:103
msgid "What goes into the log in debug mode?"
msgstr ""

#: ../../appendix/faqs/development.rst:105
#: ../../appendix/faqs/development.rst:105
msgid "All database queries"
msgstr ""

#: ../../appendix/faqs/development.rst:106
#: ../../appendix/faqs/development.rst:106
msgid "Database query profiling"
msgstr ""

#: ../../appendix/faqs/development.rst:107
#: ../../appendix/faqs/development.rst:107
msgid "Page generation time"
msgstr ""

#: ../../appendix/faqs/development.rst:108
#: ../../appendix/faqs/development.rst:108
msgid "Number of queries per page"
msgstr ""

#: ../../appendix/faqs/development.rst:109
#: ../../appendix/faqs/development.rst:109
msgid "List of plugin language files"
msgstr ""

#: ../../appendix/faqs/development.rst:110
#: ../../appendix/faqs/development.rst:110
msgid "Additional errors/warnings compared to normal mode (it's very rare for these types of errors to be related to any problem that you might be having)"
msgstr ""

#: ../../appendix/faqs/development.rst:113
#: ../../appendix/faqs/development.rst:113
msgid "What does the data look like?"
msgstr ""

#: ../../appendix/faqs/development.rst:144
#: ../../appendix/faqs/development.rst:144
msgid "What events are triggered on every page load?"
msgstr ""

#: ../../appendix/faqs/development.rst:146
#: ../../appendix/faqs/development.rst:146
msgid "There are 4 :doc:`Elgg events </design/events>` that are triggered on every page load:"
msgstr ""

#: ../../appendix/faqs/development.rst:148
#: ../../appendix/faqs/development.rst:148
msgid "plugins_boot, system"
msgstr ""

#: ../../appendix/faqs/development.rst:149
#: ../../appendix/faqs/development.rst:149
msgid "init, system"
msgstr ""

#: ../../appendix/faqs/development.rst:150
#: ../../appendix/faqs/development.rst:150
msgid "ready, system"
msgstr ""

#: ../../appendix/faqs/development.rst:151
#: ../../appendix/faqs/development.rst:151
msgid "shutdown, system"
msgstr ""

#: ../../appendix/faqs/development.rst:153
#: ../../appendix/faqs/development.rst:153
msgid "The first three are triggered in ``Elgg\\Application::bootCore``. **shutdown, system** is triggered in ``\\Elgg\\Application\\ShutdownHandler`` after the response has been sent to the client. They are all :doc:`documented </guides/events-list>`."
msgstr ""

#: ../../appendix/faqs/development.rst:156
#: ../../appendix/faqs/development.rst:156
msgid "There are other events triggered by Elgg occasionally (such as when a user logs in)."
msgstr ""

#: ../../appendix/faqs/development.rst:159
#: ../../appendix/faqs/development.rst:159
msgid "Copy a plugin"
msgstr ""

#: ../../appendix/faqs/development.rst:161
#: ../../appendix/faqs/development.rst:161
msgid "There are many questions asked about how to copy a plugin. Let's say you want to copy the ``blog`` plugin in order to run one plugin called ``blog`` and another called ``poetry``. This is not difficult but it does require a lot of work. You would need to"
msgstr ""

#: ../../appendix/faqs/development.rst:163
#: ../../appendix/faqs/development.rst:163
msgid "change the directory name"
msgstr ""

#: ../../appendix/faqs/development.rst:164
#: ../../appendix/faqs/development.rst:164
msgid "change the names of every function (having two functions causes PHP to crash)"
msgstr ""

#: ../../appendix/faqs/development.rst:165
#: ../../appendix/faqs/development.rst:165
msgid "change the name of every view (so as not to override the views on the original plugin)"
msgstr ""

#: ../../appendix/faqs/development.rst:166
#: ../../appendix/faqs/development.rst:166
msgid "change any data model subtypes"
msgstr ""

#: ../../appendix/faqs/development.rst:167
#: ../../appendix/faqs/development.rst:167
msgid "change the language file"
msgstr ""

#: ../../appendix/faqs/development.rst:168
#: ../../appendix/faqs/development.rst:168
msgid "change anything else that was specific to the original plugin"
msgstr ""

#: ../../appendix/faqs/development.rst:172
#: ../../appendix/faqs/development.rst:172
msgid "If you are trying to clone the ``groups`` plugin, you will have the additional difficulty that the group plugin does not set a subtype."
msgstr ""

#: ../../appendix/history.rst:2
msgid "History"
msgstr ""

#: ../../appendix/history.rst:4
msgid "The name comes from `a town in Switzerland`__. It also means \"elk\" or \"moose\" in Danish."
msgstr ""

#: ../../appendix/history.rst:8
msgid "Elgg's initial funding was by a company called Curverider Ltd, which was started by David Tosh and Ben Werdmuller. In 2010, Curverider was acquired by Thematic Networks and control of the open-source project was turned over to `The Elgg Foundation`_. Today, Elgg is a community-driven open source project and has a variety of contributors and supporters."
msgstr ""

#: ../../appendix/index.rst:2
msgid "Appendix"
msgstr ""

#: ../../appendix/index.rst:4
msgid "Miscellaneous information about the project."
msgstr ""

#: ../../appendix/releases.rst:2
msgid "Release Policy"
msgstr ""

#: ../../appendix/releases.rst:4
msgid "What to expect when upgrading Elgg."
msgstr ""

#: ../../appendix/releases.rst:6
msgid "We adhere to `semantic versioning`_."
msgstr ""

#: ../../appendix/releases.rst:10
msgid "Follow the blog to `stay up to date on the latest releases`__."
msgstr ""

#: ../../appendix/releases.rst:19
msgid "Patch/Bugfix Releases (2.1.x)"
msgstr ""

#: ../../appendix/releases.rst:20
msgid "Every two weeks."
msgstr ""

#: ../../appendix/releases.rst:22
msgid "Bugfix releases are made regularly to make sure Elgg stays stable, secure, and bug-free. The higher the third digit, the more tested and stable the release is."
msgstr ""

#: ../../appendix/releases.rst:25
msgid "Since bugfix release focus on fixing bugs and not making major changes, themes and plugins should work from bugfix release to bugfix release."
msgstr ""

#: ../../appendix/releases.rst:30
msgid "Minor/Feature Releases (2.x.0)"
msgstr ""

#: ../../appendix/releases.rst:31
msgid "Every three months."
msgstr ""

#: ../../appendix/releases.rst:33
msgid "Whenever we introduce new features, we'll bump the middle version number. These releases aren't as mature as bugfix release, but are considered stable and useable."
msgstr ""

#: ../../appendix/releases.rst:36
msgid "We make every effort to be backward compatible in these releases, so plugins should work from minor release to minor release."
msgstr ""

#: ../../appendix/releases.rst:39
msgid "However, plugins might need to be updated to make use of the new features."
msgstr ""

#: ../../appendix/releases.rst:43
msgid "Major/Breaking Releases (x.0.0)"
msgstr ""

#: ../../appendix/releases.rst:44
msgid "Every year."
msgstr ""

#: ../../appendix/releases.rst:46
msgid "Inevitably, improving Elgg requires breaking changes and a new major release is made. These releases are opportunities for the core team to make strategic, breaking changes to the underlying platform. Themes and plugins from older versions are not expected to work without modification on different major releases."
msgstr ""

#: ../../appendix/releases.rst:50
msgid "We may remove deprecated APIs, but we will not remove APIs without first deprecating them."
msgstr ""

#: ../../appendix/releases.rst:52
msgid "Elgg's dependencies may be upgraded by their major version or removed entirely. We will not remove any dependences before a major release, but we do not \"deprecate\" dependencies or issue any warnings before removing them."
msgstr ""

#: ../../appendix/releases.rst:56
msgid "Your package, plugin, or app should declare its own dependencies directly so that this does not cause a problem."
msgstr ""

#: ../../appendix/releases.rst:60
msgid "Alphas, Betas, and Release Candidates"
msgstr ""

#: ../../appendix/releases.rst:62
msgid "Before major releases (and sometimes before feature releases), the core team will offer a pre-release version of Elgg to get some real-world testing and feedback on the release. These are meant for testing only and should not be used on a live site."
msgstr ""

#: ../../appendix/releases.rst:67
msgid "SemVer 2.0 does not define a particular meaning for pre-releases, but we approach alpha, beta, and rc releases with these general guidelines:"
msgstr ""

#: ../../appendix/releases.rst:70
msgid "An ``-alpha.X`` pre-release means that there are still breaking changes planned, but the feature set of the release is frozen. No new features or breaking changes can be proposed for that release."
msgstr ""

#: ../../appendix/releases.rst:74
msgid "A ``-beta.X`` pre-release means that there are no known breaking changes left to be included, but there are known regressions or critical bugs left to fix."
msgstr ""

#: ../../appendix/releases.rst:77
msgid "An ``-rc.X`` pre-release means that there are no known regressions or critical bugs left to be fixed. This version could become the final stable version of Elgg if no new blockers are reported."
msgstr ""

#: ../../appendix/releases.rst:82
msgid "Backwards compatibility"
msgstr ""

#: ../../appendix/releases.rst:84
msgid "Some parts of the system need some additional clarification if we are talking about being backwards compatible. Everything that is considered public API needs to adhere to the backwards compatibility rules that are part of `semantic versioning`_."
msgstr ""

#: ../../appendix/releases.rst:88
msgid "Classes and functions"
msgstr ""

#: ../../appendix/releases.rst:90
msgid "Classes and functions marked with ``@internal`` are not considered part of the public API and can be changed / removed at any time. If a class is marked with ``@internal`` all properties and methods in that class are considered private API and therefor can be changed / removed at any time."
msgstr ""

#: ../../appendix/releases.rst:95
msgid "Event and plugin hook callbacks"
msgstr ""

#: ../../appendix/releases.rst:97
msgid "All event and plugin hook callbacks should never be called directly but only be called by their respective event / plugin hook."
msgstr ""

#: ../../appendix/releases.rst:99
msgid "The name of the callback function is considered API as plugin developers need to be able to rely on the fact that they can (un)register a callback. This only applies if the callback still serves the same purpose. If a callback becomes obsolete its allowed to be removed from the system."
msgstr ""

#: ../../appendix/releases.rst:105
msgid "Exceptions to these rules are the callback functions related to the following ``system`` events, these callbacks can be renamed / removed at any time."
msgstr ""

#: ../../appendix/releases.rst:108
msgid "``plugins_load``"
msgstr ""

#: ../../appendix/releases.rst:109
msgid "``plugins_boot``"
msgstr ""

#: ../../appendix/releases.rst:110
msgid "``init``"
msgstr ""

#: ../../appendix/releases.rst:111
msgid "``ready``"
msgstr ""

#: ../../appendix/releases.rst:112
msgid "``shutdown``"
msgstr ""

#: ../../appendix/releases.rst:113
msgid "``upgrade``"
msgstr ""

#: ../../appendix/releases.rst:116
msgid "Views"
msgstr ""

#: ../../appendix/releases.rst:118
msgid "View names are API."
msgstr ""

#: ../../appendix/releases.rst:119
msgid "View arguments ($vars array) are API."
msgstr ""

#: ../../appendix/releases.rst:120
msgid "Removing views or renaming views follows API deprecation policies."
msgstr ""

#: ../../appendix/releases.rst:121
msgid "Adding new views requires a minor version change."
msgstr ""

#: ../../appendix/releases.rst:122
msgid "View output is not API and can be changed between patch releases."
msgstr ""

#: ../../appendix/roadmap.rst:2
msgid "Roadmap"
msgstr ""

#: ../../appendix/roadmap.rst:4
msgid "What direction is the project going? What exciting new features are coming soon?"
msgstr ""

#: ../../appendix/roadmap.rst:6
msgid "We do not publish detailed roadmaps, but it’s possible to get a sense for our general direction by utilizing the following resources:"
msgstr ""

#: ../../appendix/roadmap.rst:9
msgid "Our `feedback and planning group`_ is used to host early discussion about what will be worked on next."
msgstr ""

#: ../../appendix/roadmap.rst:10
msgid "Our `Github milestones`_ represent a general direction for the future releases of Elgg. This is the closest thing to a traditional roadmap that we have."
msgstr ""

#: ../../appendix/roadmap.rst:12
msgid "`Github pull requests`_ will give you a good idea of what’s currently being developed, but nothing is sure until the PR is actually checked in."
msgstr ""

#: ../../appendix/roadmap.rst:14
msgid "We use the `developer blog`_ to post announcements of features that have recently been checked in to our development branch, which gives the surest indication of what features will be available in the next release."
msgstr ""

#: ../../appendix/roadmap.rst:24
msgid "Values"
msgstr ""

#: ../../appendix/roadmap.rst:26
msgid "We have several overarching goals/values that affect the direction of Elgg. Enhancements generally must promote these values in order to be accepted."
msgstr ""

#: ../../appendix/roadmap.rst:30
msgid "Accessibility"
msgstr ""

#: ../../appendix/roadmap.rst:32
msgid "Elgg-based sites should be usable by anyone anywhere. That means we'll always strive to make Elgg:"
msgstr ""

#: ../../appendix/roadmap.rst:34
msgid "Device-agnostic -- mobile, tablet, desktop, etc. friendly"
msgstr ""

#: ../../appendix/roadmap.rst:35
msgid "Language-agnostic -- i18n, RTL, etc."
msgstr ""

#: ../../appendix/roadmap.rst:36
msgid "Capability-agnostic -- touch, keyboard, screen-reader friendly"
msgstr ""

#: ../../appendix/roadmap.rst:39
msgid "Testability"
msgstr ""

#: ../../appendix/roadmap.rst:41
msgid "We want to **make manual testing unnecessary** for core developers, plugin authors, and site administrators by promoting and enabling fast, automated testing at every level of the Elgg stack."
msgstr ""

#: ../../appendix/roadmap.rst:44
msgid "We think APIs are broken if they require plugin authors to write untestable code. We know there are a lot of violations of this principle in core currently and are working to fix it."
msgstr ""

#: ../../appendix/roadmap.rst:47
msgid "We look forward to a world where the core developers do not need to do any manual testing to verify the correctness of code contributed to Elgg. Similarly, we envision a world where site administrators can upgrade and install new plugins with confidence that everything works well together."
msgstr ""

#: ../../appendix/roadmap.rst:51
msgid "TODO: other goals/values?"
msgstr ""

#: ../../appendix/roadmap.rst:54
msgid "FAQ"
msgstr ""

#: ../../appendix/roadmap.rst:57
msgid "When will feature X be implemented?"
msgstr ""

#: ../../appendix/roadmap.rst:58
msgid "We cannot promise when features will get implemented because new features are checked into Elgg only when someone is motivated enough to implement the feature and submit a pull request. The best we can do is tell you to look out for what features existing developers have expressed interest in working on."
msgstr ""

#: ../../appendix/roadmap.rst:64
msgid "The best way to ensure a feature gets implemented is to discuss it with the core team and implement it yourself. See our :doc:`/contribute/index` guide if you're interested. We love new contributors!"
msgstr ""

#: ../../appendix/roadmap.rst:67
msgid "Do not rely on future enhancements if you're on the fence as to whether to use Elgg. Evaluate it given the current feature set. Upcoming features will almost certainly not materialize within your timeline."
msgstr ""

#: ../../appendix/roadmap.rst:72
msgid "When is version X.Y.Z going to be released?"
msgstr ""

#: ../../appendix/roadmap.rst:73
msgid "The next version will be released when the core team feels it's ready and has time to cut the release. http://github.com/Elgg/Elgg/issues/milestones will give you some rough ideas of timeline."
msgstr ""

#: ../../appendix/support.rst:2
msgid "Support policy"
msgstr ""

#: ../../appendix/support.rst:4
msgid "As of Elgg 2.0, each minor release receives bug and security fixes only until the next minor release."
msgstr ""

#: ../../appendix/support.rst:11
msgid "Long Term Support Releases"
msgstr ""

#: ../../appendix/support.rst:13
msgid "Within each major version, the last minor release is designated for long term support (\"LTS\") and will receive bug fixes until 1 year after the release of the next major version and security fixes until the 2nd following major version release."
msgstr ""

#: ../../appendix/support.rst:17
msgid "E.g. 2.3 is the last minor release within 2.x. It will receive bug fixes until 1 year aftr 3.0 is released and security fixes until 4.0 is released."
msgstr ""

#: ../../appendix/support.rst:22
msgid ":doc:`releases`"
msgstr ""

#: ../../appendix/support.rst:23
msgid ":doc:`/contribute/issues`"
msgstr ""

#: ../../appendix/support.rst:26
msgid "Bugs"
msgstr ""

#: ../../appendix/support.rst:28
msgid "When bugs are found, a good faith effort will be made to patch the LTS release, but **not all fixes will be back-ported.** E.g. some fixes may depend on new APIs, break backwards compatibility, or require significant refactoring."
msgstr ""

#: ../../appendix/support.rst:34
msgid "If a fix risks stability of the LTS branch, it will not be included."
msgstr ""

#: ../../appendix/support.rst:37
msgid "Security issues"
msgstr ""

#: ../../appendix/support.rst:39
msgid "When a security issue is found every effort will be made to patch the LTS release."
msgstr ""

#: ../../appendix/support.rst:43
msgid "Please report any security issue to **security @ elgg . org**"
msgstr ""

#: ../../appendix/support.rst:46
msgid "Timeline"
msgstr ""

#: ../../appendix/support.rst:48
msgid "Below is a table outlining the specifics for each release (future dates are tentative):"
msgstr ""

#: ../../appendix/support.rst:51
msgid "Version"
msgstr ""

#: ../../appendix/support.rst:51
msgid "First stable release"
msgstr ""

#: ../../appendix/support.rst:51
msgid "Bug fixes through"
msgstr ""

#: ../../appendix/support.rst:51
msgid "Security fixes through"
msgstr ""

#: ../../appendix/support.rst:53
msgid "1.12"
msgstr ""

#: ../../appendix/support.rst:53
msgid "July 2015"
msgstr ""

#: ../../appendix/support.rst:53
#: ../../appendix/support.rst:53
#: ../../appendix/support.rst:63
msgid "April 2019"
msgstr ""

#: ../../appendix/support.rst:55
msgid "2.0"
msgstr ""

#: ../../appendix/support.rst:55
msgid "December 2015"
msgstr ""

#: ../../appendix/support.rst:55
#: ../../appendix/support.rst:57
msgid "March 2016"
msgstr ""

#: ../../appendix/support.rst:57
msgid "2.1"
msgstr ""

#: ../../appendix/support.rst:57
#: ../../appendix/support.rst:59
msgid "June 2016"
msgstr ""

#: ../../appendix/support.rst:59
msgid "2.2"
msgstr ""

#: ../../appendix/support.rst:59
#: ../../appendix/support.rst:61
msgid "November 2016"
msgstr ""

#: ../../appendix/support.rst:61
msgid "2.3 LTS"
msgstr ""

#: ../../appendix/support.rst:61
msgid "April 2020"
msgstr ""

#: ../../appendix/support.rst:61
msgid "**Until 4.0**"
msgstr ""

#: ../../appendix/support.rst:63
msgid "3.0"
msgstr ""

#: ../../appendix/support.rst:63
#: ../../appendix/support.rst:65
msgid "July 2019"
msgstr ""

#: ../../appendix/support.rst:65
msgid "3.1"
msgstr ""

#: ../../appendix/support.rst:65
#: ../../appendix/support.rst:67
msgid "October 2019"
msgstr ""

#: ../../appendix/support.rst:67
msgid "3.2"
msgstr ""

#: ../../appendix/support.rst:67
msgid "January 2020"
msgstr ""

#: ../../appendix/support.rst:69
msgid "3.3"
msgstr ""

#: ../../appendix/support.rst:69
msgid "January 2019"
msgstr ""

#: ../../appendix/support.rst:71
msgid "4.0"
msgstr ""

#: ../../appendix/support.rst:71
msgid "TBD"
msgstr ""

#: ../../appendix/upgrade-notes.rst:2
msgid "Upgrade Notes"
msgstr ""

#: ../../appendix/upgrade-notes.rst:4
msgid "If you are upgrading your plugins and website to a new major Elgg releases, the following noteworthy changes apply."
msgstr ""

#: ../../appendix/upgrade-notes.rst:6
msgid "See the administrator guides for :doc:`how to upgrade a live site </admin/upgrading>`."
msgstr ""

#: ../../appendix/upgrade-notes/1.10-to-1.11.rst:2
msgid "From 1.10 to 1.11"
msgstr ""

#: ../../appendix/upgrade-notes/1.10-to-1.11.rst:9
msgid "Comment highlighting"
msgstr ""

#: ../../appendix/upgrade-notes/1.10-to-1.11.rst:11
msgid "If your theme is using the file ``views/default/css/elements/components.php``, you must add the following style definitions in it to enable highlighting for comments and discussion replies:"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:2
msgid "From 1.7 to 1.8"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:8
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 ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:16
msgid "Updating core"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:17
msgid "Delete the following core directories (same level as _graphics and engine):"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:19
msgid "_css"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:20
msgid "account"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:21
msgid "admin"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:22
msgid "dashboard"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:23
msgid "entities"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:24
msgid "friends"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:25
msgid "search"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:26
msgid "settings"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:27
msgid "simplecache"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:28
msgid "views"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:32
msgid "If you do not delete these directories before an upgrade, you will have problems!"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:36
msgid "Updating plugins"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:39
msgid "Use standardized routing with page handlers"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:40
msgid "All: /page_handler/all"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:41
msgid "User’s content: /page_handler/owner/:username"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:42
msgid "User’s friends' content: /page_handler/friends/:username"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:43
msgid "Single entity: /page_handler/view/:guid/:title"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:44
msgid "Added: /page_handler/add/:container_guid"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:45
msgid "Editing: /page_handler/edit/:guid"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:46
msgid "Group list: /page_handler/group/:guid/all"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:50
msgid "Include page handler scripts from the page handler"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:51
msgid "Almost every page handler should have a page handler script. (Example: ``bookmarks/all => mod/bookmarks/pages/bookmarks/all.php``)"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:54
msgid "Call ``set_input()`` for entity guids in the page handler and use ``get_input()`` in the page handler scripts."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:55
msgid "Call ``gatekeeper()`` and ``admin_gatekeeper()`` in the page handler function if required."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:56
msgid "The group URL should use the ``pages/:handler/owner.php`` script."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:57
msgid "Page handlers should not contain HTML."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:58
msgid "Update the URLs throughout the plugin. (Don't forget to remove ``/pg/``!)"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:62
msgid "Use standardized page handlers and scripts"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:63
msgid "Store page handler scripts in ``mod/:plugin/pages/:page_handler/:page_name.php``"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:64
msgid "Use the content page layout in page handler scripts:"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:70
msgid "Page handler scripts should not contain HTML."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:71
msgid "Call ``elgg_push_breadcrumb()`` in the page handler scripts."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:72
msgid "No need to set page owner if the URLs are in the standardized format."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:73
msgid "For group content, check the container_guid by using elgg_get_page_owner_entity()."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:77
msgid "The ``object/:subtype`` view"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:78
msgid "Make sure there are views for ``$vars['full_view'] == true`` and ``$vars['full_view'] == false``. ``$vars['full_view']`` replaced ``$vars['full]``."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:79
msgid "Check for the object in ``$vars['entity']``. Use ``elgg_instance_of()`` to make sure it's the type of entity you want."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:80
msgid "Return ``true`` to short circuit the view if the entity is missing or wrong."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:81
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 ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:85
msgid "Update action structure"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:86
msgid "Namespace action files and action names (example: ``mod/blog/actions/blog/save.php`` => ``action/blog/save``)"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:87
msgid "Use the following action URLs:"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:89
msgid "Add: ``action/:plugin/save``"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:90
msgid "Edit: ``action/:plugin/save``"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:91
msgid "Delete: ``action/:plugin/delete``"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:93
msgid "Make the delete action accept ``action/:handler/delete?guid=:guid`` so the metadata entity menu has the correct URL by default."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:97
msgid "Update deprecated functions"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:98
msgid "Functions deprecated in 1.7 will produce visible errors in 1.8."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:99
msgid "You can also update functions deprecated in 1.8."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:101
msgid "Many registration functions simply added an ``elgg_`` prefix for consistency, and should be easy to update."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:102
msgid "See ``/engine/lib/deprecated-1.8.php`` for the full list."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:103
msgid "You can set the debug level to “warning” to get visual reminders of deprecated functions."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:107
msgid "Update the widget views"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:108
msgid "See the blog or file widgets for examples."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:112
msgid "Update the group profile module"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:113
msgid "Use the blog or file plugins for examples. This will help with making your plugin themeable by the new CSS framework."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:117
msgid "Update forms"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:118
msgid "Move form bodies to the ``forms/:action`` view to use Evan's new ``elgg_view_form``."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:119
msgid "Use input views in form bodies rather than html. This helps with theming and future-proofing."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:120
msgid "Add a function that prepares the form (see ``mod/file/lib/file.php`` for an example)"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:121
msgid "Make your forms sticky (see the file plugin's upload action and form prepare function)."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:123
msgid "The forms API is discussed in more detail in :doc:`/guides/actions`."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:127
msgid "Clean up CSS/HTML"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:128
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 ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:130
msgid "Reduce maintenance costs, since you can delete most custom CSS."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:131
msgid "Make your plugin more compatible with community themes."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:133
msgid "Look for patterns that can be moved into core if you need significant CSS."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:135
msgid "We use hyphens rather than underscores in classes/ids and encourage you do the same for consistency."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:137
msgid "If you do need your own CSS, you should use your own namespace, rather than ``elgg-``."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:141
msgid "Update manifest.xml"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:142
msgid "Use http://el.gg/manifest17to18 to automate this."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:143
msgid "Don't use the \"bundled\" category with your plugins. That is only for plugins distributed with Elgg."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:147
msgid "Update settings and user settings views"
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:148
msgid "The view for settings is now ``plugins/:plugin/settings`` (previously ``settings/:plugin/edit``)."
msgstr ""

#: ../../appendix/upgrade-notes/1.7-to-1.8.rst:149
msgid "The view for user settings is now ``plugins/:plugin/usersettings`` (previously ``usersettings/:plugin/edit``)."
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:2
msgid "From 1.8 to 1.9"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:8
msgid "In the examples we are upgrading an imaginary \"Photos\" plugin."
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:10
msgid "Only the key changes are included. For example some of the deprecated functions are not mentioned here separately."
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:12
msgid "Each section will include information whether the change is backwards compatible with Elgg 1.8."
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:15
msgid "The manifest file"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:17
msgid "No changes are needed if your plugin is compatible with 1.8."
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:19
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 ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:21
msgid "If you make changes that break BC, you must update the plugin version and the required Elgg release."
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:23
msgid "Example of (shortened) old version:"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:39
msgid "Example of (shortened) new version:"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:57
msgid "$CONFIG and $vars['config']"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:59
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 ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:61
msgid "Example of old code:"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:72
msgid "Example of new code:"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:80
#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:269
msgid "Compatible with 1.8"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:84
msgid "See how the community_plugins plugin was updated: https://github.com/Elgg/community_plugins/commit/f233999bbd1478a200ee783679c2e2897c9a0483"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:87
msgid "Language files"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:89
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 ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:92
msgid "Example of the old way in ``languages/en.php``:"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:101
msgid "Example of new way:"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:111
#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:201
#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:297
#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:359
msgid "Not compatible with 1.8"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:114
#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:102
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:120
msgid "Notifications"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:116
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 ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:118
#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:219
#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:304
msgid "Example of the old way:"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:157
#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:239
#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:325
msgid "Example of the new way:"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:205
msgid "See how the community_plugins plugin was updated to use the new system: https://github.com/Elgg/community_plugins/commit/bfa356cfe8fb99ebbca4109a1b8a1383b70ff123"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:207
msgid "Notifications can also be sent with the ``notify_user()`` function."
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:209
msgid "It has however been updated to support three new optional parameters passed inside an array as the fifth parameter."
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:211
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 ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:213
msgid "Parameters:"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:215
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 ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:216
msgid "**action** String that describes the action that triggered the notification (e.g. \"create\", \"update\", etc)."
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:217
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 ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:272
msgid "Adding items to the Activity listing"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:287
msgid "You can also add the optional ``target_guid`` parameter which tells the target of the create action."
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:289
msgid "If the photo would had been added for example into a photo album, we could add it by passing in also:"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:300
msgid "Entity URL handlers"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:302
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 ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:362
msgid "Web services"
msgstr ""

#: ../../appendix/upgrade-notes/1.8-to-1.9.rst:364
msgid "In Elgg 1.8 the web services API was included in core and methods were exposed using ``expose_function()``. To enable the same functionality for Elgg 1.9, enable the \"Web services 1.9\" plugin and replace all calls to ``expose_function()`` with  ``elgg_ws_expose_function()``."
msgstr ""

#: ../../appendix/upgrade-notes/1.9-to-1.10.rst:2
msgid "From 1.9 to 1.10"
msgstr ""

#: ../../appendix/upgrade-notes/1.9-to-1.10.rst:9
msgid "File uploads"
msgstr ""

#: ../../appendix/upgrade-notes/1.9-to-1.10.rst:11
msgid "If your plugin is using a snippet copied from the ``file/upload`` action to fix detected mime types for Microsoft zipped formats, it can now be safely removed."
msgstr ""

#: ../../appendix/upgrade-notes/1.9-to-1.10.rst:13
msgid "If your upload action performs other manipulations on detected mime and simple types, it is recommended to make use of available plugin hooks:"
msgstr ""

#: ../../appendix/upgrade-notes/1.9-to-1.10.rst:15
msgid "``'mime_type','file'`` for filtering detected mime types"
msgstr ""

#: ../../appendix/upgrade-notes/1.9-to-1.10.rst:16
msgid "``'simple_type','file'`` for filtering parsed simple types"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:2
msgid "From 1.x to 2.0"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:9
msgid "Elgg can be now installed as a composer dependency instead of at document root"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:11
msgid "That means an Elgg site can look something like this:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:28
msgid "``elgg_get_root_path`` and ``$CONFIG->path`` will return the path to the application root directory, which is not necessarily the same as Elgg core's root directory (which in this case is ``vendor/elgg/elgg/``)."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:32
msgid "Do not attempt to access the core Elgg from your plugin directly, since you cannot rely on its location on the filesystem."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:35
msgid "In particular, don't try load ``engine/start.php``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:42
msgid "To boot Elgg manually, you can use the class ``Elgg\\Application``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:50
msgid "However, use this approach sparingly. Prefer :doc:`/guides/routing` instead whenever possible as that keeps your public URLs and your filesystem layout decoupled."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:53
msgid "Also, don't try to access the ``_graphics`` files directly."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:59
msgid "Use :doc:`/guides/views` instead:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:67
msgid "Cacheable views must have a file extension in their names"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:69
msgid "This requirement makes it possibile for us to serve assets directly from disk for performance, instead of serving them through PHP."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:72
msgid "It also makes it much easier to explore the available cached resources by navigating to dataroot/views_simplecache and browsing around."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:75
msgid "Bad: ``my/cool/template``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:76
msgid "Good: ``my/cool/template.html``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:78
msgid "We now cache assets by ``\"$viewtype/$view\"``, not ``md5(\"$viewtype|$view\")``, which can result in conflicts between cacheable views that don't have file extensions to disambiguate files from directories."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:84
msgid "Dropped ``jquery-migrate`` and upgraded ``jquery`` to ^2.1.4"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:86
msgid "jQuery 2.x is API-compatible with 1.x, but drops support for IE8-, which Elgg hasn't supported for some time anyways."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:89
msgid "See http://jquery.com/upgrade-guide/1.9/ for how to move off jquery-migrate."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:91
msgid "If you'd prefer to just add it back, you can use this code in your plugin's init:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:99
msgid "Also, define a ``jquery-migrate.js`` view containing the contents of the script."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:102
msgid "JS and CSS views have been moved out of the js/ and css/ directories"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:104
msgid "They also have been given .js and .css extensions respectively if they didn't already have them:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:108
msgid "Old view"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:108
msgid "New view"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:110
msgid "``js/view``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:110
msgid "``view.js``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:111
msgid "``js/other.js``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:111
msgid "``other.js``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:112
msgid "``css/view``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:112
msgid "``view.css``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:113
msgid "``css/other.css``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:113
msgid "``other.css``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:114
msgid "``js/img.png``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:114
msgid "``img.png``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:117
msgid "The main benefit this brings is being able to co-locate related assets. So a template (``view.php``) can have its CSS/JS dependencies right next to it (``view.css``, ``view.js``)."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:121
msgid "Care has been taken to make this change as backwards-compatible as possible, so you should not need to update any view references right away. However, you are certainly encouraged to move your JS and CSS views to their new, canonical locations."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:126
msgid "Practically speaking, this carries a few gotchas:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:128
msgid "The ``view_vars, $view_name`` and ``view, $view_name`` hooks will operate on the *canonical* view name:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:137
msgid "Using the ``view, all`` hook and checking for individual views may not work as intended:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:153
msgid "Please let us know about any other BC issues this change causes. We'd like to fix as many as possible to make the transition smooth."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:157
msgid "``fxp/composer-asset-plugin`` is now required to install Elgg from source"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:159
msgid "We use ``fxp/composer-asset-plugin`` to manage our browser assets (js, css, html) with Composer, but it must be installed globally *before installing Elgg* in order for the ``bower-asset/*`` packages to be recognized. To install it, run:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:167
msgid "If you don't do this before running ``composer install`` or ``composer create-project``, you will get an error message:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:177
msgid "List of deprecated views and view arguments that have been removed"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:179
msgid "We dropped support for and/or removed the following views:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:181
msgid "canvas/layouts/*"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:182
msgid "categories"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:183
msgid "categories/view"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:184
msgid "core/settings/tools"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:185
msgid "embed/addcontentjs"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:186
msgid "footer/analytics (Use page/elements/foot instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:187
msgid "groups/left_column"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:188
msgid "groups/right_column"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:189
msgid "groups/search/finishblurb"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:190
msgid "groups/search/startblurb"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:191
msgid "input/calendar (Use input/date instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:192
msgid "input/datepicker (Use input/date instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:193
msgid "input/pulldown (Use input/select instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:194
msgid "invitefriends/formitems"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:195
msgid "js/admin (Use AMD and ``elgg_require_js`` instead of extending JS views)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:196
msgid "js/initialise_elgg (Use AMD and ``elgg_require_js`` instead of extending JS views)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:197
msgid "members/nav"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:198
msgid "metatags (Use the 'head', 'page' plugin hook instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:199
msgid "navigation/topbar_tools"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:200
msgid "navigation/viewtype"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:201
msgid "notifications/subscriptions/groupsform"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:202
msgid "object/groupforumtopic"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:203
msgid "output/calendar (Use output/date instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:204
msgid "output/confirmlink (Use output/url instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:205
msgid "page_elements/contentwrapper"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:206
msgid "page/elements/shortcut_icon (Use the 'head', 'page' plugin hook instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:207
msgid "page/elements/wrapper"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:208
msgid "profile/icon (Use ``elgg_get_entity_icon``)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:209
msgid "river/object/groupforumtopic/create"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:210
msgid "settings/{plugin}/edit (Use plugins/{plugin}/settings instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:211
msgid "user/search/finishblurb"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:212
msgid "user/search/startblurb"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:213
msgid "usersettings/{plugin}/edit (Use plugins/{plugin}/usersettings instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:214
msgid "widgets/{handler}/view (Use widgets/{handler}/content instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:216
msgid "We also dropped the following arguments to views:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:218
msgid "\"value\" in output/iframe (Use \"src\" instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:219
msgid "\"area2\" and \"area3\" in page/elements/sidebar (Use \"sidebar\" or view extension instead)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:220
msgid "\"js\" in icon views (e.g. icon/user/default)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:221
msgid "\"options\" to input/radio and input/checkboxes which aren't key-value pairs will no longer be acceptable."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:226
msgid "All scripts moved to bottom of page"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:228
msgid "You should test your plugin **with the JavaScript error console visible**. For performance reasons, Elgg no longer supports ``script`` elements in the ``head`` element or in HTML views. ``elgg_register_js`` will now load *all* scripts at the end of the ``body`` element."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:232
msgid "You must convert inline scripts to :doc:`AMD </guides/javascript>` or to external scripts loaded with ``elgg_load_js``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:235
msgid "Early in the page, Elgg provides a shim of the RequireJS ``require()`` function that simply queues code until the AMD ``elgg`` and ``jQuery`` modules are defined. This provides a straightforward way to convert many inline scripts to use ``require()``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:239
msgid "Inline code which will fail because the stack is not yet loaded:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:249
msgid "This should work in Elgg 2.0:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:262
msgid "Attribute formatter removes keys with underscores"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:264
msgid "``elgg_format_attributes()`` (and all APIs that use it) now filter out attributes whose name contains an underscore. If the attribute begins with ``data-``, however, it will not be removed."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:268
msgid "Breadcrumbs"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:270
msgid "Breadcrumb display now removes the last item if it does not contain a link. To restore the previous behavior, replace the plugin hook handler ``elgg_prepare_breadcrumbs`` with your own:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:287
msgid "Callbacks in Queries"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:289
msgid "Make sure to use only valid *callable* values for \"callback\" argument/options in the API."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:291
msgid "Querying functions will now will throw a ``RuntimeException`` if ``is_callable()`` returns ``false`` for the given callback value. This includes functions such as ``elgg_get_entities()``, ``get_data()``, and many more."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:295
msgid "Comments plugin hook"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:297
msgid "Plugins can now return an empty string from ``'comments',$entity_type`` hook in order to override the default comments component view. To force the default comments component, your plugin must return ``false``. If you were using empty strings to force the default comments view, you need to update your hook handlers to return ``false``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:300
msgid "Container permissions hook"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:302
msgid "The behavior of the ``container_permissions_check`` hook has changed when an entity is being created: Before 2.0, the hook would be called twice if the entity's container was not the owner. On the first call, the entity's owner would be passed in as ``$params['container']``, which could confuse handlers."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:304
msgid "In 2.0, when an entity is created in a container like a group, if the owner is the same as the logged in user (almost always the case), this first check is bypassed. So the ``container_permissions_check`` hook will almost always be called once with ``$params['container']`` being the correct container of the entity."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:307
msgid "Creating or deleting a relationship triggers only one event"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:309
msgid "The \"create\" and \"delete\" relationship events are now only fired once, with ``\"relationship\"`` as the object type."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:311
msgid "E.g. Listening for the ``\"create\", \"member\"`` or ``\"delete\", \"member\"`` event(s) will no longer capture group membership additions/removals. Use the ``\"create\", \"relationship\"`` or ``\"delete\", \"relationship\"`` events."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:314
msgid "Discussion feature has been pulled from groups into its own plugin"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:316
msgid "The ``object, groupforumtopic`` subtype has been replaced with the ``object, discussion`` subtype. If your plugin is using or altering the old discussion feature, you should upgrade it to use the new subtype."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:321
msgid "Nothing changes from the group owners' point of view. The discussion feature is still available as a group tool and all old discussions are intact."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:326
msgid "Dropped login-over-https feature"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:328
msgid "For the best security and performance, serve all pages over HTTPS by switching the scheme in your site's wwwroot to ``https`` at http://yoursite.tld/admin/settings/advanced"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:334
msgid "Elgg has migrated from ext/mysql to PDO MySQL"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:336
msgid "Elgg now uses a ``PDO_MYSQL`` connection and no longer uses any ext/mysql functions. If you use ``mysql_*`` functions, implicitly relying on an open connection, these will fail."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:339
msgid "If your code uses one of the following functions, read below."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:341
msgid "``execute_delayed_write_query()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:342
msgid "``execute_delayed_read_query()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:344
msgid "If you provide a callable ``$handler`` to be called with the results, your handler will now receive a ``\\Doctrine\\DBAL\\Driver\\Statement`` object. Formerly this was an ext/mysql ``result`` resource."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:349
msgid "Event/Hook calling order may change"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:351
msgid "When registering for events/hooks, the ``all`` keyword for wildcard matching no longer has any effect on the order that handlers are called. To ensure your handler is called last, you must give it the highest priority of all matching handlers, or to ensure your handler is called first, you must give it the lowest priority of all matching handlers."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:356
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:743
msgid "If handlers were registered with the same priority, these are called in the order they were registered."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:358
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:745
msgid "To emulate prior behavior, Elgg core handlers registered with the ``all`` keyword have been raised in priority. Some of these handlers will most likely be called in a different order."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:362
msgid "``export/`` URLs are no longer available"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:364
msgid "Elgg no longer provides this endpoint for exposing resource data."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:367
msgid "Icons migrated to Font Awesome"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:369
msgid "Elgg's sprites and most of the CSS classes beginning with ``elgg-icon-`` `have been removed <https://github.com/Elgg/Elgg/pull/8578/files#diff-b3912b37ca7bd6c53a2968ccb6c22a94L22>`_."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:372
msgid "Usage of ``elgg_view_icon()`` is backward compatible, but static HTML using the ``elgg-icon`` classes will have to be updated to the new markup."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:376
msgid "Increase of z-index value in elgg-menu-site class"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:378
msgid "The value of z-index in the elgg-menu-site class has been increased from 1 to 50 to allow for page elements in the content area to use the z-index property without the \"More\" site menu's dropdown being displayed behind these elements. If your plugin/theme overrides the elgg-menu-site class or views/default/elements/navigation.css please adjust the z-index value in your modified CSS file accordingly."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:384
msgid "input/autocomplete view"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:386
msgid "Plugins that override the ``input/autocomplete`` view will need to include the source URL in the ``data-source`` attribute of the input element, require the new ``elgg/autocomplete`` AMD module, and call its ``init`` method. The 1.x javascript library ``elgg.autocomplete`` is no longer used."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:389
msgid "Introduced third-party library for sending email"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:391
msgid "We are using the excellent ``Zend\\Mail`` library to send emails in Elgg 2.0. There are likely edge cases that the library handles differently than Elgg 1.x. Take care to test your email notifications carefully when upgrading to 2.0."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:396
msgid "Label elements"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:398
msgid "The following views received ``label`` elements around some of the input fields. If your plugin/theme overrides these views please check for the new content."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:400
msgid "views/default/core/river/filter.php"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:401
msgid "views/default/forms/admin/plugins/filter.php"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:402
msgid "views/default/forms/admin/plugins/sort.php"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:403
msgid "views/default/forms/login.php"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:406
msgid "Plugin Aalborg Theme"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:408
msgid "The view ``page/elements/navbar`` now uses a Font Awesome icon for the mobile menu selector instead of an image. The ``bars.png`` image and supporting CSS for the 1.12 rendering has been removed, so update your theme accordingly."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:411
msgid "Plugin Likes"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:413
msgid "Objects are no longer likable by default. To support liking, you can register a handler to permit the annotation, or more simply register for the hook ``[\"likes:is_likable\", \"<type>:<subtype>\"]`` and return true. E.g."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:420
msgid "Just as before, the ``permissions_check:annotate`` hook is still called and may be used to override default behavior."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:423
msgid "Plugin Messages"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:425
msgid "If you've removed or replaced the handler function ``messages_notifier`` to hide/alter the inbox icon, you'll instead need to do the same for the topbar menu handler ``messages_register_topbar``. ``messages_notifier`` is no longer used to add the menu link."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:428
msgid "Messages will no longer get the metadata 'msg' for newly created messages. This means you can not rely on that metadata to exist."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:431
msgid "Plugin Blog"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:433
msgid "The blog pages showing 'Mine' or 'Friends' listings of blogs have been changed to list all the blogs owned by the users (including those created in groups)."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:436
msgid "Plugin Bookmarks"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:438
msgid "The bookmark pages showing 'Mine' or 'Friends' listings of bookmarks have been changed to list all the bookmarks owned by the users (including those created in groups)."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:441
msgid "Plugin File"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:443
msgid "The file pages showing 'Mine' or 'Friends' listings of files have been changed to list all the files owned by the users (including those created in groups)."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:446
msgid "Removed Classes"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:448
msgid "``ElggInspector``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:449
msgid "``Notable``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:450
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:336
msgid "``FilePluginFile``: replace with ``ElggFile`` (or load with ``get_entity()``)"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:453
msgid "Removed keys available via ``elgg_get_config()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:455
msgid "``allowed_ajax_views``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:456
msgid "``dataroot_in_settings``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:457
msgid "``externals``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:458
msgid "``externals_map``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:459
msgid "``i18n_loaded_from_cache``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:460
msgid "``language_paths``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:461
msgid "``pagesetupdone``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:462
msgid "``registered_tag_metadata_names``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:463
msgid "``simplecache_enabled_in_settings``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:464
msgid "``translations``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:465
msgid "``viewpath``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:466
msgid "``views``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:467
msgid "``view_path``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:468
msgid "``viewtype``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:469
msgid "``wordblacklist``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:471
msgid "Also note that plugins should not be accessing the global ``$CONFIG`` variable except for in ``settings.php``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:474
msgid "Removed Functions"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:476
msgid "``blog_get_page_content_friends``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:477
msgid "``blog_get_page_content_read``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:478
msgid "``count_unread_messages()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:479
msgid "``delete_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:480
msgid "``delete_object_entity()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:481
msgid "``delete_user_entity()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:482
msgid "``elgg_get_view_location()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:483
msgid "``elgg_validate_action_url()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:484
msgid "``execute_delayed_query()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:485
msgid "``extend_view()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:486
msgid "``get_db_error()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:487
msgid "``get_db_link()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:488
msgid "``get_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:489
msgid "``get_entities_from_access_id()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:490
msgid "``get_entities_from_access_collection()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:491
msgid "``get_entities_from_annotations()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:492
msgid "``get_entities_from_metadata()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:493
msgid "``get_entities_from_metadata_multi()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:494
msgid "``get_entities_from_relationship()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:495
msgid "``get_filetype_cloud()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:496
msgid "``get_library_files()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:497
msgid "``get_views()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:498
msgid "``is_ip_in_array()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:499
msgid "``list_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:500
msgid "``list_entities_from_annotations()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:501
msgid "``list_group_search()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:502
msgid "``list_registered_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:503
msgid "``list_user_search()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:504
msgid "``load_plugins()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:505
msgid "``menu_item()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:506
msgid "``make_register_object()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:507
msgid "``mysql_*()``: Elgg :ref:`no longer uses ext/mysql<migrated-to-pdo>`"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:508
msgid "``remove_blacklist()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:509
msgid "``search_for_group()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:510
msgid "``search_for_object()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:511
msgid "``search_for_site()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:512
msgid "``search_for_user()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:513
msgid "``search_list_objects_by_name()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:514
msgid "``search_list_groups_by_name()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:515
msgid "``search_list_users_by_name()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:516
msgid "``set_template_handler()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:517
msgid "``test_ip()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:520
msgid "Removed methods"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:522
msgid "``ElggCache::set_variable()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:523
msgid "``ElggCache::get_variable()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:524
msgid "``ElggData::initialise_attributes()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:525
msgid "``ElggData::getObjectOwnerGUID()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:526
msgid "``ElggDiskFilestore::make_directory_root()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:527
msgid "``ElggDiskFilestore::make_file_matrix()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:528
msgid "``ElggDiskFilestore::user_file_matrix()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:529
msgid "``ElggDiskFilestore::mb_str_split()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:530
msgid "``ElggEntity::clearMetadata()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:531
msgid "``ElggEntity::clearRelationships()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:532
msgid "``ElggEntity::clearAnnotations()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:533
msgid "``ElggEntity::getOwner()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:534
msgid "``ElggEntity::setContainer()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:535
msgid "``ElggEntity::getContainer()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:536
msgid "``ElggEntity::getIcon()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:537
msgid "``ElggEntity::setIcon()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:538
msgid "``ElggExtender::getOwner()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:539
msgid "``ElggFileCache::create_file()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:540
msgid "``ElggObject::addToSite()``: parent function in ElggEntity still available"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:541
msgid "``ElggObject::getSites()``: parent function in ElggEntity still available"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:542
msgid "``ElggSite::getCollections()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:543
msgid "``ElggUser::addToSite()``: parent function in ElggEntity still available"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:544
msgid "``ElggUser::getCollections()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:545
msgid "``ElggUser::getOwner()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:546
msgid "``ElggUser::getSites()``: parent function in ElggEntity still available"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:547
msgid "``ElggUser::listFriends()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:548
msgid "``ElggUser::listGroups()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:549
msgid "``ElggUser::removeFromSite()``: parent function in ElggEntity still available"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:551
msgid "The following arguments have also been dropped:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:553
msgid "``ElggSite::getMembers()`` - 2: ``$offset``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:555
msgid "``elgg_view_entity_list()`` - 3: ``$offset`` - 4: ``$limit`` - 5: ``$full_view`` - 6: ``$list_type_toggle`` - 7: ``$pagination``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:563
msgid "Removed Plugin Hooks"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:565
msgid "``[display, view]``: See the :ref:`new plugin hook<guides/views#altering-view-output>`."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:568
msgid "Removed Actions"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:570
msgid "``widgets/upgrade``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:573
msgid "Removed Views"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:575
msgid "``forms/admin/plugins/change_state``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:578
msgid "Removed View Variables"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:580
msgid "During rendering, the view system no longer injects these into the scope:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:582
msgid "``$vars['url']``: replace with ``elgg_get_site_url()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:583
msgid "``$vars['user']``: replace with ``elgg_get_logged_in_user_entity()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:584
msgid "``$vars['config']``: use ``elgg_get_config()`` and ``elgg_set_config()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:585
msgid "``$CONFIG``: use ``elgg_get_config()`` and ``elgg_set_config()``"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:587
msgid "Also several workarounds for very old views are no longer performed. Make these changes:"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:589
msgid "Set ``$vars['full_view']`` instead of ``$vars['full']``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:590
msgid "Set ``$vars['name']`` instead of ``$vars['internalname']``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:591
msgid "Set ``$vars['id']`` instead of ``$vars['internalid']``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:594
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:550
msgid "Removed libraries"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:596
msgid "``elgg:markdown``: Elgg no longer provides a markdown implementation. You must provide your own."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:599
msgid "Specifying View via Properties"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:601
msgid "The metadata ``$entity->view`` no longer specifies the view used to render in ``elgg_view_entity()``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:603
msgid "Similarly the property ``$annotation->view`` no longer has an effect within ``elgg_view_annotation()``."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:606
msgid "Viewtype is static after the initial ``elgg_get_viewtype()`` call"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:608
msgid "``elgg_set_viewtype()`` must be used to set the viewtype at runtime. Although Elgg still checks the ``view`` input and ``$CONFIG->view`` initially, this is only done once per request."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:613
msgid "Deprecations"
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:615
msgid "It's deprecated to read or write to metadata keys starting with ``filestore::`` on ``ElggFile`` objects. In Elgg 3.0 this metadata will be deleted if it points to the current data root path, so few file objects will have it. Plugins should only use ``ElggFile::setFilestore`` if files need to be stored in a custom location."
msgstr ""

#: ../../appendix/upgrade-notes/1.x-to-2.0.rst:617
msgid "This is not the only deprecation in Elgg 2.0. Plugin developers should watch their site error logs."
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:2
msgid "From 2.0 to 2.1"
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:9
#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:9
#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:18
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:294
#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:94
#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:77
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:892
msgid "Deprecated APIs"
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:11
msgid "``ElggFile::setFilestore``"
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:12
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:151
msgid "``get_default_filestore``"
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:13
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:168
msgid "``set_default_filestore``"
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:14
msgid "``elgg_get_config('siteemail')``: Use ``elgg_get_site_entity()->email``"
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:15
msgid "URLs starting with ``/css/`` and ``/js/``: ``Use elgg_get_simplecache_url()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:16
msgid "``elgg.ui.widgets`` JavaScript object is deprecated by ``elgg/widgets`` AMD module"
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:19
msgid "``Application::getDb()`` changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:21
msgid "If you're using this low-level API, do not expect it to return an ``Elgg\\Database`` instance in 3.0. It now returns an ``Elgg\\Application\\Database`` with many deprecated. These methods were never meant to be made public API, but we will do our best to support them in 2.x."
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:26
msgid "Added ``elgg/widgets`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.0-to-2.1.rst:28
msgid "If your plugin code calls ``elgg.ui.widgets.init()``, instead use the :doc:`elgg/widgets module </guides/javascript>`."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:2
msgid "From 2.1 to 2.2"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:11
msgid "``elgg.ui.river`` JavaScript library: Remove calls to ``elgg_load_js('elgg.ui.river')`` from plugin code. Update ``core/river/filter`` and ``forms/comment/save``, if overwritten, to require component AMD modules"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:12
msgid "``elgg.ui.popupOpen()`` and ``elgg.ui.popupClose()`` methods in ``elgg.ui`` JS library: Use ``elgg/popup`` module instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:13
msgid "``lightbox.js`` library: Do not use ``elgg_load_js('lightbox.js');`` unless your code references deprecated ``elgg.ui.lightbox`` namespace. Use ``elgg/lightbox`` AMD module instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:14
msgid "``elgg.embed`` library and ``elgg.embed`` object: Do not use ``elgg_load_js('elgg.embed')``. Use ``elgg/embed`` AMD module instead"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:15
msgid "Accessing ``icons_sizes`` config value directly: Use ``elgg_get_icon_sizes()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:16
msgid "``can_write_to_container()``: Use ``ElggEntity::canWriteToContainer()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:19
#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:38
msgid "Deprecated Views"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:21
msgid "``elgg/ui.river.js`` is deprecated: Do not rely on simplecache URLs to work."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:22
msgid "``groups/js`` is deprecated: Use ``groups/navigation`` AMD module as a menu item dependency for \"feature\" and \"unfeature\" menu items instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:23
msgid "``lightbox/settings.js`` is deprecated: Use ``getOptions, ui.lightbox`` JS plugin hook or ``data-colorbox-opts`` attribute."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:24
msgid "``elgg/ckeditor/insert.js`` is deprecated: You no longer need to include it, hook registration takes place in ``elgg/ckeditor`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:25
msgid "``embed/embed.js`` is deprecated: Use ``elgg/embed`` AMD module."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:28
msgid "Added ``elgg/popup`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:30
msgid "New :doc:`elgg/popup module </guides/javascript>` can be used to build out more complex trigger-popup interactions, including binding custom anchor types and opening/closing popups programmatically."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:33
msgid "Added ``elgg/lightbox`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:35
msgid "New :doc:`elgg/lightbox module </guides/javascript>` can be used to open and close the lightbox programmatically."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:38
msgid "Added ``elgg/embed`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:40
msgid "Even though rarely necessary, ``elgg/embed`` AMD module can be used to access the embed methods programmatically. The module bootstraps itself when necessary and is unlikely to require further decoration."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:43
msgid "New API for handling entity icons"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:45
msgid "``ElggEntity`` now implements ``\\Elgg\\EntityIcon`` interface"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:46
msgid "``elgg_get_icon_sizes()`` - return entity type/subtype specific icon sizes"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:47
msgid "``ElggEntity::saveIconFromUploadedFile()`` - creates icons from an uploaded file"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:48
msgid "``ElggEntity::saveIconFromLocalFile()`` - creates icons from a local file"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:49
msgid "``ElggEntity::saveIconFromElggFile()`` - creates icons from an instance of ``ElggFile``"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:50
msgid "``ElggEntity::getIcon()`` - returns an instanceof ``ElggIcon`` that points to entity icon location on filestore (this may be just a placeholder, use ``ElggEntity::hasIcon()`` to validate if file has been written)"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:51
msgid "``ElggEntity::deleteIcon()`` - deletes entity icons"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:52
msgid "``ElggEntity::getIconLastChange()`` - return modified time of the icon file"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:53
msgid "``ElggEntity::hasIcon()`` - checks if an icon with given size has been created"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:54
msgid "``elgg_get_embed_url()`` - can be used to return an embed URL for an entity's icon (served via `/serve-icon` handler)"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:56
msgid "User avatars are now served via ``serve-file`` handler. Plugins should start using ``elgg_get_inline_url()`` and note that:"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:58
msgid "``/avatar/view`` page handler and resource view have been deprecated"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:59
msgid "``/mod/profile/icondirect.php`` file has been deprecated"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:60
msgid "``profile_set_icon_url()`` is no longer registered as a callback for ``\"entity:icon:url\",\"user\"`` plugin hook"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:62
msgid "Group avatars are now served via ``serve-file`` handler. Plugins should start using ``elgg_get_inline_url()`` and note that:"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:64
msgid "``groupicon`` page handler (``groups_icon_handler()``) has been deprecated"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:65
msgid "``/mod/groups/icon.php`` file has been deprecated"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:67
msgid "File entity thumbs and downloads are now served via ``serve-file`` handler. Plugins should start using ``elgg_get_inline_url()`` and ``elgg_get_download_url()`` and note that:"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:69
msgid "``file/download`` page handler and resource view have been deprecated"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:70
msgid "``mod/file/thumbnail.php`` file has been deprecated"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:71
msgid "Several views have been updated to use new download URLs, including:"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:73
msgid "``mod/file/views/default/file/specialcontent/audio/default.php``"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:74
msgid "``mod/file/views/default/file/specialcontent/image/default.php``"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:75
msgid "``mod/file/views/default/resources/file/view.php``"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:76
msgid "``mod/file/views/rss/file/enclosure.php``"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:79
msgid "Removed APIs"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:81
msgid "Just a warning that the private entity cache functions (e.g. ``_elgg_retrieve_cached_entity``) have been removed. Some plugins may have been using them. Plugins should not use private APIs as they will more often be removed without notice."
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:84
msgid "Improved ``elgg/ckeditor`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.1-to-2.2.rst:86
msgid ":doc:`elgg/ckeditor module </guides/javascript>` can now be used to add WYSIWYG to a textarea programmatically with ``elgg/ckeditor#bind``."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:2
msgid "From 2.2 to 2.3"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:9
#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:9
#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:10
msgid "PHP Version"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:11
msgid "PHP 5.5 has reached end of life in July 2016. To ensure that Elgg sites are secure, we now require PHP 5.6 for new installations."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:13
msgid "Existing installations can continue using PHP 5.5 until Elgg 3.0."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:15
msgid "In order to upgrade Elgg to 2.3 using composer while using PHP 5.5, you may need to use ``--ignore-platform-reqs`` flag."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:20
msgid "Registering for ``to:object`` hook by the extender name: Use ``to:object, annotation`` and ``to:object, metadata`` hooks instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:21
msgid "``ajax_forward_hook()``: No longer used as handler for `'forward','all'` hook. Ajax response is now wrapped by the ``ResponseFactory``"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:22
msgid "``ajax_action_hook()``: No longer used as handler for `'action','all'` hook. Output buffering now starts before the hook is triggered in ``ActionsService``"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:23
msgid "``elgg_error_page_handler()``: No longer used as a handler for `'forward',<error_code>` hooks"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:24
msgid "``get_uploaded_file()``: Use new file uploads API instead"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:25
msgid "``get_user_notification_settings()``: Use ``ElggUser::getNotificationSettings()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:26
msgid "``set_user_notification_setting()``: Use ``ElggUser::setNotificationSetting()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:27
msgid "``pagesetup, system`` event: Use the menu or page shell hooks instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:28
msgid "``elgg.walled_garden`` JavaScript is deprecated: Use ``elgg/walled_garden`` AMD module instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:29
msgid "``elgg()->getDb()->getTableprefix()``: Use ``elgg_get_config('dbprefix')``."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:30
msgid "Private ``update_entity_last_action()``: Refrain from manually updating last action timestamp."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:31
msgid "Setting non-public ``access_id`` on metadata is deprecated. See below."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:32
msgid "``get_resized_image_from_existing_file()``: Use ``elgg_save_resized_image()``."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:33
msgid "``get_resized_image_from_uploaded_file()``: Use ``elgg_save_resized_image()`` in combination with upload API."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:34
msgid "``get_image_resize_parameters()`` will be removed."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:35
msgid "``elgg_view_input()``: Use ``elgg_view_field()``. Apologies for the API churn."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:40
msgid "``resources/file/world``: Use the ``resources/file/all`` view instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:41
msgid "``resources/pages/world``: Use the ``resources/pages/all`` view instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:42
msgid "``walled_garden.js``: Use the ``elgg/walled_garden`` module instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:45
msgid "New API for page and action handling"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:47
msgid "Page handlers and action script files should now return an instance of ``\\Elgg\\Http\\ResponseBuilder``. Plugins should use the following convenience functions to build responses:"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:50
msgid "``elgg_ok_response()`` sends a 2xx response with HTML (page handler) or JSON data (actions)"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:51
msgid "``elgg_error_response()`` sends a 4xx or 5xx response without content/data"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:52
msgid "``elgg_redirect_response()`` silently redirects the request"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:55
msgid "New API for working with file uploads"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:57
msgid "``elgg_get_uploaded_files()`` - returns an array of Symfony uploaded file objects"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:58
msgid "``ElggFile::acceptUploadedFile()`` - moves an uploaded file to Elgg's filestore"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:61
msgid "New API for manipulating images"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:63
msgid "New image manipulation service implements a more efficient approach to cropping and resizing images."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:65
msgid "``elgg_save_resized_image()`` - crops and resizes an image to preferred dimensions"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:68
msgid "New API for events"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:70
msgid "``elgg_clear_event_handlers()`` - similar to ``elgg_clear_plugin_hook_handlers`` this functions removes all registered event handlers"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:73
msgid "New API for signing URLs"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:75
msgid "URLs can now be signed with a SHA-256 HMAC key and validated at any time before URL expiry. This feature can be used to tokenize action URLs in email notifications, as well as other uses outside of the Elgg installation."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:77
msgid "``elgg_http_get_signed_url()`` - signs the URL with HMAC key"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:78
msgid "``elgg_http_validate_signed_url()`` - validates the signed URL"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:79
msgid "``elgg_signed_request_gatekeeper()`` - gatekeeper that validates the signature of the current request"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:82
msgid "Extendable form views"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:84
msgid "Form footer rendering can now be deferred until the form view and its extensions have finished rendering. This allows plugins to collaborate on form views without breaking the markup logic."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:86
msgid "``elgg_set_form_footer()`` - sets form footer for deferred rendering"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:87
msgid "``elgg_get_form_footer()`` - returns currently set form footer"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:90
msgid "Metadata ``access_id``"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:92
msgid "It's now deprecated to create metadata with an explicit ``access_id`` value other than ``ACCESS_PUBLIC``."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:94
msgid "In Elgg 3.0, metadata will not be access controlled, and will be available in all contexts. If your plugin relies on access control of metadata, it would be wise to migrate storage to annotations or entities instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:97
msgid "New API for extracting class names from arrays"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:99
msgid "Similar to ``elgg_extract()``, ``elgg_extract_class()`` extracts the \"class\" key (if present), merges into existing class names, and always returns an array."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:104
msgid "A high level ``'prepare','notification'`` hook is now triggered for instant and subscription notifications and can be used to alter notification objects irrespective of their type."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:105
msgid "``'format','notification:<method>'`` hook is now triggered for instant and subscription notifications and can be used to format the notification (e.g. strip HTML tags, wrap the notification body in a template etc)."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:106
msgid "Instant notifications are now handled by the notifications service, hence almost all hooks applicable to subscription notifications also apply to instant notifications."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:107
msgid "``elgg_get_notification_methods()`` can be used to obtain registered notification methods"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:108
msgid "Added ``ElggUser::getNotificationSettings()`` and ``ElggUser::setNotificationSetting()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:111
msgid "Entity list functions can output tables"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:113
msgid "In functions like ``elgg_list_entities($options)``, table output is possible by setting ``$options['list_type'] = 'table'`` and providing an array of table columns as ``$options['columns']``. Each column is an ``Elgg\\Views\\TableColumn`` object, usually created via methods on the service ``elgg()->table_columns``."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:118
msgid "Plugins can provide or alter these factory methods (see ``Elgg\\Views\\TableColumn\\ColumnFactory``). See the view ``admin/users/newest`` for a usage example."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:122
msgid "Inline tabs components"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:124
msgid "Inline tabs component can now be rendered with ``page/components/tabs`` view. The components allows to switch between pre-poluated and ajax-loaded. See ``page/components/tabs`` in core views and ``theme_sandbox/components/tabs`` in developers plugin for usage instructions and examples."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:128
msgid "API to alter registration and login URL"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:130
msgid "``elgg_get_registration_url()`` should be used to obtain site's registration URL"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:131
msgid "``elgg_get_login_url()`` should be used to obtain site's login URL"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:132
msgid "``registration_url, site`` hook can be used to alter the default registration URL"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:133
msgid "``login_url, site`` hook can be used to alter the default login URL"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:136
msgid "Support for fieldsets in forms"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:138
msgid "``elgg_view_field()`` replaces ``elgg_view_input()``. It has a similar API, but accepts a single array."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:139
msgid "``elgg_view_field()`` supports ``#type``, ``#label``, ``#help`` and ``#class``, allowing unprefixed versions to be sent to the input view ``$vars``."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:140
msgid "The new view ``input/fieldset`` can be used to render a set of fields, each rendered with ``elgg_view_field()``."
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:143
msgid "Lightbox"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:145
msgid "Lightbox css is no longer loaded as an external CSS file. Lightbox theme now extends ``elgg.css`` and ``admin.css``"
msgstr ""

#: ../../appendix/upgrade-notes/2.2-to-2.3.rst:146
msgid "Default lightbox config is now defined via ``'elgg.data','site'`` server-side hook"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:2
msgid "From 2.x to 3.0"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:9
msgid "PHP 7.0 is now required"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:11
msgid "5.6 is reaching it's end of life. PHP 7.0 is now required to install and run Elgg."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:14
msgid "``$CONFIG`` is removed!"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:16
msgid "Not exactly, however you **must** audit its usage and *should* replace it with ``elgg_get_config()`` and ``elgg_set_config()``, as recommended since Elgg 1.9."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:18
msgid "The global ``$CONFIG`` is now a proxy for Elgg's configuration container, and modifications **will fail** if you try to alter array properties directly. E.g. ``$CONFIG->cool_fruit[] = 'Pear';``. The silver lining is that failures will emit NOTICEs."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:21
msgid "Removed views"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:23
msgid "``forms/account/settings``: usersettings extension can now extend the view ``forms/usersettings/save``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:24
msgid "``forms/admin/site/advanced/system``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:25
msgid "``resources/file/download``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:26
msgid "``output/checkboxes``: use ``output/tags`` if you want the same behaviour"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:27
msgid "``input/write_access``: mod/pages now uses the **access:collections:write** plugin hook."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:28
msgid "``invitefriends/form``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:29
msgid "``page/layouts/content``: use ``page/layouts/default``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:30
msgid "``page/layouts/one_column``: use ``page/layouts/default``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:31
msgid "``page/layouts/one_sidebar``: use ``page/layouts/default``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:32
msgid "``page/layouts/two_sidebar``: use ``page/layouts/default``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:33
msgid "``page/layouts/walled_garden``: use ``page/layouts/default``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:34
msgid "``page/layouts/walled_garden/cancel_button``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:35
msgid "``page/layouts/two_column_left_sidebar``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:36
msgid "``page/layouts/widgets/add_panel``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:37
msgid "``page/elements/topbar_wrapper``: update your use of ``page/elements/topbar`` to include a check for a logged in user"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:38
msgid "``pages/icon``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:39
msgid "``groups/group_sort_menu``: use ``register, filter:menu:groups/all`` plugin hook"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:40
msgid "``groups/my_status``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:41
msgid "``groups/profile/stats``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:42
msgid "``subscriptions/form/additions``: extend ``notifications/settings/other`` instead"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:43
msgid "``likes/count``: modifications can now be done to the ``likes_count`` menu item"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:44
msgid "``likes/css``: likes now uses ``elgg/likes.css``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:45
msgid "``resources/members/index``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:46
msgid "``messageboard/css``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:47
msgid "``notifications/subscriptions/personal``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:48
msgid "``notifications/subscriptions/collections``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:49
msgid "``notifications/subscriptions/form``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:50
msgid "``notifications/subscriptions/jsfuncs``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:51
msgid "``notifications/subscriptions/forminternals``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:52
msgid "``notifications/css``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:53
msgid "``pages/input/parent``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:54
msgid "``river/item``: use elgg_view_river_item() to render river items"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:55
msgid "``river/user/default/profileupdate``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:56
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:599
msgid "``admin.js``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:57
msgid "``aalborg_theme/homepage.png``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:58
msgid "``aalborg_theme/css``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:59
msgid "``resources/avatar/view``: Use entity icon API"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:60
msgid "``ajax_loader.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:61
msgid "``button_background.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:62
msgid "``button_graduation.png``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:63
msgid "``elgg_toolbar_logo.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:64
msgid "``header_shadow.png``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:65
msgid "``powered_by_elgg_badge_drk_bckgnd.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:66
msgid "``powered_by_elgg_badge_light_bckgnd.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:67
msgid "``sidebar_background.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:68
msgid "``spacer.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:69
msgid "``toptoolbar_background.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:70
msgid "``two_sidebar_background.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:71
msgid "``ajax_loader_bw.gif``: use ``graphics/ajax_loader_bw.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:72
msgid "``elgg_logo.png``: use ``graphics/elgg_logo.png``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:73
msgid "``favicon-128.png``: use ``graphics/favicon-128.png``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:74
msgid "``favicon-16.png``: use ``graphics/favicon-16.png``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:75
msgid "``favicon-32.png``: use ``graphics/favicon-32.png``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:76
msgid "``favicon-64.png``: use ``graphics/favicon-64.png``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:77
msgid "``favicon.ico``: use ``graphics/favicon.ico``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:78
msgid "``favicon.svg``: use ``graphics/favicon.svg``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:79
msgid "``friendspicker.png``: use ``graphics/friendspicker.png``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:80
msgid "``walled_garden.jpg``: use ``graphics/walled_garden.jpg``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:81
msgid "``core/friends/collection``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:82
msgid "``core/friends/collections``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:83
msgid "``core/friends/collectiontabs``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:84
msgid "``core/friends/tablelist``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:85
msgid "``core/friends/talbelistcountupdate``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:86
msgid "``lightbox/elgg-colorbox-theme/colorbox-images/*```"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:87
msgid "``navigation/menu/page``: now uses ``navigation/menu/default`` and a prepare hook"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:88
msgid "``navigation/menu/site``: now uses default view"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:89
msgid "``page/elements/by_line``: Use ``object/elements/imprint``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:90
msgid "``forms/admin/site/advanced/security``: the site secret information has been moved to ``forms/admin/security/settings``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:91
msgid "``river/object/file/create``: check :doc:`/guides/river`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:92
msgid "``river/object/page/create``: check :doc:`/guides/river`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:93
msgid "``river/object/page_top/create``: check :doc:`/guides/river`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:94
msgid "``river/relationship/member``: check :doc:`/guides/river`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:95
msgid "``object/page_top``: use ``object/page``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:96
msgid "``ajax/discussion/reply/edit``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:97
msgid "``discussion/replies``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:98
msgid "``object/discussion_reply``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:99
msgid "``resources/discussion/reply/edit``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:100
msgid "``resources/elements/discussion_replies``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:101
msgid "``river/elements/discussion_replies``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:102
msgid "``river/object/discussion/create``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:103
msgid "``river/object/discussion_reply/create``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:104
msgid "``search/object/discussion_reply/entity``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:105
msgid "``rss/discussion/replies``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:106
msgid "``search/header``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:107
msgid "``search/layout`` in both ``default`` and ``rss`` viewtypes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:108
msgid "``search/no_results``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:109
msgid "``search/object/comment/entity``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:110
msgid "``search/css``: Moved to ``search/search.css``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:111
msgid "``search/startblurb``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:112
msgid "``bookmarks/bookmarklet.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:113
msgid "``blog_get_page_content_list``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:114
msgid "``blog_get_page_content_archive``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:115
msgid "``blog_get_page_content_edit``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:116
msgid "``forms/invitefriends/invite``: use ``forms/friends/invite``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:117
msgid "``resources/invitefriends/invite``: use ``resources/friends/invite``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:118
msgid "``resources/reportedcontent/add``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:119
msgid "``resources/reportedcontent/add_form``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:120
msgid "``resources/site_notifications/view``: Use ``resources/site_notifications/owner``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:121
msgid "``resources/site_notifications/everyone``: Use ``resources/site_notifications/all``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:124
msgid "Removed functions/methods"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:126
msgid "All the functions in ``engine/lib/deprecated-1.9.php`` were removed. See https://github.com/Elgg/Elgg/blob/2.0/engine/lib/deprecated-1.9.php for these functions. Each ``@deprecated`` declaration includes instructions on what to use instead. All the functions in ``engine/lib/deprecated-1.10.php`` were removed. See https://github.com/Elgg/Elgg/blob/2.0/engine/lib/deprecated-1.10.php for these functions. Each ``@deprecated`` declaration includes instructions on what to use instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:129
msgid "``elgg_register_library``: require your library files so they are available globally to other plugins"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:130
msgid "``elgg_load_library``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:131
msgid "``activity_profile_menu``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:132
msgid "``can_write_to_container``: Use ``ElggEntity->canWriteToContainer()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:133
msgid "``create_metadata_from_array``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:134
msgid "``metadata_array_to_values``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:135
msgid "``datalist_get``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:136
msgid "``datalist_set``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:137
msgid "``detect_extender_valuetype``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:138
msgid "``developers_setup_menu``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:139
msgid "``elgg_disable_metadata``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:140
msgid "``elgg_enable_metadata``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:141
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:513
msgid "``elgg_get_class_loader``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:142
msgid "``elgg_get_metastring_id``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:143
msgid "``elgg_get_metastring_map``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:144
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:514
msgid "``elgg_register_class``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:145
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:515
msgid "``elgg_register_classes``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:146
msgid "``elgg_register_viewtype``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:147
msgid "``elgg_is_registered_viewtype``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:148
msgid "``file_delete``: Use ``ElggFile->deleteIcon()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:149
msgid "``file_get_type_cloud``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:150
msgid "``file_type_cloud_get_url``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:152
msgid "``get_site_entity_as_row``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:153
msgid "``get_group_entity_as_row``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:154
msgid "``get_missing_language_keys``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:155
msgid "``get_object_entity_as_row``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:156
msgid "``get_user_entity_as_row``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:157
msgid "``update_river_access_by_object``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:158
msgid "``garbagecollector_orphaned_metastrings``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:159
msgid "``groups_access_collection_override``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:160
msgid "``groups_get_group_tool_options``: Use ``elgg()->group_tools->all()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:161
msgid "``groups_join_group``: Use ``ElggGroup::join``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:162
msgid "``groups_prepare_profile_buttons``: Use ``register, menu:title`` hook"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:163
msgid "``groups_register_profile_buttons``: Use ``register, menu:title`` hook"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:164
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:166
msgid "``groups_setup_sidebar_menus``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:165
msgid "``groups_set_icon_url``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:167
msgid "``messages_notification_msg``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:169
msgid "``generate_user_password``: Use ``ElggUser::setPassword``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:170
msgid "``row_to_elggrelationship``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:171
msgid "``run_function_once``: Use ``Elgg\\Upgrade\\Batch`` interface"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:172
msgid "``system_messages``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:173
msgid "``notifications_plugin_pagesetup``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:174
msgid "``elgg_format_url``: Use elgg_format_element() or the \"output/text\" view for HTML escaping."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:175
msgid "``get_site_by_url``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:176
msgid "``elgg_override_permissions``: No longer used as handler for ``permissions_check`` and ``container_permissions_check`` hooks"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:177
msgid "``elgg_check_access_overrides``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:178
msgid "``AttributeLoader`` became obsolete and was removed"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:179
msgid "``Application::loadSettings``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:180
msgid "``ElggEntity::addToSite``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:181
msgid "``ElggEntity::disableMetadata``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:182
msgid "``ElggEntity::enableMetadata``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:183
msgid "``ElggEntity::getSites``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:184
msgid "``ElggEntity::removeFromSite``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:185
msgid "``ElggEntity::isFullyLoaded``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:186
msgid "``ElggEntity::clearAllFiles``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:187
msgid "``ElggPlugin::getFriendlyName``: Use ``ElggPlugin::getDisplayName()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:188
msgid "``ElggPlugin::setID``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:189
msgid "``ElggPlugin::unsetAllUsersSettings``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:190
msgid "``ElggFile::setFilestore``: ElggFile objects can no longer use custom filestores."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:191
msgid "``ElggFile::size``: Use ``getSize``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:192
msgid "``ElggDiskFilestore::makeFileMatrix``: Use ``Elgg\\EntityDirLocator``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:193
msgid "``ElggData::get``: Usually can be replaced by property read"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:194
msgid "``ElggData::getClassName``: Use ``get_class()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:195
msgid "``ElggData::set``: Usually can be replaced by property write"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:196
msgid "``ElggEntity::setURL``: See ``getURL`` for details on the plugin hook"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:197
msgid "``ElggMenuBuilder::compareByWeight``: Use ``compareByPriority``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:198
msgid "``ElggMenuItem::getWeight``: Use ``getPriority``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:199
msgid "``ElggMenuItem::getContent``: Use ``elgg_view_menu_item()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:200
msgid "``ElggMenuItem::setWeight``: Use ``setPriority``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:201
msgid "``ElggRiverItem::getPostedTime``: Use ``getTimePosted``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:202
msgid "``ElggSession`` has removed all deprecated methods"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:203
msgid "``ElggSite::addEntity``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:204
msgid "``ElggSite::addObject``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:205
msgid "``ElggSite::addUser``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:206
msgid "``ElggSite::getEntities``: Use ``elgg_get_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:207
msgid "``ElggSite::getExportableValues``: Use ``toObject``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:208
msgid "``ElggSite::getMembers``: Use ``elgg_get_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:209
msgid "``ElggSite::getObjects``: Use ``elgg_get_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:210
msgid "``ElggSite::listMembers``: Use ``elgg_list_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:211
msgid "``ElggSite::removeEntity``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:212
msgid "``ElggSite::removeObject``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:213
msgid "``ElggSite::removeUser``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:214
msgid "``ElggSite::isPublicPage``: Logic moved to the router and should not be accessed directly"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:215
msgid "``ElggSite::checkWalledGarden``: Logic moved to the router and should not be accessed directly"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:216
msgid "``ElggUser::countObjects``: Use ``elgg_get_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:217
msgid "``Logger::getClassName``: Use ``get_class()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:218
msgid "``Elgg\\Application\\Database::getTablePrefix``: Read the ``prefix`` property"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:219
msgid "``elgg_view_access_collections()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:220
msgid "``ElggSession::get_ignore_access``: Use ``getIgnoreAccess``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:221
msgid "``ElggSession::set_ignore_access``: Use ``setIgnoreAccess``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:222
msgid "``profile_pagesetup``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:223
msgid "``pages_can_delete_page``: Use ``$entity->canDelete()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:224
msgid "``pages_search_pages``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:225
msgid "``pages_is_page``: use ``$entity instanceof ElggPage``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:226
msgid "``discussion_comment_override``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:227
msgid "``discussion_can_edit_reply``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:228
msgid "``discussion_reply_menu_setup``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:229
msgid "``discussion_reply_container_logic_override``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:230
msgid "``discussion_reply_container_permissions_override``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:231
msgid "``discussion_update_reply_access_ids``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:232
msgid "``discussion_search_discussion``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:233
msgid "``discussion_add_to_river_menu``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:234
msgid "``discussion_prepare_reply_notification``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:235
msgid "``discussion_redirect_to_reply``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:236
msgid "``discussion_ecml_views_hook``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:237
msgid "``search_get_where_sql``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:238
msgid "``search_get_ft_min_max``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:239
msgid "``search_get_order_by_sql``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:240
msgid "``search_consolidate_substrings``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:241
msgid "``search_remove_ignored_words``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:242
msgid "``search_get_highlighted_relevant_substrings``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:243
msgid "``search_highlight_words``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:244
msgid "``search_get_search_view``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:245
msgid "``search_custom_types_tags_hook``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:246
msgid "``search_tags_hook``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:247
msgid "``search_users_hook``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:248
msgid "``search_groups_hook``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:249
msgid "``search_objects_hook``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:250
msgid "``members_list_popular``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:251
msgid "``members_list_newest``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:252
msgid "``members_list_online``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:253
msgid "``members_list_alpha``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:254
msgid "``members_nav_popular``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:255
msgid "``members_nav_newest``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:256
msgid "``members_nav_online``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:257
msgid "``members_nav_alpha``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:258
msgid "``uservalidationbyemail_generate_code``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:267
msgid "All functions around entity subtypes table:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:261
msgid "``add_subtype``: Use ``elgg_set_entity_class`` at runtime"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:262
msgid "``update_subtype``: Use ``elgg_set_entity_class`` at runtime"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:263
msgid "``remove_subtype``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:264
msgid "``get_subtype_id``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:265
msgid "``get_subtype_from_id``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:266
msgid "``get_subtype_class``: Use ``elgg_get_entity_class``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:267
msgid "``get_subtype_class_from_id``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:277
msgid "All caches have been consolidated into a single API layer. The following functions and methods have been removed:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:270
msgid "``is_memcache_available``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:271
msgid "``_elgg_get_memcache``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:272
msgid "``_elgg_invalidate_memcache_for_entity``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:273
msgid "``ElggMemcache``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:274
msgid "``ElggFileCache``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:275
msgid "``ElggStaticVariableCache``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:276
msgid "``ElggSharedMemoryCache``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:277
msgid "``Elgg\\Cache\\Pool`` interface and all extending classes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:291
msgid "As a result of system log changes:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:280
msgid "``system_log_default_logger``: moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:281
msgid "``system_log_listener``: moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:282
msgid "``system_log``: moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:283
msgid "``get_system_log``: renamed to ``system_log_get_log`` and moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:284
msgid "``get_log_entry``: renamed to ``system_log_get_log_entry`` and moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:285
msgid "``get_object_from_log_entry``: renamed to ``system_log_get_object_from_log_entry`` and moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:286
msgid "``archive_log``: renamed to ``system_log_archive_log`` and moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:287
msgid "``logbrowser_user_hover_menu``: renamed to ``system_log_user_hover_menu`` and moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:288
msgid "``logrotate_archive_cron``: renamed to ``system_log_archive_cron`` and moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:289
msgid "``logrotate_delete_cron``: renamed to ``system_log_delete_cron`` and moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:290
msgid "``logrotate_get_seconds_in_period``: renamed to ``system_log_get_seconds_in_period`` and moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:291
msgid "``log_browser_delete_log``: renamed to ``system_log_browser_delete_log`` and moved to ``system_log`` plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:296
msgid "``ban_user``: Use ``ElggUser->ban()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:297
msgid "``create_metadata``: Use ``ElggEntity`` setter or ``ElggEntity->setMetadata()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:298
msgid "``update_metadata``: Use ``ElggMetadata->save()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:299
msgid "``get_metadata_url``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:300
msgid "``create_annotation``: Use ``ElggEntity->annotate()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:301
msgid "``update_metadata``: Use ``ElggAnnotation->save()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:302
msgid "``elgg_get_user_validation_status``: Use ``ElggUser->isValidated()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:303
msgid "``make_user_admin``: Use ``ElggUser->makeAdmin()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:304
msgid "``remove_user_admin``: Use ``ElggUser->removeAdmin()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:305
msgid "``unban_user``: Use ``ElggUser->unban()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:306
msgid "``elgg_get_entities_from_attributes``: Use ``elgg_get_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:307
msgid "``elgg_get_entities_from_metadata``: Use ``elgg_get_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:308
msgid "``elgg_get_entities_from_relationship``: Use ``elgg_get_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:309
msgid "``elgg_get_entities_from_private_settings``: Use ``elgg_get_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:310
msgid "``elgg_get_entities_from_access_id``: Use ``elgg_get_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:311
msgid "``elgg_list_entities_from_metadata``: Use ``elgg_list_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:312
msgid "``elgg_list_entities_from_relationship``: Use ``elgg_list_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:313
msgid "``elgg_list_entities_from_private_settings``: Use ``elgg_list_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:314
msgid "``elgg_list_entities_from_access_id``: Use ``elgg_list_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:315
msgid "``elgg_list_registered_entities``: Use ``elgg_list_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:316
msgid "``elgg_batch_delete_callback``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:317
msgid "``\\Elgg\\Project\\Paths::sanitize``: Use ``\\Elgg\\Project\\Paths::sanitize()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:318
msgid "``elgg_group_gatekeeper``: Use ``elgg_entity_gatekeeper()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:319
msgid "``get_entity_dates``: Use ``elgg_get_entity_dates()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:320
msgid "``messages_set_url``: Use ``ElggEntity::getURL()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:323
msgid "Removed global vars"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:325
msgid "``$CURRENT_SYSTEM_VIEWTYPE``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:326
msgid "``$DEFAULT_FILE_STORE``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:327
msgid "``$ENTITY_CACHE``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:328
msgid "``$SESSION``: Use the API provided by ``elgg_get_session()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:329
msgid "``$CONFIG->site_id``: Use ``1``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:330
msgid "``$CONFIG->search_info``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:331
msgid "``$CONFIG->input``: Use ``set_input`` and ``get_input``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:334
msgid "Removed classes/interfaces"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:337
msgid "``Elgg_Notifications_Notification``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:338
msgid "``Elgg\\Database\\EntityTable\\UserFetchResultException.php``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:339
msgid "``Elgg\\Database\\MetastringsTable``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:340
msgid "``Elgg\\Database\\SubtypeTable``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:341
msgid "``Exportable`` and its methods ``export`` and ``getExportableValues``: Use ``toObject``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:342
msgid "``ExportException``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:343
msgid "``Importable`` and its method ``import``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:344
msgid "``ImportException``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:345
msgid "``ODD`` and all classes beginning with ``ODD*``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:346
msgid "``XmlElement``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:347
msgid "``Elgg_Notifications_Event``: Use ``\\Elgg\\Notifications\\Event``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:348
msgid "``Elgg\\Mail\\Address``: use ``Elgg\\Email\\Address``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:349
msgid "``ElggDiscussionReply``: user ``ElggComment`` see :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:352
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:196
msgid "Schema changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:354
msgid "The storage engine for the database tables has been changed from MyISAM to InnoDB. You maybe need to optimize your database settings for this change. The ``datalists`` table has been removed. All settings from datalists table have been merged into the ``config`` table."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:357
msgid "Metastrings in the database have been denormalized for performance purposes. We removed the metastrings table and put all the string values directly in the metadata and annotation tables. You need to update your custom queries to reflect these changes. Also the ``msv`` and ``msn`` table aliases are no longer available. It is best practice not to rely on the table aliases used in core queries. If you need to use custom clauses you should do your own joins."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:361
msgid "From the \"users_entity\" table, the ``password`` and ``hash`` columns have been removed."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:363
msgid "The ``geocode_cache`` table has been removed as it was no longer used."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:365
msgid "``subtype`` column in ``entities`` table no longer holds a subtype ID, but a subtype string ``entity_subtypes`` table has been dropped."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:368
msgid "``type``, ``subtype`` and ``access_id`` columns in ``river`` table have been dropped. For queries without ``elgg_get_river()`` join the ``entities`` table on ``object_guid`` to check the type and the subtype of the entity. Access column hasn't been in use for some time: queries are built to ensure access to all three entities (subject, object and target)."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:373
msgid "Changes in ``elgg_get_entities``, ``elgg_get_metadata`` and ``elgg_get_annotations`` getter functions"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:375
msgid "``elgg_get_entities`` now accepts all options that were previously distributed between ``elgg_get_entities_from_metadata``, ``elgg_get_entities_from_annotations``, ``elgg_get_entities_from_relationship``, ``elgg_get_entities_from_private_settings`` and ``elgg_get_entities_from_access_id``. The latter have been been deprecated."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:379
msgid "Passing raw MySQL statements to options is deprecated. Plugins are advised to use closures that receive an instance of ``\\Elgg\\Database\\QueryBuilder`` and prepare the statement using database abstraction layer. On one hand this will ensure that all statements are properly sanitized using the database driver, on the other hand it will allow us to transition to testable object-oriented query building."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:384
msgid "``wheres`` statements should not use raw SQL strings, instead pass an instance of ``\\Elgg\\Database\\Clauses\\WhereClause`` or a closure that returns an instance of ``\\Doctrine\\DBAL\\Query\\Expression\\CompositeExpression``:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:398
msgid "``joins``, ``order_by``, ``group_by``, ``selects`` clauses should not use raw SQL strings. Use closures that receive an instance of ``\\Elgg\\Database\\QueryBuilder`` and return a prepared statement."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:401
msgid "The ``reverse_order_by`` option has been removed."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:403
msgid "Plugins should not rely on joined and selected table aliases. Closures passed to the options array will receive a second argument that corresponds to the selected table alias. Plugins must perform their own joins and use joined aliases accordingly."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:406
msgid "Note that all of the private API around building raw SQL strings has also been removed. If you were relying on them in your plugins, be advised that anything marked as ``@access private`` or ``@internal`` in core can be modified and removed at any time, and we do not guarantee any backward compatibility for those functions. DO NOT USE THEM. If you find yourself needing to use them, open an issue on Github and we will consider adding a public equivalent."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:412
msgid "Boolean entity properties"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:414
msgid "Storage of metadata, annotation and private setting values has been aligned."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:416
msgid "**Boolean values are cast to integers when saved**: ``false`` is stored as ``0`` and ``true`` is stored as ``1``. This has breaking implications for private settings, which were previously stored as empty strings for ``false`` values. Plugins should write their own migration scripts to alter DB values from empty strings to ``0`` (for private settings that are expected to store boolean values) to ensure that ``elgg_get_entities()`` can retrieve these values with ``private_setting_name_value_pairs`` containing ``false`` values. This applies to plugin settings, as well as any private settings added to entities."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:424
msgid "Metadata Changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:426
msgid "Metadata is no longer access controlled. If your plugin created metadata with restricted access, those restrictions will not be honored. You should use annotations or entities instead, which do provide access control."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:428
msgid "Do not read or write to the ``access_id`` property on ElggMetadata objects."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:430
msgid "Metadata is no longer enabled or disabled. You can no longer perform the ``enable`` and ``disable`` API calls on metadata."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:432
msgid "Metadata no longer has an ``owner_guid``. It is no longer possible to query metadata based on ``owner_guids``. Subsequently, ``ElggMetadata::canEdit()`` will always return ``true`` regardless of the logged in user, unless explicitly overriden by a plugin hook."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:436
msgid "Permissions and Access"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:438
msgid "User capabilities service will no longer trigger permission check hooks when:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:440
msgid "permissions are checked for an admin user"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:441
msgid "permissions are checked when access is ignored with ``elgg_set_ignore_access()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:443
msgid "This means that plugins can no longer alter permissions in aforementioned cases."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:445
msgid "``elgg_check_access_overrides()`` has been removed, as plugins will no longer need to validate access overrides."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:447
msgid "The translations for the default Elgg access levels have new translation language keys."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:450
msgid "Multi Site Changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:452
msgid "Pre 3.0 Elgg has some (partial) support for having multiple sites in the same database. This Multi Site concept has been completely removed in 3.0. Entities no longer have the site_guid attribute. This means there is no longer the ability to have entities on different sites. If you currently have multiple sites in your database, upgrading Elgg to 3.0 will fail. You need to separate the different sites into separate databases/tables."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:457
msgid "Related to the removal of the Multi Site concept in Elgg, there is no longer a need for entities having a 'member_of_site' relationship with the Site Entity. All functions related to adding/removing this relationship has been removed. All existing relationships will be removed as part of this upgrade."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:460
msgid "Setting ``ElggSite::$url`` has no effect. Reading the site URL always pulls from the ``$CONFIG->wwwroot`` set in settings.php, or computed by Symphony Request."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:463
msgid "``ElggSite::save()`` will fail if it isn't the main site."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:466
msgid "Entity Subtable Changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:468
msgid "The subtable ``sites_entity`` for ``ElggSite`` no longer exists. All attributes have been moved to metadata. The subtable ``groups_entity`` for ``ElggGroup`` no longer exists. All attributes have been moved to metadata. The subtable ``objects_entity`` for ``ElggObject`` no longer exists. All attributes have been moved to metadata. The subtable ``users_entity`` for ``ElggUser`` no longer exists. All attributes have been moved to metadata."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:473
msgid "If you have custom queries referencing this table you need to update them. If you have function that rely on ``Entity->getOriginalAttributes()`` be advised that this will only return the base attributes of an ``ElggEntity`` and no longer contain the secondary attributes."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:478
msgid "Friends and Group Access Collection"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:480
msgid "The access collections table now has a subtype column. This extra data helps identifying the purpose of the ACL. The user owned access collections are assumed to be used as Friends Collections and now have the 'friends_collection' subtype. The groups access collection information was previously stored in the group_acl metadata. With the introduction of the ACL subtype this information has been moved to the ACL subtype attribute."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:485
msgid "The ``ACCESS_FRIENDS`` access_id has been migrated to an actual access collection (with the subtype ``friends``). All entities and annotations have been updated to use the new access collection id. The access collection is created when a user is created. When a relationship of the type ``friends`` is created, the related guid will also be added to the access collection. You can no longer save or update entities with the access id ``ACCESS_FRIENDS``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:490
msgid "Subtypes no longer have an ID"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:492
msgid "Entity subtypes have been denormalized. ``entity_subtypes`` table has been removed and ``subtype`` column in entities table simply holds the string representation of the subtype."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:495
msgid "Consequently, all API around adding/updating entity subtypes and classes have been removed."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:497
msgid "Plugins can now use ``elgg_set_entity_class()`` and ``elgg_get_entity_class()`` to register a custom entity class at runtime (e.g. in system init handler)."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:499
msgid "All entities now **MUST** have a subtype. By default, the following subtypes are added and reserved:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:501
msgid "``user`` for users"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:502
msgid "``group`` for groups"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:503
msgid "``site`` for sites"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:506
msgid "Custom class loading"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:508
msgid "Elgg no longer provides API functions to register custom classes. If you need custom classes you can use ``PSR-0`` classes in the ``/classes`` folder of your plugin or use composer for autoloading of additional classes."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:511
msgid "The following class registration related functions have been removed:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:518
msgid "Dependency Injection Container"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:520
msgid "Plugins can now define their services and attach them to Elgg's public DI container by providing definitions in ``elgg-services.php`` in the root of the plugin directory."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:523
msgid "``elgg()`` no longer returns an instance of Elgg application, but a DI container instance."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:526
msgid "Search changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:528
msgid "We have added a search service into core, consequently the ``search`` plugin now only provides a user interface for displaying forms and listing search results. Many of the views in the search plugin have been affected by this change."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:531
msgid "The FULLTEXT indices have been removed on various tables. The search plugin will now always use a like query when performing a search."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:533
msgid "See :doc:`Search Service </guides/search>` and :ref:`Search hooks <guides/hooks-list#search>` documentation for detailed information about new search capabilities."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:536
msgid "Form and field related changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:538
msgid "``input/password``: by default this field will no longer show a value passed to it, this can be overridden by passing the view var ``always_empty`` and set it to false"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:539
msgid "``input/submit``, ``input/reset`` and ``input/button`` are now rendered with a ``<button>`` instead of the ``<input>`` tag. These input view also accept ``text`` and ``icon`` parameters."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:540
msgid "``output/url`` now sets ``.elgg-anchor`` class on anchor elements and accepts ``icon`` parameter. If no ``text`` is set, the ``href`` parameter used as a label will be restricted to 100 characters."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:541
msgid "``output/url`` now supports a ``badge`` parameter, which can be used where a counter, a badge, or similar is required as a postfix (mainly in menu items that have counters)."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:542
msgid "``output/tags`` no longer uses ``<ul>`` tags with floats and instead it relies on inherently inline elements such as ``<span>`` and ``<a>``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:545
msgid "Entity and River Menu Changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:547
msgid "The Entity and River menu now shows all the items in a dropdown. Social actions like liking or commenting are moved to an alternate menu called the social menu, which is meant for social actions."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:552
msgid "``elgg_register_library`` and ``elgg_load_library`` have been removed. These functions had little impact on performance (especially with OPCache enabled), and made it difficult for other plugins to work with APIs contained in libraries. Additionally it was difficult for developers to know that APIs were contained in a library while there being autocompleted by IDE."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:556
msgid "If you are concerned with performance, move the logic to classes and let PHP autoload them as necessary, otherwise use ``require_once`` and require your libraries."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:559
msgid "Removed pagehandling"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:561
msgid "``file/download``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:562
msgid "``file/search``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:563
msgid "``groupicon``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:564
msgid "``twitterservice``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:565
msgid "``collections/pickercallback``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:566
msgid "``discussion/reply``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:567
msgid "``expages``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:568
msgid "``invitefriends``: Use ``friends/{username}/invite``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:569
msgid "``messages/compose``: Use ``messages/add``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:570
msgid "``reportedcontent``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:573
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:1004
msgid "Removed actions"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:575
msgid "``file/download``: Use ``elgg_get_inline_url`` or ``elgg_get_download_url``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:576
msgid "``file/delete``: Use ``entity/delete`` action"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:577
msgid "``import/opendd``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:578
msgid "``discussion/reply/save``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:579
msgid "``discussion/reply/delete``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:580
msgid "``comment/delete``: Use ``entity/delete`` action"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:581
msgid "``uservalidationbyemail/bulk_action``: use ``admin/user/bulk/validate`` or ``admin/user/bulk/delete``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:582
msgid "``uservalidationbyemail/delete``: use ``admin/user/bulk/delete``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:583
msgid "``uservalidationbyemail/validate``: use ``admin/user/bulk/validate``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:584
msgid "``invitefriends/invite``: use ``friends/invite``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:587
msgid "Inheritance changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:589
msgid "``ElggData`` (and hence most Elgg domain objects) no longer implements ``Exportable``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:590
msgid "``ElggEntity`` no longer implements ``Importable``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:591
msgid "``ElggGroup`` no longer implements ``Friendable``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:592
msgid "``ElggRelationship`` no longer implements ``Importable``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:593
msgid "``ElggSession`` no longer implements ``ArrayAccess``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:594
msgid "``Elgg\\Application\\Database`` no longer extends ``Elgg\\Database``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:597
msgid "Removed JavaScript APIs"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:600
msgid "``elgg.widgets``: Use the ``elgg/widgets`` module. The \"widgets\" layouts do this module automatically"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:601
msgid "``lightbox.js``: Use the ``elgg/lightbox`` module as needed"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:602
msgid "``lightbox/settings.js``: Use the ``getOptions, ui.lightbox`` JS hook or the ``data-colorbox-opts`` attribute"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:603
msgid "``elgg.ui.popupClose``: Use the ``elgg/popup`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:604
msgid "``elgg.ui.popupOpen``: Use the ``elgg/popup`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:605
msgid "``elgg.ui.initAccessInputs``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:606
msgid "``elgg.ui.river``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:607
msgid "``elgg.ui.initDatePicker``: Use the ``input/date`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:608
msgid "``elgg.ui.likesPopupHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:609
msgid "``elgg.embed``: Use the ``elgg/embed`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:610
msgid "``elgg.discussion``: Use the ``elgg/discussion`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:611
msgid "``embed/custom_insert_js``: Use the ``embed, editor`` JS hook"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:612
msgid "``elgg/ckeditor.js``: replaced by ``elgg-ckeditor.js``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:613
msgid "``elgg/ckeditor/set-basepath.js``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:614
msgid "``elgg/ckeditor/insert.js``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:615
msgid "``jQuery.cookie``: Use ``elgg.session.cookie``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:616
msgid "``jquery.jeditable``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:617
msgid "``likes.js``: The ``elgg/likes`` module is loaded automatically"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:618
msgid "``messageboard.js``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:619
msgid "``elgg.autocomplete`` is no longer defined."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:620
msgid "``elgg.messageboard`` is no longer defined."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:621
msgid "``jQuery.fn.friendsPicker``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:622
msgid "``elgg.ui.toggleMenu`` is no longer defined"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:623
msgid "``elgg.ui.toggleMenuItems``: Use ``data-toggle`` attribute when registering toggleable menu items"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:624
msgid "``uservalidationbyemail/js.php``: Use the ``elgg/uservalidationbyemail`` module"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:625
msgid "``discussion.js``: See :ref:`upgrade-discussion-replies`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:628
msgid "Removed hooks/events"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:630
msgid "Event **login, user**: Use **login:before** or **login:after**. Note the user is not logged in during the **login:before** event"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:631
msgid "Event **delete, annotations**: Use **delete, annotation**"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:632
msgid "Event **pagesetup, system**: Use the menu or page shell hooks instead"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:633
msgid "Event **upgrade, upgrade**: Use **upgrade, system** instead"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:634
msgid "Hook **index, system**: Override the ``resources/index`` view"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:635
msgid "Hook **object:notifications, <type>**: Use the hook **send:before, notifications**"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:636
msgid "Hook **output:before, layout**: Use **view_vars, page/layout/<layout_name>**"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:637
msgid "Hook **output:after, layout**: Use **view, page/layout/<layout_name>**"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:638
msgid "Hook **email, system**: Use more granular **<hook>, system:email** hooks"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:639
msgid "Hook **email:message, system**: Use **zend:message, system:email** hook"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:640
msgid "Hook **members:list, <page>**: Use your own pagehandler or route hook"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:641
msgid "Hook **members:config, <page>**: Use **register, menu:filter:members**"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:642
msgid "Hook **profile_buttons, group**: Use **register, menu:title**"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:645
msgid "Removed forms/actions"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:647
msgid "``notificationsettings/save`` form and action"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:648
msgid "``notificationsettings/groupsave`` form and action"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:649
msgid "``discussion/reply/save`` form and action"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:652
msgid "APIs that now accept only an ``$options`` array"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:654
msgid "``ElggEntity::getAnnotations``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:655
msgid "``ElggEntity::getEntitiesFromRelationship``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:656
msgid "``ElggGroup::getMembers``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:657
msgid "``ElggUser::getGroups``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:658
msgid "``ElggUser::getFriends`` (as part of ``Friendable``)"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:659
msgid "``ElggUser::getFriendsOf`` (as part of ``Friendable``)"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:660
msgid "``ElggUser::getFriendsObjects`` (as part of ``Friendable``)"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:661
msgid "``ElggUser::getObjects`` (as part of ``Friendable``)"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:662
msgid "``find_active_users``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:663
msgid "``elgg_get_admin_notices``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:666
msgid "Plugin functions that now require an explicit ``$plugin_id``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:668
msgid "``elgg_get_all_plugin_user_settings``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:669
msgid "``elgg_set_plugin_user_setting``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:670
msgid "``elgg_unset_plugin_user_setting``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:671
msgid "``elgg_get_plugin_user_setting``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:672
msgid "``elgg_set_plugin_setting``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:673
msgid "``elgg_get_plugin_setting``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:674
msgid "``elgg_unset_plugin_setting``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:675
msgid "``elgg_unset_all_plugin_settings``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:678
msgid "Class constructors that now accept only a ``stdClass`` object or ``null``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:680
msgid "``ElggAnnotation``: No longer accepts an annotation ID"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:681
msgid "``ElggGroup``: No longer accepts a GUID"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:682
msgid "``ElggMetadata``: No longer accepts a metadata ID"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:683
msgid "``ElggObject``: No longer accepts a GUID"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:684
msgid "``ElggRelationship``: No longer accepts a relationship ID or ``null``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:685
msgid "``ElggSite``: No longer accepts a GUID or URL"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:686
msgid "``ElggUser``: No longer accepts a GUID or username"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:687
msgid "``ElggPlugin``: No longer accepts a GUID or path. Use ``ElggPlugin::fromId`` to construct a plugin from its path"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:690
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:865
msgid "Miscellaneous API changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:692
msgid "``ElggBatch``: You may only access public properties"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:693
msgid "``ElggEntity``: The ``tables_split`` and ``tables_loaded`` properties were removed"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:694
msgid "``ElggEntity``: Empty URLs will no longer be normalized. This means entities without URLs will no longer result in the site URL"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:695
msgid "``ElggGroup::removeObjectFromGroup`` requires passing in an ``ElggObject`` (no longer accepts a GUID)"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:696
msgid "``ElggUser::$salt`` no longer exists as an attribute, nor is it used for authentication"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:697
msgid "``ElggUser::$password`` no longer exists as an attribute, nor is it used for authentication"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:698
msgid "``elgg_get_widget_types`` no longer supports ``$exact`` as the 2nd argument"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:699
msgid "``elgg_instanceof`` no longer supports the fourth ``class`` argument"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:700
msgid "``elgg_view``: The 3rd and 4th (unused) arguments have been removed. If you use the ``$viewtype`` argument, you must update your usage."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:701
msgid "``elgg_view_icon`` no longer supports ``true`` as the 2nd argument"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:702
msgid "``elgg_list_entities`` no longer supports the option ``view_type_toggle``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:703
msgid "``elgg_list_registered_entities`` no longer supports the option ``view_type_toggle``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:704
msgid "``elgg_log`` no longer accepts the level ``\"DEBUG\"``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:705
msgid "``elgg_dump`` no longer accepts a ``$to_screen`` argument."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:706
msgid "``elgg_gatekeeper`` and ``elgg_admin_gatekeeper`` no longer report ``login`` or ``admin`` as forward reason, but ``403``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:707
msgid "``Application::getDb()`` no longer returns an instance of ``Elgg\\Database``, but rather a ``Elgg\\Application\\Database``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:708
msgid "``$CONFIG`` is no longer available as a local variable inside plugin ``start.php`` files."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:709
msgid "``elgg_get_config('siteemail')`` is no longer available. Use ``elgg_get_site_entity()->email``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:710
msgid "``ElggEntity::saveIconFromUploadedFile`` only saves `master` size, the other sizes are created when requested by ``ElggEntity::getIcon()`` based on the `master` size"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:711
msgid "``ElggEntity::saveIconFromLocalFile`` only saves `master` size, the other sizes are created when requested by ``ElggEntity::getIcon()`` based on the `master` size"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:712
msgid "``ElggEntity::saveIconFromElggFile`` only saves `master` size, the other sizes are created when requested by ``ElggEntity::getIcon()`` based on the `master` size"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:713
msgid "Group entities do no longer have the magic ``username`` attribute."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:714
msgid "Pagehandling will no longer detect ``group:<guid>`` in the URL"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:715
msgid "The CRON interval ``reboot`` is removed."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:716
msgid "The URL endpoints ``js/`` and ``css/`` are no longer supported. Use ``elgg_get_simplecache_url()``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:717
msgid "The generic comment save action no longer sends the notification directly, this has been offloaded to the notification system."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:718
msgid "The script ``engine/start.php`` is removed."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:719
msgid "The functions ``set_config``, ``unset_config`` and ``get_config`` have been deprecated and replaced by ``elgg_set_config``, ``elgg_remove_config`` and ``elgg_get_config``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:720
msgid "Config values ``path``, ``wwwroot``, and ``dataroot`` are not read from the database. The settings.php file values are always used."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:721
msgid "Config functions like ``elgg_get_config`` no longer trim keys."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:722
msgid "If you override the view ``navigation/menu/user_hover/placeholder``, you must change the config key ``lazy_hover:menus`` to ``elgg_lazy_hover_menus``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:723
msgid "The config value ``entity_types`` is no longer present or used."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:724
msgid "Uploaded images are autorotated based on their orientation metadata."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:725
msgid "The view ``object/widget/edit/num_display`` now uses an ``input/number`` field instead of ``input/select``; you might need to update your widget edit views accordingly."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:726
msgid "Annotation names are no longer trimmed during save"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:729
msgid "View extension behaviour changed"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:731
msgid "An extended view now will receive all the regular hooks (like the `view_vars` hook). It now is also possible to extend view extensions. With this change in behaviour all view rendering will behave the same. It no longer matters if it was used as an extension or not."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:736
msgid "JavaScript hook calling order may change"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:738
msgid "When registering for hooks, the ``all`` keyword for wildcard matching no longer has any effect on the order that handlers are called. To ensure your handler is called last, you must give it the highest priority of all matching handlers, or to ensure your handler is called first, you must give it the lowest priority of all matching handlers."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:749
msgid "Widget layout related changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:751
msgid "The widget layout usage has been changed. Content is no longer drawn as part of the layout. You need to wrap you content in another layout and use the widgets layout as part of your content. If you want some special content to show if there are no widgets in the layout, you can now pass a special ``no_widgets`` parameter (as String or as a Closure)."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:755
msgid "When registering widgets you can no longer omit passing a context as the ``all`` context is no longer supported. You need to explicitely pass the contexts for which the widget is intended."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:759
msgid "Routing"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:761
msgid "Page handling using ``elgg_register_page_handler()`` has been deprecated."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:763
msgid "We have added new routing API using ``elgg_register_route()``, which allows plugins to define named routes, subsequently using route names to generate URLs using ``elgg_generate_url()``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:766
msgid "See :doc:`routing </guides/routing>` docs for details."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:768
msgid "As a result of this change all core page handlers have been removed, and any logic contained within these page handlers has been moved to respective resource views."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:771
msgid "``elgg_generate_entity_url()`` has been added as shortcut way to generate URLs from named routes that depend on entity type and subtype."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:774
msgid "Use of ``handler`` parameter in entity menus has been deprecated in favour of named entity routes."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:776
msgid "Gatekeeper function have been refactored to serve as middleware in the routing process, and as such they no longer return values. These functions throw HTTP exceptions that are then routed to error pages and can be redirected to other pages via hooks."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:781
msgid "Labelling"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:783
msgid "Entity and collection labelling conventions have changed to comply with the new routing patterns:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:798
msgid "These conventions are used across the routing and navigation systems, so plugins are advised to follow them."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:801
msgid "Request value filtering"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:803
msgid "``set_input()`` and ``get_input()`` no longer trim values."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:806
msgid "Action responses"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:808
msgid "All core and core plugin actions now all use the new Http Response functions like `elgg_ok_response` and `elgg_error_response` instead of `forward()`. The effect of this change is that is most cases the `'forward', 'system'` hook is no longer triggered. If you like to influence the responses you now can use the `'response', 'action:<name/of/action>'` hook. This gives you more control over the response and allows to target a specific action very easily."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:814
msgid "HtmLawed is no longer a plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:816
msgid "Do not call ``elgg_load_library('htmlawed')``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:817
msgid "In the hook params for ``'config', 'htmlawed'``, the ``hook_tag`` function name changed."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:820
msgid "New approach to page layouts"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:822
msgid "``one_column``, ``one_sidebar``, ``two_sidebar`` and ``content`` layouts have been removed - instead layout rendering has been centralized in the ``default``. Updated ``default`` layout provides full control over the layout elements via ``$vars``. For maximum backwards compatibility, calls to ``elgg_view_layout()`` with these layout names will still yield expected output, but the plugins should start using the ``default`` layout with an updated set of parameters."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:825
msgid "Page layouts have been decomposed into smaller elements, which should make it easier for themes to target specific layout elements without having to override layouts at large."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:827
msgid "As a result of these changes:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:829
msgid "all layouts are consistent in how they handle title and filter menus, breadcrumbs and layout subviews"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:830
msgid "all layouts can now be easily extended to have multiple tabs. Plugins can pass ``filter_id`` parameter that will allow other plugins to hook into ``register, menu:filter:<filter_id>`` hook and add new tabs. If no ``filter_id`` is provided, default ``register, menu:filter`` hook can be used."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:831
msgid "layout views and subviews now receive ``identifier`` and ``segments`` of the page being rendered"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:832
msgid "layout parameters are available to title and filter menu hooks, which allows resources to provide additional context information, for example, an ``$entity`` in case of a profile resource"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:834
msgid "Plugins and themes should:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:836
msgid "Update calls to ``elgg_view_layout()`` to use ``default`` layout"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:837
msgid "Update replace ``nav`` parameter in layout views with ``breadcrumbs`` parameter"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:838
msgid "Update their use of ``filter`` parameter in layout views by either providing a default set of filter tabs, or setting a ``filter_id`` parameter and using hooks"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:839
msgid "Remove ``page/layouts/one_column`` view"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:840
msgid "Remove ``page/layouts/one_sidebar`` view"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:841
msgid "Remove ``page/layouts/two_sidebar`` view"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:842
msgid "Remove ``page/layouts/content`` view"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:843
msgid "Update their use of ``page/layouts/default``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:844
msgid "Update their use of ``page/layouts/error``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:845
msgid "Update their use of ``page/layouts/elements/filter``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:846
msgid "Update their use of ``page/layouts/elements/header``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:847
msgid "Update their use of ``page/layouts/elements/footer``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:848
msgid "Update their use of ``page/elements/title``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:849
msgid "Update their use of ``navigation/breadcrumbs`` to pass ``$vars['breadcrumbs']`` to ``elgg_get_breadcrumbs()``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:850
msgid "Update hook registrations for ``output:before, layout`` to ``view_vars, page/layout/<layout_name>``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:851
msgid "Update hook registrations for ``output:after, layout`` to ``view, page/layout/<layout_name>``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:854
msgid "Likes plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:856
msgid "Likes no longer uses Elgg's toggle API, so only a single ``likes`` menu item is used. The add/remove actions no longer return Ajax values directly, as likes status data is now returned with *every* Ajax request that sends a \"guid\". When the number of likes is zero, the ``likes_count`` menu item is now hidden by adding `.hidden` to the LI element, instead of the anchor. Also the ``likes_count`` menu item is a regular link, and is no longer created by the ``likes/count`` view."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:859
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:161
msgid "Notifications plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:861
msgid "Notifications plugin has been rewritten dropping many views and actions. The purpose of this rewrite was to implement a more efficient, extendable and scalable interface for managing notifications preferences. We have implemented a much simpler markup and removed excessive styling and javascript that was required to make the old interface work."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:866
msgid "If your plugin is extending any of the views or relies on any actions in the notifications plugin, it has to be updated."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:870
msgid "Pages plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:872
msgid "The suptype ``page_top`` has been migrated into the subtype ``page``. The subtype ``page`` has it's own class namely ``ElggPage``. In order to check if an ``ElggPage`` is a top page the class function ``ElggPage->isTopPage()`` was added."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:875
msgid "All pages have a metadata value for ``parent_guid``, for top pages this contains ``0``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:878
msgid "Profile plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:880
msgid "All profile related functionality has been moved out of core into this plugin. Most noteable are the profile field admin utility and the hook to set up the profile fields config data."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:883
msgid "Data Views plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:885
msgid "The Data Views plugin no longer comes bundled."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:888
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1152
msgid "Twitter API plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:890
msgid "The ``twitter_api`` plugin has been removed from the Elgg core. The plugin is still available as the Composer package `elgg/twitter_api <https://packagist.org/packages/elgg/twitter_api>`_, in order to install it add the following to you ``composer.json`` ``require`` section:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:903
msgid "Legacy URLs plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:905
msgid "The ``legacy_urls`` plugin has been removed from the Elgg core. The plugin is still available as the Composer package `elgg/legacy_urls <https://packagist.org/packages/elgg/legacy_urls>`_, in order to install it add the following to you ``composer.json`` ``require`` section:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:918
msgid "User validation by email plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:920
msgid "The listing view of unvalidated users has been moved from the plugin to Elgg core. Some generic action (eg. validate and delete) have also been moved to Elgg core."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:924
msgid "Email delivery"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:926
msgid "To provide for more granularity in email handling and delivery, **email, system** hook has been removed. New email service provides for several other replacement hooks that allow plugins to control email content, format, and transport used for delivery."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:930
msgid "``elgg_set_email_transport()`` can now be used to replace the default Sendmail transport with another instance of ``\\Zend\\Mail\\Transport\\TransportInterface``, e.g. SMTP, in-memory, or file transport. Note that this function must be called early in the boot process. Note that if you call this function on each request, using plugin settings to determine transport config may not be very efficient - store these settings in as datalist or site config values, so they are loaded from boot cache."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:937
msgid "Theme and styling changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:939
msgid "Aalborg theme is no longer bundled with Elgg. Default core theme is now based on Aalboard, but it has undergone major changes."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:942
msgid "Notable changes in plugins:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:944
msgid "Topbar, navbar and header have been combined into a single responsive topbar component"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:945
msgid "Default inner width is now 1280px (80rem * 16px/1rem)"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:946
msgid "Preferred unit of measurement is now `rem` and not `px`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:947
msgid "The theme uses `8-point grid system <https://builttoadapt.io/intro-to-the-8-point-grid-system-d2573cde8632>`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:948
msgid "Menus, layout elements and other components now use flexbox"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:949
msgid "Reset is done using `8-point grid system <https://necolas.github.io/normalize.css/>`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:950
msgid "Media queries have been rewritten for mobile-first experience"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:951
msgid "Form elements (text inputs, buttons and selects) now have an equal height of 2.5rem"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:952
msgid "Layout header is now positioned outside of the layout columns, which have been wrapped into ``elgg-layout-columns``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:953
msgid "z-index properties have been reviewed and stacked with simple iteration instead of `9999999 <https://hackernoon.com/my-approach-to-using-z-index-eca67feb079c>`."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:954
msgid "Color scheme has been changed to highlight actionable elements and reduce abundance of gray shades"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:955
msgid "search plugin no longer extends ``page/elements/header`` and instead ``page/elements/topbar`` renders ``search/search_box`` view"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:956
msgid "``.elgg-icon`` no longer has a global ``font-size``, ``line-height`` or ``color``: these values will be inherited from parent items"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:957
msgid "Support for ``.elgg-icon-hover`` has been dropped"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:958
msgid "User \"hover\" icons are no longer covered with a \"caret\" icon"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:960
msgid "Read more about :doc:`Theming Principles </guides/themes>`"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:962
msgid "Also note, CSS views served via ``/cache`` URLs are pre-processed using `CSS Crush <http://the-echoplex.net/csscrush/>`. If you make references to CSS variables or other elements, the definition must be located within the same view output. E.g. A variable defined in ``elgg.css`` cannot be referenced in a separate CSS file like ``colorbox.css``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:965
msgid "Comments"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:967
msgid "Submitting comments is now AJAXed. After a succesful submission the comment list will be updated automatically."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:969
msgid "The following changes have been made to the comment notifications."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:971
#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1139
msgid "The language keys related to comment notifications have changed. Check the ``generic_comment:notification:owner:`` language keys"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:972
msgid "The action for creating a comment (``action/comment/save``) was changed. If your plugin overruled this action you should have a look at it in order to prevent double notifications"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:975
msgid "Object listing views"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:977
msgid "``object/elements/full/body`` now wraps the full listing body in a ``.elgg-listing-full-body`` wrapper"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:978
msgid "``object/elements/full`` now supports ``attachments`` and ``responses`` which are rendered after listing body"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:979
msgid "In core plugins, resource views no longer render comments/replies - instead they pass a ``show_responses`` flag to the entity view, which renders the responses and passes them to the full listing view. Third party plugins will need to update their uses of ``object/<subtype>`` and ``resources/<handler>/view`` views."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:980
msgid "Full discussion view is now rendered using ``object/elements/full`` view"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:981
msgid "``object/file`` now passes image (specialcontent) view as an ``attachment`` to the full listing view"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:984
msgid "Menu changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:986
msgid "Default sorting of menu items has been changed from ``text`` to ``priority``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:988
msgid "Note that ``register`` and ``prepare`` hooks now use collections API. For the most part, all hooks should continue working, as long as they are not performing complex operations with arrays."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:990
msgid "Support for ``icon`` and ``badge`` parameters was added. Plugins should start using these parameters and prefer them to a single ``text`` parameter. CSS should be used to control visibility of the label, icon and badge, instead of conditionals in preparing menu items."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:992
msgid "All menus are now wrapped with ``nav.elgg-menu-container`` to ensure that multiple menu sections have a single parent element, and can be styled using flexbox or floats."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:994
msgid "All menu items are now identified with with ``data-menu-item`` attribute, sections - with ``data-menu-section``, containers with - ``data-menu-name`` attributes."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:996
msgid "``topbar`` menu:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:998
msgid "``account`` menu item with priority ``800`` added to ``alt`` section"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:999
msgid "``site_notifications`` menu item is now a child of ``account`` with priority ``100``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1000
msgid "``usersettings`` menu item is now a child of ``account`` with priority ``300``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1001
msgid "``administration`` menu item is now a child of ``account`` with priority ``800``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1002
msgid "``logout`` menu item is now a child of ``account`` with priority ``900``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1003
msgid "``dashboard`` menu item now is now a child of ``acount`` has priority of ``100``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1004
msgid "In ``default`` section (``profile``, ``friends``, ``messages``), core menu items now use ``icon`` parameter and use CSS to hide the label. Plugins that register items to this section and expect a visible label need to update their CSS."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1005
msgid "``profile`` menu item is now a child of ``account``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1006
msgid "``friends`` menu item is now a child of ``account``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1008
msgid "``entity`` menu:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1010
msgid "``access`` menu item has been removed. Access information is now rendered in the entity byline."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1012
msgid "``user_hover`` menu:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1014
msgid "All items use the ``icon`` parameter."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1015
msgid "The layout of the dropdown has been changed. If you have modified the look and feel of this dropdown, you might need to update your HTML/CSS."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1017
msgid "``widget`` menu:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1019
msgid "``collapse`` menu item has been removed and CSS updated accordingly"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1021
msgid "``title`` menu:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1023
msgid "The ``profile`` plugin no longer uses the actions section of the ``user_hover`` menu, but registers regulare ``title`` menu items."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1025
msgid "``extras`` menu:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1027
msgid "This menu has been removed from the page layout. Menu items that registered for this menu have been moved to other menus."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1029
msgid "``groups:my_status`` menu:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1031
msgid "This menu has been removed from the group profile page."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1033
msgid "``site_notifications`` menu:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1035
msgid "This menu has been removed. Site Notification objects now use the entity menu for actions."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1037
msgid "``site`` menu:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1039
msgid "Registration of custom menu item defined in admin interface has been moved to ``register, menu:site`` hook. ``navigation/menu/site`` view has been removed. Site menu now adds a ``more` menu item directly to the ``default`` section."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1043
msgid "Entity icons"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1045
msgid "Default icon image files have been moved and re-mapped as follows:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1047
msgid "Default icons: ``views/default/icon/default/$size.png``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1048
msgid "User icons: ``views/default/icon/user/default/$size.gif``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1049
msgid "Group icons: ``views/default/icon/group/default/$size.gif`` in the groups plugin"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1051
msgid "Groups icon files have been moved from ``groups/<guid><size>.jpg`` relative to group owner's directory on filestore to a location prescribed by the entity icon service. Plugins should stop accessing files on the filestore directly and use the entity icon API. Upgrade script is available via admin interface."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1053
msgid "The generation of entity icons has ben changed. No longer will all the configured sizes be generated when calling one of the entity icon functions (``ElggEntity::saveIconFromUploadedFile``, ``ElggEntity::saveIconFromLocalFile`` or ``ElggEntity::saveIconFromElggFile``), but only the `master` size. The other configured sizes will be generated when requesting that size based of the `master` icon."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1058
msgid "Icon glyphs"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1060
msgid "FontAwesome has been upgraded to version 5.0+. There were certain changes to how FontAwesome glyphs are rendered. The core will take care of most changes (e.g. mapping old icon names to new ones, and using the correct prefix for brand and solid icons)."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1063
msgid "Autocomplete (user and friends pickers)"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1065
msgid "Friends Picker input is now rendered using ``input/userpicker``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1067
msgid "Plugins should:"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1069
msgid "Update overriden ``input/userpicker`` to support new ``only_friends`` parameter"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1070
msgid "Remove friends picker CSS from their stylesheets"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1073
msgid "Friends collections"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1075
msgid "Friends collections UI has been moved to its own plugins - ``friends_collections``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1078
msgid "Layout of ``.elgg-body`` elements"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1080
msgid "In 3.0, these elements by default no longer stretch to fill available space in a block context. They still clear floats and allow breaking words to wrap text."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1083
msgid "Core modules and layouts that relied on space-filling have been reworked for Flexbox and we encourage devs to do the same, rather than use the problematic ``overflow: hidden``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1087
msgid "Delete river items"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1089
msgid "The function ``elgg_delete_river()`` which was deprecated in 2.3, has been reinstated. Notable changes between the internals of this function are;"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1091
msgid "It accepts all ``$options`` from ``elgg_get_river()`` but requires at least one of the following params to be set id(s), annotation_id(s), subject_guid(s), object_guid(s), target_guid(s) or view(s)"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1092
msgid "Since ``elgg_get_river`` by default has a limit on the number of river items it fetches, if you wish to remove all river items you need to set ``limit`` to ``false``"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1093
msgid "Access is ignored when deleting river items"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1094
msgid "Events are fired just before and after a river item has been deleted"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1099
msgid "Discussion replies moved to comments"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1101
msgid "Since discussion replies where mostly a carbon copy of comments, all discussion replies have been migrated to comments. All related action, hooks, event, language keys etc. have been removed."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1106
msgid "Discussion comments will now show up in the Comments section of Search, no longer under the Discussion section."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1109
msgid "Translations cleanup"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1111
msgid "All plugins have been scanned for unused translation keys. The unused keys have been removed. If there was a generic translation available for the custom translation key, these have also been updated."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1115
msgid "System Log"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1117
msgid "System log API has been moved out of core into a ``system_log`` plugin. ``logbrowser`` and ``logrotate`` plugins have been merged into the ``system_log`` plugin."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1121
msgid "Error logging"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1123
msgid "Sending ``elgg_log()`` and PHP error messages to page output is now only possible via the developers plugin \"Log to the screen\" setting. See the ``settings.example.php`` file for more information on using ``$CONFIG->debug`` in your ``settings.php`` file. Debugging should generally be done via the ``xdebug`` extension or ``tail -f /path/to/error.log`` on your server."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1126
msgid "Composer asset plugin no longer required"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1128
msgid "Assets are now loaded from https://asset-packagist.org. FXP composer asset plugin is no longer required when installing Elgg or updating composer dependencies."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1131
msgid "Cron logs"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1133
msgid "The cron logs are no longer stored in the database, but on the filesystem (in dataroot). This will allow longer output to be stored. A migration script was added to migrate the old database settings to the new location and remove the old values from the database."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1137
msgid "Removed / changed language keys"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1142
msgid "New MySQL schema features are not applied"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1144
msgid "New 3.0 installations require MySQL 5.5.3 (or higher) and use the utf8mb4 character set and LONGTEXT content columns (notably allowing storing longer content and extended characters like emoji)."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1147
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:445
msgid "Miscellaneous changes"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1149
msgid "The settings \"Allow visitors to register\" and \"Restrict pages to logged-in users\" now appear on the Basic Settings admin page."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1154
msgid "The ``twitter_api`` plugin no longer comes bundled with Elgg."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1157
msgid "Unit and Integration Testing"
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1159
msgid "Elgg's PHPUnit bootstrap can now handle both unit and integration tests. Please note that **you shouldn't run tests on a production site**, as it may damage data integrity. To prevent data loss, you need to specify database settings via environment variables. You can do so via the phpunit.xml bootstrap."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1163
msgid "Plugins can now implement their own PHPUnit tests by extending ``\\Elgg\\UnitTestCase`` and ``\\Elgg\\IntegrationTestCase`` classes. ``plugins`` test suite will automatically autoload PHPUnit tests from ``mod/<plugin_id>/tests/phpunit/unit`` and ``mod/<plugin_id>/tests/phpunit/integration``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1167
msgid "Prior to running integration tests, you need to enable the plugins that you wish to test alongside core API."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1169
msgid "``\\Elgg\\IntegrationTestCase`` uses ``\\Elgg\\Seeding`` trait, which can be used to conveniently build new entities and write them to the database."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1172
msgid "``\\Elgg\\UnitTestCase`` does not use the database, but provides a database mocking interface, which allows tests to define query specs with predefined returns."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1175
msgid "By default, both unit and integration tests will be run whenever ``phpunit`` is called. You can use ``--testsuite`` flag to only run a specific suite: ``phpunit --testsuite unit`` or ``phpunit --testsuite integration`` or ``phpunit --testsuite plugins``."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1177
msgid "For integration testing to run properly, plugins are advised to not put any logic into the root of ``start.php``, and instead return a Closure. This allows the testsuite to build a new Application instance without loosing plugin initialization logic."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1180
msgid "Plugins with simpletests will continue working as perviously. However, method signatures in the ``ElggCoreUnitTest`` abstract class have changed and you will need to update your tests accordingly. Namely, it's discouraged to use ``__construct`` and ``__desctruct`` methods. ``setUp`` and ``tearDown`` have been marked as private and are used for consistent test boostrapping and asserting pre and post conditions, your test case should use ``up`` and ``down`` methods instead."
msgstr ""

#: ../../appendix/upgrade-notes/2.x-to-3.0.rst:1185
msgid "Simpletests can no longer be executed from the admin interface of the developers plugin. Use Elgg cli command: ``elgg-cli simpletest``"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:2
msgid "From 3.0 to 3.1"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:11
msgid "PHP 7.0 has reached end of life in January 2019. To ensure that Elgg sites are secure, we now require PHP 7.1 for new installations."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:13
#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:14
msgid "If upgrading from a previous Elgg installation make sure you have the correct PHP version installed."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:17
msgid "Plugin screenshots"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:19
msgid "Screenshots added to plugins are no longer supported and will no longer be shown in the plugin details."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:22
msgid "Loading external files"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:24
msgid "The usage of ``elgg_register_js``, ``elgg_unregister_js`` and ``elgg_load_js`` is discouraged. Make sure your javascript is an AMD module and use ``elgg_require_js`` to include it."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:27
msgid "The usage of ``elgg_register_css``, ``elgg_unregister_css`` and ``elgg_load_css`` is discouraged. You can register and include css with the new ``elgg_require_css`` function."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:31
msgid "Setting page owner"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:33
msgid "Setting the page owner via the ``elgg_get_page_owner_guid`` function parameter is deprecated. Use ``elgg_set_page_owner_guid``."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:36
msgid "Simpletests"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:38
msgid "The core simpletests have been removed from the system. They are all replaced by PHP unit tests or integration tests. The simpletest cli command has been deprecated."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:42
msgid "Hook and event callbacks"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:44
msgid "The legacy style hook and event callback arguments are deprecated. You should switch to the new style as soon as possible."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:76
msgid "Deprecated Routes"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:78
msgid "``previous:object:thewire`` This route was not in use. It now has been marked as deprecated."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:81
msgid "Deprecated CSS libraries"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:83
msgid "``jquery.imgareaselect`` Do not use this external css file."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:84
msgid "``jquery.treeview`` Do not use this external css file."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:87
msgid "Deprecated JS libraries"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:89
msgid "``elgg.avatar_cropper`` Do not depend on this external javascript library."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:90
msgid "``jquery.imgareaselect`` Do not depend on this external javascript library."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:91
msgid "``jquery.treeview`` Do not depend on this external javascript library."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:96
msgid "``access_show_hidden_entities()`` Use ``elgg_call()`` with ``ELGG_SHOW_DISABLED_ENTITIES`` flag."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:97
msgid "``autoregister_views()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:98
msgid "``count_messages()`` Use ``elgg()->system_messages->count()``."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:99
msgid "``disable_user_entities()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:100
msgid "``elgg_enable_entity()`` Use ``ElggEntity::enable()``."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:101
msgid "``elgg_get_file_list()`` Use a PHP directory iterator."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:102
msgid "``elgg_instanceof()`` Use PHP instanceof type operator."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:103
msgid "``elgg_is_admin_user()`` Use ``ElggUser::isAdmin()``."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:104
msgid "``elgg_set_ignore_access()`` Use ``elgg_call()`` with ``ELGG_IGNORE_ACCESS`` flag."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:105
msgid "``elgg_sort_3d_array_by_value()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:106
msgid "``get_access_list()`` Use ``get_access_array()``."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:107
msgid "``get_language()`` Use ``get_current_language()``."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:108
msgid "``get_number_users()`` Use ``elgg_count_entities()``."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:109
msgid "``pages_register_navigation_tree()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:110
msgid "``ini_get_bool()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:111
msgid "``is_not_null()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:112
msgid "``update_access_collection()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:115
msgid "Deprecated actions"
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:117
msgid "``admin/delete_admin_notice`` Replaced by generic entity/delete action."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:118
msgid "``avatar/crop`` Handled in avatar/upload action."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:119
msgid "``avatar/remove`` Handled in avatar/upload action."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:120
msgid "``blog/delete`` Replaced by generic entity/delete action."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:121
msgid "``messages/delete`` Replaced by generic entity/delete action."
msgstr ""

#: ../../appendix/upgrade-notes/3.0-to-3.1.rst:122
msgid "``site_notifications/delete`` Replaced by generic entity/delete action."
msgstr ""

#: ../../appendix/upgrade-notes/3.1-to-3.2.rst:2
msgid "From 3.1 to 3.2"
msgstr ""

#: ../../appendix/upgrade-notes/3.1-to-3.2.rst:9
msgid "User write access"
msgstr ""

#: ../../appendix/upgrade-notes/3.1-to-3.2.rst:11
msgid "To fix an issue where user owned access collections like `Friends` or `Friend Collections` would still show in the access drop down when creating content, even if related plugins are disabled, we needed to change some internal logic. If you want to have an access collection subtype available in the write access you now need to register the subtype with a plugin hook. See :ref:`the plugin hook reference for 'access:collections:write:subtypes' <guides/hooks-list#access-hooks>` for more details."
msgstr ""

#: ../../appendix/upgrade-notes/3.1-to-3.2.rst:18
msgid "River items enabled state"
msgstr ""

#: ../../appendix/upgrade-notes/3.1-to-3.2.rst:20
msgid "The `enabled` state of river items has been deprecated. You should no longer use this property when working with river items."
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:2
msgid "From 3.2 to 3.3"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:12
msgid "PHP 7.1 has reached `end of life`_ in December 2019. To ensure that Elgg sites are secure, we now require PHP 7.2 for new installations."
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:16
msgid "In order to be able to test Elgg on PHP 7.4 we had to update the PHPUnit testsuite to version 8.5. This may require some rewrites of your own unit/integration tests."
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:22
msgid "Simpler use of 'default' layout"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:24
msgid "Currently a common pattern is to do the following:"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:42
msgid "We made this kind of pattern simpler. You can now pass an array of layout options to the second parameter of `elgg_view_page`. The `elgg_view_page` function will use this array to wrap it in the 'default' layout. It also adds the page title to the layout."
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:45
msgid "The new way to do it is:"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:57
msgid "Deprecated layout names"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:59
msgid "For an easy transition from Elgg 2.x to 3.x we kept some old layout names ('one_sidebar', 'one_column', 'two_sidebar' and 'content') intact when used in the `elgg_view_layout` function. As of Elgg 3.3 these layout names are deprecated and you should update your code to use the new 'default' layout."
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:62
msgid "When changing the use of the 'content' layout name you should take into consideration that the the 'content' generates a filter menu. This menu is slightly different from the regular 'filter' menu generated in the 'default' layout. It uses different hook names. If you already disabled the filter in your layout you can change the layout without any issues."
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:67
msgid "Plugin Manifest changes"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:69
msgid "We are working towards the removal of the plugin manifest file. Some features of the manifest will be replaced and some will be dropped. To make this transition a bit easier we have already deprecated the following ``ElggPluginManifest`` api functions:"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:72
msgid "``getCopyright()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:73
msgid "``getDonationsPageURL()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:74
msgid "``getSuggests()`` use suggestions in composer"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:79
msgid "``elgg_disable_query_cache()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:80
msgid "``elgg_enable_query_cache()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:81
msgid "``elgg_format_attributes()`` use ``elgg_format_element()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:82
msgid "``elgg_flush_caches()`` use ``elgg_clear_caches()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:83
msgid "``elgg_get_menu_item()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:84
msgid "``elgg_get_ordered_event_handlers()`` use ``elgg()->events->getOrderedHandlers()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:85
msgid "``elgg_get_ordered_hook_handlers()`` use ``elgg()->hooks->getOrderedHandlers()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:86
msgid "``elgg_invalidate_simplecache()`` use ``elgg_clear_caches()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:87
msgid "``elgg_is_menu_item_registered()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:88
msgid "``elgg_view_entity_annotations()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:89
msgid "``execute_delayed_write_query()`` use ``elgg()->db->registerDelayedQuery()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:90
msgid "``execute_delayed_read_query()`` use ``elgg()->db->registerDelayedQuery()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:91
msgid "``run_sql_script()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:92
msgid "``elgg_unset_all_plugin_settings()`` use ``\\ElggPlugin::unsetAllSettings()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:93
msgid "``elgg_get_file_simple_type()`` use ``elgg()->mimetype->getSimpleType()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:94
msgid "``ElggFile::detectMimeType()`` use ``elgg()->mimetype->getMimeType()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:95
msgid "``generate_action_token()`` use ``elgg()->csrf->generateActionToken()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:96
msgid "``elgg_split()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:99
msgid "Deprecated Config values"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:101
msgid "``simplecache_lastupdate`` use ``lastcache``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:104
msgid "Deprecated CLI commands"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:106
msgid "``elgg-cli flush`` use ``elgg-cli cache:clear``"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:109
msgid "Deprecated Hooks"
msgstr ""

#: ../../appendix/upgrade-notes/3.2-to-3.3.rst:111
msgid "**entity:annotate, <entity_type>**"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:2
msgid "From 3.x to 4.0"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:9
msgid "Composer"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:12
msgid "PHP Requirements"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:14
msgid "To be compatible with PHP 8 we needed to increase the minimal PHP version to 7.4. PHP versions < 7.4 are already end-of-life."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:17
msgid "Composer project"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:19
msgid "The root of the composer project is no longer handled as a semi functional plugin. Languages from the ``languages`` directory are nog longer imported, the views from the ``views`` directory are no longer registered, the PHP DI services from the ``elgg-services.php`` are no longer registered and the ``start.php`` file is no longer included."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:23
msgid "If you needed specific modification to your Elgg installation you need to make a :doc:`plugin</guides/plugins>` and ensure that the plugin is the latest in the plugin order to allow you to overrule everything you needed to change."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:27
msgid "Doctrine DBAL"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:29
msgid "Elgg replaced v2 with v3 of the ``doctrine/dbal`` dependency. On of the most notable changes is that if you work with QueryBuilders and use the ``$qb->fetch()`` function you will no longer get an object, but an array. If you want your rows to be useable as classes, you can use ``elgg()->db->getData($qb)``. Another important change is that if you provide your own query parameters, you should no longer prefix keys with a colon in the parameters but still do so in the query."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:36
msgid "PHP-DI"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:38
msgid "This feature has been updated to use the latest version of PHP-DI. Most notable breaking change for Elgg is the need to change your plugin service definition to use ``\\DI\\create()`` instead of ``\\DI\\object()``."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:42
msgid "Zend\\Mail replaced by Laminas\\Mail"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:44
msgid "Because of the `deprecation`_ of the ``Zend\\Mail`` library and it's replacement by the ``Laminas\\Mail`` all references have been updated."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:49
msgid "Removed composer dependencies"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:51
msgid "``bower-asset/jquery-treeview`` the related js and css are no longer available in the system"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:52
msgid "``bower-asset/jquery.imgareaselect`` the related js and css are no longer available in the system"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:53
msgid "``npm-asset/formdata-polyfill`` all modern browser have support, no longer a need for a polyfill"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:54
msgid "``npm-asset/jquery-form`` use native FormData functionality"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:55
msgid "``npm-asset/weakmap-polyfill`` all modern browser have support, no longer a need for a polyfill"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:56
msgid "``simpletest/simpletest``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:59
msgid "Javascript"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:62
msgid "AJAX"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:64
msgid "The following Ajax helper functions have been removed in favor of their counterparts in asynchronous module ``elgg/Ajax``. * ``elgg.action()`` * ``elgg.get()`` * ``elgg.getJSON()`` * ``elgg.post()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:70
msgid "The ajax function ``elgg.api`` has been moved to the ``executeMethod`` function in the asynchronous module ``elgg/webservices`` in the webservices plugin. Other ``elgg.ajax`` functions and attributes have been removed from the system. Also the legacy handling of ajax calls have been removed from the system."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:76
msgid "Classes"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:78
msgid "The javascript logic for automatically booting some javascript for your plugin and registering hooks via the ``Elgg/Plugin`` class has been removed from the system. This functionality was never used by core and hardly seen in plugins. Use AMD loaded javascript or extend ``elgg.js`` for always loaded javascript."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:83
msgid "The ``ElggPriorityList`` javascript class has been removed from the system."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:86
msgid "System Hooks"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:88
msgid "The AMD modules for ``elgg/init`` and ``elgg/ready`` have been removed. The ``init, system`` hook is still available but it only makes sense to rely on this hook from non-AMD loaded js libraries. The ``boot, system`` and ``ready, system`` triggers have been removed from the system. Replace with ``init, system`` for the same effect."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:93
msgid "jQuery"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:95
msgid "The jQuery library has been updated to the latest version (v3.5.x). This is a major update from the version used in Elgg 3.x. For information about what is changed between these release you should take a look at the jQuery website."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:99
msgid "jQuery UI"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:101
msgid "The jQuery UI library has been updated to v1.12.x. The library is no longer loaded in full by default. If you need to use features from the library you can require them in your own script. For example to be able to use the sortable functionality do the following:"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:115
msgid "Miscellaneous JS changes"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:117
msgid "The AMD module ``elgg/widgets`` no longer returns an object and no longer requires you to call ``init`` on the module"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:122
msgid "Pre Elgg 1.9 notification handling has been removed. Related functions and hooks no longer exist."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:125
msgid "Subscriptions"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:127
msgid "The relationship in the database which stores the subscription method for notifications has been changed from ``notifymethod`` to ``notify:method``."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:131
msgid "Multiple Recipients"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:133
msgid "An Elgg\\Email now supports multiple recipients in To, Cc and Bcc. The related getter functions like ``getTo()`` will now always return an array."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:136
msgid "Settings"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:138
msgid "A generic storage for notification preferences has been introduced in ``\\ElggUser::setNotificationSetting()`` and ``\\ElggUser::getNotificationSettings()``, the notification settings now have a 'purpose'."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:141
msgid "For example ``group_join`` can be used to manage the default subscription you get with a group when you join the group."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:143
msgid "The Notifications plugin has generic handling of displaying and saving the settings. To display the setting extend the view ``notifications/settings/records`` (plural) with a view which uses ``notifications/settings/record`` (singular)."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:147
msgid "When requesting notification settings other than the default setting, if the user hasn't saved a setting yet it'll fall back to the default notification settings."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:150
msgid "Management of the notification preferences for adding a new users to a friend collection has been removed."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:153
msgid "Notification Salutation & Sign-off"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:155
msgid "To be able to have a more generic salutation and sign-off for outgoing mail notifications we have removed these texts from various translation strings and moved them to generic translations. This will mean you have to update your translations to reflect the new text and also check your code for uses of notifications where you provide your own salutation or sign-off text. You can find out more about this new behaviour in :doc:`/guides/notifications`."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:163
msgid "The Notifications plugin has been removed. All the features of the plugin are now part of Elgg core. Some pages (like the group notification settings) have been moved to the correct plugin."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:166
msgid "This means that event handlers, hook handlers, actions, views and languages keys have been (re)moved or renamed."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:169
msgid "Notification Event Handling"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:171
msgid "The notification hooks no longer receive the ``origin`` parameter."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:174
msgid "Site notification"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:176
msgid "The site notifications plugin now shows the notification subject by default. If a site notification was created with the factory function ``SiteNotification::factory()`` more of the original notification information is stored with the site notification:"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:179
msgid "Notification ``subject`` is stored in ``title``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:180
msgid "Notification ``summary`` is stored in ``summary``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:181
msgid "Notification ``body`` is stored in ``description``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:184
msgid "Split OkResponse, ErrorResponse and RedirectResponse"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:186
msgid "The classes ``Elgg\\Http\\ErrorResponse`` and ``Elgg\\Http\\RedirectResponse`` were extensions of ``Elgg\\Http\\OkReponse`` this complicated validating responses (for example in hooks). The classes have been split apart to allow for easier and clearer checks."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:189
msgid "All classes now extend ``Elgg\\Http\\Response`` and implement ``Elgg\\Http\\ReponseBuilder``. The default HTTP error code when using ``elgg_error_response()`` has been changed to return a 400 status."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:193
msgid "Datamodel"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:198
msgid "The ``access_id``, ``owner_guid`` and  ``enabled`` columns in the ``metadata`` table have been removed"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:199
msgid "The ``enabled`` column in the ``river`` table has been removed"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:200
msgid "The ``relationship`` column in the ``entity_relationships`` table now has a max length of 255 (up from 50)"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:203
msgid "ElggEntity attributes"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:205
msgid "Setting the ``type``, ``subtype`` and ``enabled`` attributes of an ``ElggEntity`` is no longer possible using the magic setter. Changing the ``type`` is no longer possible, use the correct base class for your entity (eg. ``ElggObject``, ``ElggGroup`` or ``ElggUser``)."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:208
msgid "To change the ``subtype`` use the function ``setSubtype($subtype)``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:219
msgid "To change the ``enabled`` state of an entity use the correct functions"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:232
msgid "ElggUser attributes"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:234
msgid "Setting the ``admin`` and ``banned`` metadata of an ``ElggUser`` is no longer possible using the magic setter."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:236
msgid "To change the ``admin`` state use the functions ``makeAdmin()`` and ``removeAdmin()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:248
msgid "To change the ``banned`` state use the functions ``ban()`` and ``unban()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:261
msgid "Plugin development"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:264
msgid "Plugin bootstrapping"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:266
msgid "The following files are no longer included during bootstrapping of a plugin:"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:268
msgid "``activate.php`` use ``PluginBootstrap->activate()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:269
msgid "``deactivate.php`` use ``PluginBootstrap->deactivate()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:270
msgid "``views.php`` use ``elgg-plugin.php``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:271
msgid "``start.php`` use ``elgg-plugin.php`` and/or ``PluginBootstrap``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:274
msgid "Plugin Manifest"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:276
msgid "The plugin manifest file is no longer used. Features of the manifest have been removed or moved to different locations."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:278
msgid "It is no longer possible to require a specific php ini setting."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:280
msgid "php version requirement -> composer require"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:281
msgid "php extension requirement -> composer require"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:282
msgid "plugin conflicts -> composer conflicts"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:283
msgid "plugin requirement -> elgg-plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:284
msgid "plugin position requirement -> elgg-plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:286
msgid "plugin version -> elgg-plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:287
msgid "plugin activate on install -> elgg-plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:288
msgid "plugin name -> elgg-plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:289
msgid "plugin description -> composer.json"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:290
msgid "plugin categories -> composer.json"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:291
msgid "plugin license -> composer.json"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:292
msgid "plugin repo link -> composer.json"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:293
msgid "plugin issues link -> composer.json"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:294
msgid "plugin homepage link -> composer.json"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:295
msgid "plugin authors/contributors -> composer.json"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:298
msgid "Hookable field configurations"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:300
msgid "Some plugins had the option to configure entity fields in config. These features have been replaced by a central service that provides a mechanisme to request a hookable field config for a certain type/subtype."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:303
msgid "You can request these configuration using the following code:"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:309
msgid "The results will be an array with field configurations usable in ``elgg_view_field($field)``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:311
msgid "The following related functionality has been replaced by this new way:"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:313
msgid "The config for ``pages`` is no longer available in ``elgg_get_config('pages')`` use ``elgg()->fields->get('object', 'page')``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:314
msgid "The config for ``group`` is no longer available in ``elgg_get_config('group')`` use ``elgg()->fields->get('group', 'group')``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:315
msgid "The config for ``profile_fields`` is no longer available in ``elgg_get_config('profile_fields')`` use ``elgg()->fields->get('user', 'user')``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:316
msgid "Setting the config for ``pages``, ``group`` and ``user:profile`` via ``elgg_set_config`` is no longer possible. Use a hook callback for ``fields, <entity_type>:<entity_subtype>``."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:317
msgid "The hook ``profile:fields, group`` has been replaced by the new hook ``fields, group:group``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:318
msgid "The hook ``profile:fields, user`` has been replaced by the new hook ``fields, user:user``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:321
msgid "Menus"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:323
msgid "Instead of registering the ``_elgg_setup_vertical_menu`` and ``_elgg_menu_transform_to_dropdown`` for menus, this is replaced by using the menu vars ``prepare_vertical`` and ``prepare_dropdown``. Setting them to ``true`` will give you the same effect. This allows for individual control in views when this is required."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:327
msgid "The automatic marking as 'selected' of parent menu items of the selected menu item will now always happen for every menu."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:330
msgid "Filter tabs"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:332
msgid "The preparation of tabs for the filter menu by using the ``elgg_get_filter_tabs()`` function and the ``'filter_tabs', '<context>'`` hook has been removed. You can now use the ``'register', 'menu:filter:filter'`` hook to add/remove items from the same place."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:336
msgid "The ``all``, ``mine`` and ``friends`` tabs will automaticly generate if routes are available for pages similar to the current route. For example if the current route is ``collection:object:blog:all`` the tabs will be generated for the route ``collection:object:blog:owner`` and ``collection:object:blog:friends``."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:341
msgid "Title menu"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:343
msgid "The ``title`` menu will now be populated with the ``entity`` menu if the ``entity`` is provided to the layout. This is mostly usefull on the detail page of an entity (eg. ``blog/view``). Most of the entries for the ``entity`` menu will be added to a dropdown menu, except the ``edit`` menu item (when available) this item will be presented next to the dropdown menu."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:355
msgid "Registering tag metadatanames"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:357
msgid "Because of various limitations of this implementation it has been removed from the system. The following related API functions have been removed:"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:359
msgid "``elgg_get_registered_tag_metadata_names()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:360
msgid "``elgg_register_tag_metadata_name()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:361
msgid "``elgg_unregister_tag_metadata_name()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:363
msgid "If you need specific fields to be searchable you need to register them with the related ``search:fields`` hooks. The related ``tagnames:xxx`` tag language keys are no longer registered in the system."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:366
msgid "The function ``ElggEntity::getTags()`` will now return only tag metadata with the name ``tags`` by default. If you want to check extra fields containing tags, you need to request this specifically."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:370
msgid "Default widgets"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:372
msgid "The magic handling the creation of default widgets has been reduced. You now need to register the ``Elgg\\Widgets\\CreateDefaultWidgetsHandler`` callback to the event when you want default widgets to be created. The configuration ``default_widget_info`` is no longer present in the system. Use the ``get_list``, ``default_widgets`` hook to get the value."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:376
msgid "You also need to update the data in your ``get_list``, ``default_widgets`` hook handler to return ``event_name`` (previously ``event``) and ``event_type``."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:379
msgid "Container permissions"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:381
msgid "The function parameters for ``ElggEntity::canWriteToContainer()`` now require a ``$type`` and ``$subtype`` to be passed. This is to give more information to the resulting hook in order to be able to determine if a user is allowed write access to the container."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:385
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:649
msgid "Plugins"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:388
msgid "Activity plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:390
msgid "This plugin received a much needed rewrite. The different pages (all/owner/friends) now have their own resource and listing views."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:393
msgid "Diagnostics Plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:395
msgid "This plugin has been removed, but the action to generate a report is still available. You can find it on the ``Information/Server`` admin page."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:398
msgid "Discussions Plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:400
msgid "This plugin no longer adds a tab to the filter menu on the groups pages"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:401
msgid "The ``discussions`` site menu item is now always present"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:404
msgid "Search Plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:406
msgid "The output of search results no longer uses the helper class ``Elgg\\Search\\Formatter`` for the preparation of the result contents. This logic has been moved entirely into views."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:409
msgid "The related functions ``prepareEntity`` and ``getSearchView`` in the ``Elgg\\Search\\Service`` class have been removed."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:411
msgid "The hook ``search:format, entity`` has been removed."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:414
msgid "Web services Plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:416
msgid "The Web Services plugin received a complete rewrite, this is mostly related to the internals of the plugin."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:419
msgid "Removed classes"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:421
msgid "``ElggHMACCache`` has been replaced by ``_elgg_services()->hmacCacheTable`` (for internal use only)"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:422
msgid "``Elgg\\Notifications\\Event`` has been replaced by ``Elgg\\Notifications\\SubscriptionNotificationEvent``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:425
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:911
msgid "Removed functions"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:427
msgid "``create_api_user()`` has been replaced by ``_elgg_services()->apiUsersTable->createApiUser()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:428
msgid "``create_user_token()`` has been replaced by ``_elgg_services()->usersApiSessions->createToken()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:429
msgid "``get_api_user()`` has been replaced by ``_elgg_services()->apiUsersTable->getApiUser()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:430
msgid "``get_standard_api_key_array()`` use ``\\Elgg\\WebServices\\ElggApiClient::setApiKeys()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:431
msgid "``get_user_tokens()`` has been replaced by ``_elgg_services()->usersApiSessions->getUserTokens()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:432
msgid "``pam_auth_session()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:433
msgid "``remove_api_user()`` has been replaced by ``_elgg_services()->apiUsersTable->removeApiUser()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:434
msgid "``remove_expired_user_tokens()`` has been replaced by ``_elgg_services()->usersApiSessions->removeExpiresTokens()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:435
msgid "``remove_user_token()`` has been replaced by ``_elgg_services()->usersApiSessions->removeToken()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:436
msgid "``send_api_call()`` use ``\\Elgg\\WebServices\\ElggApiClient``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:437
msgid "``send_api_get_call()`` use ``\\Elgg\\WebServices\\ElggApiClient``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:438
msgid "``send_api_post_call()`` use ``\\Elgg\\WebServices\\ElggApiClient``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:439
msgid "``service_handler()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:440
msgid "``validate_user_token()`` has been replaced by ``_elgg_services()->usersApiSessions->validateToken()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:441
msgid "``ws_page_handler()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:442
msgid "``ws_rest_handler()`` has been replaced by ``\\Elgg\\WebServices\\RestServiceController``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:447
msgid "The config value for ``servicehandler`` has been removed"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:448
msgid "In certain edge cases the default value of an API parameter will not be applied"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:451
msgid "Type hinted functions"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:453
msgid "The following functions now have their arguments type-hinted, this can cause ``TypeError`` errors. Also some class functions have their return value type hinted and you should update your function definition."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:457
msgid "Class function parameters"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:459
msgid "``ElggEntity::setLatLong()`` now requires a ``float`` for ``$lat`` and ``$long``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:460
msgid "``ElggUser::setNotificationSetting()`` now requires a ``string`` for ``$method`` and a ``bool`` for ``$enabled``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:461
msgid "``Elgg\\Database\\Seeds\\Seed::__construct()`` now requires an ``int`` for ``$limit``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:462
msgid "``Elgg\\Http\\ErrorResponse::__construct()`` now requires an ``int`` for ``$status_code``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:463
msgid "``Elgg\\Http\\OkResponse::__construct()`` now requires an ``int`` for ``$status_code``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:464
msgid "``Elgg\\Http\\RedirectResponse::__construct()`` now requires an ``int`` for ``$status_code``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:465
msgid "``Elgg\\I18n\\Translator::getInstalledTranslations()`` now requires a ``bool`` for ``$calculate_completeness``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:466
msgid "``SiteNotification::setActor()`` now requires an ``ElggEntity`` for ``$entity``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:467
msgid "``SiteNotification::setURL()`` now requires a ``string`` for ``$url``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:468
msgid "``SiteNotification::setRead()`` now requires a ``bool`` for ``$read``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:471
msgid "Class function return type"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:473
msgid "``Elgg\\Upgrade\\Batch::getVersion()`` now requires an ``int`` return value"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:474
msgid "``Elgg\\Upgrade\\Batch::shouldBeSkipped()`` now requires an ``bool`` return value"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:475
msgid "``Elgg\\Upgrade\\Batch::needsIncrementOffset()`` now requires an ``bool`` return value"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:476
msgid "``Elgg\\Upgrade\\Batch::countItems()`` now requires an ``int`` return value"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:477
msgid "``Elgg\\Upgrade\\Batch::run()`` now requires an ``Elgg\\Upgrade\\Result`` return value"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:480
msgid "Lib function parameters"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:482
msgid "``add_user_to_access_collection()`` now requires an ``int`` for ``$user_guid`` and ``$collection_id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:483
msgid "``can_edit_access_collection()`` now requires an ``int`` for ``$collection_id`` and ``$user_guid``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:484
msgid "``create_access_collection()`` now requires an ``string`` for ``$name`` and ``int`` for ``$owner_guid``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:485
msgid "``delete_access_collection()`` now requires an ``int`` for ``$collection_id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:486
msgid "``elgg_action_exists()`` now requires a ``string`` for ``$action``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:487
msgid "``elgg_add_admin_notice()`` now requires a ``string`` for ``$id`` and ``$message``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:488
msgid "``elgg_admin_notice_exists()`` now requires a ``string`` for ``$id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:489
msgid "``elgg_annotation_exists()`` now requires a ``int`` for ``$entity_guid``, a ``string`` for ``$name`` and ``int`` for ``$owner_guid``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:490
msgid "``elgg_delete_admin_notice()`` now requires a ``string`` for ``$id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:491
msgid "``elgg_delete_annotation_by_id()`` now requires a ``int`` for ``$id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:492
msgid "``elgg_deprecated_notice()`` now requires a ``string`` for ``$msg`` and ``$dep_version``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:493
msgid "``elgg_error_response()`` now requires an ``int`` for ``$status_code``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:494
msgid "``elgg_get_access_collections()`` now requires an ``array`` for ``$options``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:495
msgid "``elgg_get_annotation_from_id()`` now requires an ``int`` for ``$id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:496
msgid "``elgg_get_subscriptions_for_container()`` now requires an ``int`` for ``$container_guid``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:497
msgid "``elgg_get_plugin_from_id()`` now requires a ``string`` for ``$plugin_id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:498
msgid "``elgg_get_plugin_setting()`` now requires a ``string`` for ``$name`` and ``$plugin_id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:499
msgid "``elgg_get_plugin_user_setting()`` now requires a ``string`` for ``$name`` and ``$plugin_id`` and ``int`` for ``$user_guid``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:500
msgid "``elgg_get_plugins()`` now requires a ``string`` for ``$status``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:501
msgid "``elgg_get_river_item_from_id()`` now requires a ``int`` for ``$id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:502
msgid "``elgg_list_annotations()`` now requires an ``array`` for ``$options``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:503
msgid "``elgg_ok_response()`` now requires an ``int`` for ``$status_code``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:504
msgid "``elgg_plugin_exists()`` now requires a ``string`` for ``$plugin_id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:505
msgid "``elgg_redirect_response()`` now requires an ``int`` for ``$status_code``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:506
msgid "``elgg_register_action()`` now requires a ``string`` for ``$action`` and ``$access``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:507
msgid "``elgg_send_email()`` now requires an ``\\Elgg\\Email`` for ``$email``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:508
msgid "``elgg_set_plugin_user_setting()`` now requires a ``string`` for ``$name`` and ``$plugin_id`` and ``int`` for ``$user_guid``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:509
msgid "``elgg_unregister_action()`` now requires a ``string`` for ``$action``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:510
msgid "``get_access_array()`` now requires an ``int`` for ``$user_guid``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:511
msgid "``get_access_collection()`` now requires an ``int`` for ``$collection_id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:512
msgid "``get_entity_statistics()`` now requires an ``int`` for ``$owner_guid``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:513
msgid "``get_members_of_access_collection()`` now requires an ``int`` for ``$collection_id`` and ``bool`` for ``$guids_only``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:514
msgid "``get_readable_access_level()`` now requires an ``int`` for ``$entity_access_id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:515
msgid "``get_write_access_array()`` now requires an ``int`` for ``$user_guid`` and ``bool`` for ``$flush``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:516
msgid "``has_access_to_entity()`` now requires an ``ElggEntity`` for ``$entity`` and ``ElggUser`` for ``$user``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:517
msgid "``remove_user_from_access_collection()`` now requires an ``int`` for ``$user_guid`` and ``$collection_id``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:518
msgid "``system_log_get_log()`` now requires an ``array`` for ``$options``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:519
msgid "``messageboard_add()`` now requires an ``ElggUser``, ``ElggUser``, ``string`` and an ``int``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:520
msgid "``elgg_register_external_file()`` now requires all arguments to be of the type ``string``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:521
msgid "``elgg_unregister_external_file()`` now requires all arguments to be of the type ``string``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:522
msgid "``elgg_load_external_file()`` now requires all arguments to be of the type ``string``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:523
msgid "``elgg_get_loaded_external_files()`` now requires all arguments to be of the type ``string``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:526
msgid "Change in function parameters"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:529
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:895
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:914
msgid "Class functions"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:531
msgid "``Elgg\\Http\\ResponseBuilder::setStatusCode()`` no longer has a default value"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:532
msgid "``ElggEntity::canWriteToContainer()`` no longer has a default value for ``$type`` and ``$subtype`` but these are required"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:535
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:901
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:937
msgid "Lib functions"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:537
msgid "``elgg_get_page_owner_guid()`` no longer accepts ``$guid`` as a parameter"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:538
msgid "``get_access_array()`` no longer accepts ``$flush`` as a parameter"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:539
msgid "``elgg_register_external_file()`` no longer accepts ``$priority`` as a parameter"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:542
msgid "Renamed hook/event handler callbacks"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:544
msgid "Special attention is required if you unregister the callbacks in your plugins as you might need to update your code."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:547
msgid "Core"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:549
msgid "``access_friends_acl_get_name()`` changed to ``Elgg\\Friends\\AclNameHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:550
msgid "``access_friends_acl_add_friend()`` changed to ``Elgg\\Friends\\AddToAclHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:551
msgid "``access_friends_acl_create()`` changed to ``Elgg\\Friends\\CreateAclHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:552
msgid "``access_friends_acl_remove_friend()`` changed to ``Elgg\\Friends\\RemoveFromAclHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:553
msgid "``_elgg_add_admin_widgets()`` changed to ``Elgg\\Widgets\\CreateAdminWidgetsHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:554
msgid "``_elgg_admin_check_admin_validation()`` changed to ``Elgg\\Users\\Validation::checkAdminValidation()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:555
msgid "``_elgg_admin_header_menu()`` changed to ``Elgg\\Menus\\AdminHeader::register()`` and ``Elgg\\Menus\\AdminHeader::registerMaintenance()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:556
msgid "``_elgg_admin_footer_menu()`` changed to ``Elgg\\Menus\\AdminFooter::registerHelpResources()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:557
msgid "``_elgg_admin_notify_admins_pending_user_validation()`` changed to ``Elgg\\Users\\Validation::notifyAdminsAboutPendingUsers()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:558
msgid "``_elgg_admin_page_menu()`` changed to ``Elgg\\Menus\\Page::registerAdminAdminister()`` and ``Elgg\\Menus\\Page::registerAdminConfigure()`` and ``Elgg\\Menus\\Page::registerAdminInformation()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:559
msgid "``_elgg_admin_page_menu_plugin_settings()`` changed to ``Elgg\\Menus\\Page::registerAdminPluginSettings()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:560
msgid "``_elgg_admin_prepare_admin_notification_make_admin()`` changed to ``Elgg\\Notifications\\MakeAdminUserEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:561
msgid "``_elgg_admin_prepare_admin_notification_remove_admin()`` changed to ``Elgg\\Notifications\\RemoveAdminUserEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:562
msgid "``_elgg_admin_prepare_user_notification_make_admin()`` changed to ``Elgg\\Notifications\\MakeAdminUserEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:563
msgid "``_elgg_admin_prepare_user_notification_remove_admin()`` changed to ``Elgg\\Notifications\\RemoveAdminUserEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:564
msgid "``_elgg_admin_save_notification_setting()`` changed to ``Elgg\\Users\\Settings::setAdminValidationNotification()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:565
msgid "``_elgg_admin_set_registration_forward_url()`` changed to ``Elgg\\Users\\Validation::setRegistrationForwardUrl()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:566
msgid "``_elgg_admin_user_unvalidated_bulk_menu()`` changed to ``Elgg\\Menus\\UserUnvalidatedBulk::registerActions()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:567
msgid "``_elgg_admin_user_validation_login_attempt()`` changed to ``Elgg\\Users\\Validation::preventUserLogin()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:568
msgid "``_elgg_admin_user_validation_notification()`` changed to ``Elgg\\Users\\Validation::notifyUserAfterValidation()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:569
msgid "``_elgg_admin_upgrades_menu()`` changed to ``Elgg\\Menus\\Filter::registerAdminUpgrades()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:570
msgid "``_elgg_cache_init()`` actions combined in ``Elgg\\Application\\SystemEventHandlers::ready()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:571
msgid "``_elgg_clear_caches()`` changed to ``Elgg\\Cache\\EventHandlers::clear()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:572
msgid "``_elgg_comments_access_sync()`` changed to ``Elgg\\Comments\\SyncContainerAccessHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:573
msgid "``_elgg_comments_container_permissions_override()`` changed to ``Elgg\\Comments\\ContainerPermissionsHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:574
msgid "``_elgg_comments_permissions_override()`` changed to ``Elgg\\Comments\\EditPermissionsHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:575
msgid "``_elgg_comments_prepare_content_owner_notification()`` changed to ``Elgg\\Notifications\\CreateCommentEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:576
msgid "``_elgg_comments_prepare_notification()`` changed to ``Elgg\\Notifications\\CreateCommentEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:577
msgid "``_elgg_comments_social_menu_setup()`` changed to ``Elgg\\Menus\\Social::registerComments()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:578
msgid "``_elgg_create_default_widgets()`` changed to ``Elgg\\Widgets\\CreateDefaultWidgetsHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:579
msgid "``_elgg_create_notice_of_pending_upgrade()`` changed to ``Elgg\\Upgrade\\CreateAdminNoticeHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:580
msgid "``_elgg_db_register_seeds()`` changed to ``Elgg\\Database\\RegisterSeedsHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:581
msgid "``_elgg_disable_caches()`` changed to ``Elgg\\Cache\\EventHandlers::disable()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:582
msgid "``_elgg_default_widgets_permissions_override()`` changed to ``Elgg\\Widgets\\DefaultWidgetsContainerPermissionsHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:583
msgid "``_elgg_disable_password_autocomplete()`` changed to ``Elgg\\Input\\DisablePasswordAutocompleteHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:584
msgid "``_elgg_enable_caches()`` changed to ``Elgg\\Cache\\EventHandlers::enable()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:585
msgid "``_elgg_filestore_move_icons()`` changed to ``Elgg\\Icons\\MoveIconsOnOwnerChangeHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:586
msgid "``_elgg_filestore_touch_icons()`` changed to ``Elgg\\Icons\\TouchIconsOnAccessChangeHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:587
msgid "``_elgg_head_manifest()`` changed to ``Elgg\\Views\\AddManifestLinkHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:588
msgid "``_elgg_annotations_default_menu_items()`` changed to ``Elgg\\Menus\\Annotation::registerDelete()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:589
msgid "``_elgg_walled_garden_menu()`` changed to ``Elgg\\Menus\\WalledGarden::registerHome()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:590
msgid "``_elgg_site_menu_init()`` changed to ``Elgg\\Menus\\Site::registerAdminConfiguredItems()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:591
msgid "``_elgg_site_menu_setup()`` changed to ``Elgg\\Menus\\Site::reorderItems()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:592
msgid "``_elgg_entity_menu_setup()`` changed to ``Elgg\\Menus\\Entity::registerEdit()`` and ``Elgg\\Menus\\Entity::registerDelete()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:593
msgid "``_elgg_entity_navigation_menu_setup()`` changed to ``Elgg\\Menus\\EntityNavigation::registerPreviousNext()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:594
msgid "``_elgg_enqueue_notification_event()`` changed to ``Elgg\\Notifications\\EnqueueEventHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:595
msgid "``_elgg_groups_container_override()`` changed to ``Elgg\\Groups\\MemberPermissionsHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:596
msgid "``_elgg_groups_comment_permissions_override()`` changed to ``Elgg\\Comments\\GroupMemberPermissionsHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:597
msgid "``_elgg_htmlawed_filter_tags()`` changed to ``Elgg\\Input\\ValidateInputHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:598
msgid "``_elgg_invalidate_caches()`` changed to ``Elgg\\Cache\\EventHandlers::invalidate()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:599
msgid "``_elgg_widget_menu_setup()`` changed to ``Elgg\\Menus\\Widget::registerEdit()`` and ``Elgg\\Menus\\Widget::registerDelete()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:600
msgid "``_elgg_login_menu_setup()`` changed to ``Elgg\\Menus\\Login::registerRegistration()`` and ``Elgg\\Menus\\Widget::registerResetPassword()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:601
msgid "``_elgg_nav_public_pages()`` changed to ``Elgg\\WalledGarden\\ExtendPublicPagesHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:602
msgid "``_elgg_notifications_cron()`` changed to ``Elgg\\Notifications\\ProcessQueueCronHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:603
msgid "``_elgg_notifications_smtp_default_message_id_header()`` changed to ``Elgg\\Email\\DefaultMessageIdHeaderHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:604
msgid "``_elgg_notifications_smtp_thread_headers()`` changed to ``Elgg\\Email\\ThreadHeadersHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:605
msgid "``_elgg_rebuild_public_container()`` changed to ``Elgg\\Cache\\EventHandlers::rebuildPublicContainer()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:606
msgid "``_elgg_river_update_object_last_action()`` changed to ``Elgg\\River\\UpdateLastActionHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:607
msgid "``_elgg_rss_menu_setup()`` changed to ``Elgg\\Menus\\Footer::registerRSS()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:608
msgid "``_elgg_plugin_entity_menu_setup()`` changed to ``Elgg\\Menus\\Entity::registerPlugin()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:609
msgid "``_elgg_purge_caches()`` changed to ``Elgg\\Cache\\EventHandlers::purge()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:610
msgid "``_elgg_river_menu_setup()`` changed to ``Elgg\\Menus\\River::registerDelete()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:611
msgid "``_elgg_save_notification_user_settings()`` changed to ``Elgg\\Notifications\\SaveUserSettingsHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:612
msgid "``_elgg_session_cleanup_persistent_login()`` changed to ``Elgg\\Users\\CleanupPersistentLoginHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:613
msgid "``_elgg_set_lightbox_config()`` changed to ``Elgg\\Javascript\\SetLightboxConfigHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:614
msgid "``_elgg_set_user_default_access()`` changed to ``Elgg\\Users\\Settings::setDefaultAccess()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:615
msgid "``_elgg_set_user_email()`` changed to ``Elgg\\Users\\Settings::setEmail()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:616
msgid "``_elgg_set_user_password()`` changed to ``Elgg\\Users\\Settings::setPassword()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:617
msgid "``_elgg_set_user_language()`` changed to ``Elgg\\Users\\Settings::setLanguage()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:618
msgid "``_elgg_set_user_name()`` changed to ``Elgg\\Users\\Settings::setName()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:619
msgid "``_elgg_set_user_username()`` changed to ``Elgg\\Users\\Settings::setUsername()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:620
msgid "``_elgg_send_email_notification()`` changed to ``Elgg\\Notifications\\SendEmailHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:621
msgid "``_elgg_upgrade_completed()`` changed to ``Elgg\\Upgrade\\UpgradeCompletedAdminNoticeHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:622
msgid "``_elgg_upgrade_entity_menu()`` changed to ``Elgg\\Menus\\Entity::registerUpgrade()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:623
msgid "``_elgg_user_ban_notification()`` changed to ``Elgg\\Users\\BanUserNotificationHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:624
msgid "``_elgg_user_get_subscriber_unban_action()`` changed to ``Elgg\\Notifications\\UnbanUserEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:625
msgid "``_elgg_user_prepare_unban_notification()`` changed to ``Elgg\\Notifications\\UnbanUserEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:626
msgid "``_elgg_user_settings_menu_register()`` changed to ``Elgg\\Menus\\Page::registerUserSettings()`` and ``Elgg\\Menus\\Page::registerUserSettingsPlugins()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:627
msgid "``_elgg_user_settings_menu_prepare()`` changed to ``Elgg\\Menus\\Page::cleanupUserSettingsPlugins()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:628
msgid "``elgg_user_hover_menu()`` changed to ``Elgg\\Menus\\UserHover::registerAvatarEdit()`` and ``Elgg\\Menus\\UserHover::registerAdminActions()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:629
msgid "``_elgg_user_set_icon_file()`` changed to ``Elgg\\Icons\\SetUserIconFileHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:630
msgid "``_elgg_user_title_menu()`` changed to ``Elgg\\Menus\\Title::registerAvatarEdit()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:631
msgid "``_elgg_user_page_menu()`` changed to ``Elgg\\Menus\\Page::registerAvatarEdit()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:632
msgid "``_elgg_user_topbar_menu()`` changed to ``Elgg\\Menus\\Topbar::registerUserLinks()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:633
msgid "``_elgg_user_unvalidated_menu()`` changed to ``Elgg\\Menus\\UserUnvalidated::register()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:634
msgid "``_elgg_views_amd()`` changed to ``Elgg\\Views\\AddAmdModuleNameHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:635
msgid "``_elgg_views_file_help_upload_limit()`` changed to ``Elgg\\Input\\AddFileHelpTextHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:636
msgid "``_elgg_views_init()`` combined into ``Elgg\\Application\\SystemEventHandlers::init()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:637
msgid "``_elgg_views_minify()`` changed to ``Elgg\\Views\\MinifyHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:638
msgid "``_elgg_views_prepare_favicon_links()`` changed to ``Elgg\\Page\\AddFaviconLinksHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:639
msgid "``_elgg_views_preprocess_css()`` changed to ``Elgg\\Views\\PreProcessCssHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:640
msgid "``_elgg_views_send_header_x_frame_options()`` changed to ``Elgg\\Page\\SetXFrameOptionsHeaderHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:641
msgid "``_elgg_walled_garden_init()`` merged into ``Elgg\\Application\\SystemEventHandlers::initLate()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:642
msgid "``_elgg_walled_garden_remove_public_access()`` changed to ``Elgg\\WalledGarden\\RemovePublicAccessHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:643
msgid "``_elgg_widgets_widget_urls()`` changed to ``Elgg\\Widgets\\EntityUrlHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:644
msgid "``elgg_prepare_breadcrumbs()`` changed to ``Elgg\\Page\\PrepareBreadcrumbsHandler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:645
msgid "``Elgg\\Profiler::handleOutput`` changed to ``Elgg\\Debug\\Profiler::class``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:646
msgid "``users_init`` combined into ``Elgg\\Application\\SystemEventHandlers::initLate()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:651
msgid "``_developers_entity_menu`` changed to ``Elgg\\Developers\\Menus\\Entity::registerEntityExplorer``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:652
msgid "``_developers_page_menu`` changed to ``Elgg\\Developers\\Menus\\Page::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:653
msgid "``_elgg_activity_owner_block_menu`` changed to ``Elgg\\Activity\\Menus\\OwnerBlock::registerUserItem`` and ``Elgg\\Activity\\Menus\\OwnerBlock::registerGroupItem``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:654
msgid "``blog_archive_menu_setup`` changed to ``Elgg\\Blog\\Menus\\BlogArchive::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:655
msgid "``blog_owner_block_menu`` changed to ``Elgg\\Blog\\Menus\\OwnerBlock::registerUserItem`` and ``Elgg\\Blog\\Menus\\OwnerBlock::registerGroupItem``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:656
msgid "``blog_prepare_notification`` changed to ``Elgg\\Blog\\Notifications\\PublishBlogEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:657
msgid "``blog_register_db_seeds`` changed to ``Elgg\\Blog\\Database::registerSeeds``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:658
msgid "``bookmarks_footer_menu`` changed to ``Elgg\\Bookmarks\\Menus\\Footer::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:659
msgid "``bookmarks_owner_block_menu`` changed to ``Elgg\\Bookmarks\\Menus\\OwnerBlock::registerUserItem`` and ``Elgg\\Bookmarks\\Menus\\OwnerBlock::registerGroupItem``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:660
msgid "``bookmarks_page_menu`` changed to ``Elgg\\Bookmarks\\Menus\\Page::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:661
msgid "``bookmarks_prepare_notification`` changed to ``Elgg\\Bookmarks\\Notifications\\CreateBookmarksEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:662
msgid "``bookmarks_register_db_seeds`` changed to ``Elgg\\Bookmarks\\Database::registerSeeds``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:663
msgid "``ckeditor_longtext_id`` changed to ``Elgg\\CKEditor\\Views::setInputLongTextIDViewVar``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:664
msgid "``ckeditor_longtext_menu`` changed to ``Elgg\\CKEditor\\Menus\\LongText::registerToggler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:665
msgid "``dashboard_default_widgets`` changed to ``Elgg\\Dashboard\\Widgets::extendDefaultWidgetsList``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:666
msgid "``developers_log_events`` changed to ``Elgg\\Developers\\HandlerLogger::trackEvent`` and ``Elgg\\Developers\\HandlerLogger::trackHook``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:667
msgid "``diagnostics_basic_hook`` changed to ``Elgg\\Diagnostics\\Reports::getBasic``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:668
msgid "``diagnostics_globals_hook`` changed to ``Elgg\\Diagnostics\\Reports::getGlobals``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:669
msgid "``diagnostics_phpinfo_hook`` changed to ``Elgg\\Diagnostics\\Reports::getPHPInfo``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:670
msgid "``diagnostics_sigs_hook`` changed to ``Elgg\\Diagnostics\\Reports::getSigs``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:671
msgid "``discussion_comment_permissions`` changed to ``Elgg\\Discussions\\Permissions::preventCommentOnClosedDiscussion``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:672
msgid "``discussion_get_subscriptions`` changed to ``Elgg\\Discussions\\Notifications::addGroupSubscribersToCommentOnDiscussionSubscriptions``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:673
msgid "``discussion_owner_block_menu`` changed to ``Elgg\\Discussions\\Menus\\OwnerBlock::registerGroupItem``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:674
msgid "``discussion_prepare_comment_notification`` changed to ``Elgg\\Discussions\\Notifications::prepareCommentOnDiscussionNotification``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:675
msgid "``discussion_prepare_notification`` changed to ``Elgg\\Discussions\\Notifications\\CreateDiscussionEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:676
msgid "``discussion_register_db_seeds`` changed to ``Elgg\\Discussions\\Database::registerSeeds``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:677
msgid "``Elgg\\DevelopersPlugins\\*`` changed to ``Elgg\\Developers\\*``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:678
msgid "``Elgg\\Discussions\\Menus::registerSiteMenuItem`` changed to ``Elgg\\Discussions\\Menus\\Site::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:679
msgid "``Elgg\\Discussions\\Menus::filterTabs`` changed to ``Elgg\\Discussions\\Menus\\Filter::filterTabsForDiscussions``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:680
msgid "``embed_longtext_menu`` changed to ``Elgg\\Embed\\Menus\\LongText::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:681
msgid "``embed_select_tab`` changed to ``Elgg\\Embed\\Menus\\Embed::selectCorrectTab``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:682
msgid "``embed_set_thumbnail_url`` changed to ``Elgg\\Embed\\Icons::setThumbnailUrl``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:683
msgid "``expages_menu_register_hook`` changed to ``Elgg\\ExternalPages\\Menus\\ExPages::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:685
msgid "``file_handle_object_delete`` changed to ``Elgg\\File\\Icons::deleteIconOnElggFileDelete``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:686
msgid "``file_prepare_notification`` changed to ``Elgg\\File\\Notifications\\CreateFileEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:687
msgid "``file_register_db_seeds`` changed to ``Elgg\\File\\Database::registerSeeds``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:688
msgid "``file_set_custom_icon_sizes`` changed to ``Elgg\\File\\Icons::setIconSizes``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:689
msgid "``file_set_icon_file`` changed to ``Elgg\\File\\Icons::setIconFile``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:690
msgid "``file_set_icon_url`` changed to ``Elgg\\File\\Icons::setIconUrl``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:691
msgid "``file_owner_block_menu`` changed to ``Elgg\\File\\Menus\\OwnerBlock::registerUserItem`` and ``Elgg\\File\\Menus\\OwnerBlock::registerGroupItem``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:693
msgid "``_elgg_friends_filter_tabs`` changed to ``Elgg\\Friends\\Menus\\Filter::registerFilterTabs``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:694
msgid "``_elgg_friends_page_menu`` changed to ``Elgg\\Friends\\Menus\\Page::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:695
msgid "``_elgg_friends_register_access_type`` changed to ``Elgg\\Friends\\Access::registerAccessCollectionType``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:696
msgid "``_elgg_friends_setup_title_menu`` changed to ``Elgg\\Friends\\Menus\\Title::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:697
msgid "``_elgg_friends_setup_user_hover_menu`` changed to ``Elgg\\Friends\\Menus\\UserHover::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:698
msgid "``_elgg_friends_topbar_menu`` changed to ``Elgg\\Friends\\Menus\\Topbar::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:699
msgid "``_elgg_friends_widget_urls`` changed to ``Elgg\\Friends\\Widgets::setWidgetUrl``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:700
msgid "``_elgg_send_friend_notification`` changed to ``Elgg\\Friends\\Notifications::sendFriendNotification``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:701
msgid "``Elgg\\Friends\\FilterMenu::addFriendRequestTabs`` changed to ``Elgg\\Friends\\Menus\\Filter::addFriendRequestTabs``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:702
#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:703
msgid "``Elgg\\Friends\\RelationshipMenu::addPendingFriendRequestItems`` changed to ``Elgg\\Friends\\Menus\\Relationship::addPendingFriendRequestItems``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:704
msgid "``Elgg\\Friends\\Relationships::createFriendRelationship`` changed to ``Elgg\\Friends\\Relationships::removePendingFriendRequest``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:706
msgid "``_groups_gatekeeper_allow_profile_page`` changed to ``Elgg\\Groups\\Access::allowProfilePage``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:707
msgid "``_groups_page_menu`` changed to ``Elgg\\Groups\\Menus\\Page::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:708
msgid "``_groups_page_menu_group_profile`` changed to ``Elgg\\Groups\\Menus\\Page::registerGroupProfile``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:709
msgid "``_groups_relationship_invited_menu`` changed to ``Elgg\\Groups\\Menus\\Relationship::registerInvitedItems``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:710
msgid "``_groups_relationship_member_menu`` changed to ``Elgg\\Groups\\Menus\\Relationship::registerRemoveUser``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:711
msgid "``_groups_relationship_membership_request_menu`` changed to ``Elgg\\Groups\\Menus\\Relationship::registerMembershipRequestItems``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:712
msgid "``_groups_title_menu`` changed to ``Elgg\\Groups\\Menus\\Title::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:713
msgid "``_groups_topbar_menu_setup`` changed to ``Elgg\\Groups\\Menus\\Topbar::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:714
msgid "``groups_access_default_override`` changed to ``Elgg\\Groups\\Access::overrideDefaultAccess``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:715
msgid "``groups_create_event_listener`` changed to ``Elgg\\Groups\\Group::createAccessCollection``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:716
msgid "``groups_default_page_owner_handler`` changed to ``Elgg\\Groups\\PageOwner::detectPageOwner``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:717
msgid "``groups_entity_menu_setup`` changed to ``Elgg\\Groups\\Menus\\Entity::register`` and ``Elgg\\Groups\\Menus\\Entity::registerFeature``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:718
msgid "``groups_fields_setup`` changed to ``Elgg\\Groups\\FieldsHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:719
msgid "``groups_members_menu_setup`` changed to ``Elgg\\Groups\\Menus\\GroupsMembers::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:720
msgid "``groups_set_access_collection_name`` changed to ``Elgg\\Groups\\Access::getAccessCollectionName``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:721
msgid "``groups_set_url`` changed to ``Elgg\\Groups\\Group::getEntityUrl``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:722
msgid "``groups_setup_filter_tabs`` changed to ``Elgg\\Groups\\Menus\\Filter::registerGroupsAll``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:723
msgid "``groups_update_event_listener`` changed to ``Elgg\\Groups\\Group::updateGroup``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:724
msgid "``groups_user_join_event_listener`` changed to ``Elgg\\Groups\\Group::joinGroup``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:725
msgid "``groups_user_leave_event_listener`` changed to ``Elgg\\Groups\\Group::leaveGroup``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:726
msgid "``groups_write_acl_plugin_hook`` changed to ``Elgg\\Groups\\Access::getWriteAccess``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:728
msgid "``invitefriends_add_friends`` changed to ``Elgg\\InviteFriends\\Users::addFriendsOnRegister``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:729
msgid "``invitefriends_register_page_menu`` changed to ``Elgg\\InviteFriends\\Menus\\Page::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:731
msgid "``likes_permissions_check`` changed to ``Elgg\\Likes\\Permissions::allowLikedEntityOwner``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:732
msgid "``likes_permissions_check_annotate`` changed to ``Elgg\\Likes\\Permissions::allowLikeOnEntity``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:733
msgid "``likes_social_menu_setup`` changed to ``Elgg\\Likes\\Menus\\Social::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:735
msgid "``members_register_filter_menu`` changed to ``Elgg\\Members\\Menus\\Filter::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:737
msgid "``messages_can_edit`` changed to ``Elgg\\Messages\\Permissions::canEdit``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:738
msgid "``messages_can_edit_container`` changed to ``Elgg\\Messages\\Permissions::canEditContainer``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:739
msgid "``messages_purge`` changed to ``Elgg\\Messages\\User::purgeMessages``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:740
msgid "``messages_register_topbar`` changed to ``Elgg\\Messages\\Menus\\Topbar::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:741
msgid "``messages_user_hover_menu`` changed to ``Elgg\\Messages\\Menus\\UserHover::register`` and ``Elgg\\Messages\\Menus\\Title::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:743
msgid "``notifications_update_collection_notify`` changed to ``Elgg\\Notifications\\Relationships::updateUserNotificationsPreferencesOnACLChange``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:744
msgid "``notifications_update_friend_notify`` changed to ``Elgg\\Friends\\Relationships::applyFriendNotificationsSettings``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:745
msgid "``notifications_relationship_remove`` changed to ``Elgg\\Friends\\Relationships::deleteFriendNotificationSubscription`` and ``Elgg\\Groups\\Relationships::removeGroupNotificationSubscriptions``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:746
msgid "``_notifications_page_menu`` changed to ``Elgg\\Notifications\\Menus\\Page::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:747
msgid "``_notification_groups_title_menu`` changed to ``Elgg\\Notifications\\Menus\\Title::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:749
msgid "``pages_container_permission_check`` changed to ``Elgg\\Pages\\Permissions::allowContainerWriteAccess``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:750
msgid "``pages_entity_menu_setup`` changed to ``Elgg\\Pages\\Menus\\Entity::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:751
msgid "``pages_icon_url_override`` changed to ``Elgg\\Pages\\Icons::getIconUrl``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:752
msgid "``pages_owner_block_menu`` changed to ``Elgg\\Pages\\Menus\\OwnerBlock::registerUserItem`` and ``Elgg\\Pages\\Menus\\OwnerBlock::registerGroupItem``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:753
msgid "``pages_prepare_notification`` changed to ``Elgg\\Pages\\Notifications\\CreatePageEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:754
msgid "``pages_register_db_seeds`` changed to ``Elgg\\Pages\\Database::registerSeeds``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:755
msgid "``pages_set_revision_url`` changed to ``Elgg\\Pages\\Extender::setRevisionUrl``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:756
msgid "``pages_write_access_options_hook`` changed to ``Elgg\\Pages\\Views::removeAccessPublic``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:757
msgid "``pages_write_access_vars`` changed to ``Elgg\\Pages\\Views::preventAccessPublic``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:758
msgid "``pages_write_permission_check`` changed to ``Elgg\\Pages\\Permissions::allowWriteAccess``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:759
msgid "``Elgg\\Pages\\Menus::registerPageMenuItems`` changed to ``Elgg\\Pages\\Menus\\PagesNav::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:761
msgid "``_profile_admin_page_menu`` changed to ``Elgg\\Profile\\Menus\\Page::registerAdminProfileFields``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:762
msgid "``_profile_fields_setup`` changed to ``Elgg\\Profile\\FieldsHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:763
msgid "``_profile_title_menu`` changed to ``Elgg\\Profile\\Menus\\Title::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:764
msgid "``_profile_topbar_menu`` changed to ``Elgg\\Profile\\Menus\\Topbar::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:765
msgid "``_profile_user_hover_menu`` changed to ``Elgg\\Profile\\Menus\\UserHover::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:766
msgid "``_profile_user_page_menu`` changed to ``Elgg\\Profile\\Menus\\Page::registerProfileEdit``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:767
msgid "``profile_default_widgets_hook`` changed to ``Elgg\\Profile\\Widgets::getDefaultWidgetsList``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:769
msgid "``reportedcontent_user_hover_menu`` changed to ``Elgg\\ReportedContent\\Menus\\UserHover::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:771
msgid "``search_exclude_robots`` changed to ``Elgg\\Search\\Site::preventSearchIndexing``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:772
msgid "``search_output_tag`` changed to ``Elgg\\Search\\Views::setSearchHref``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:774
msgid "``site_notifications_register_entity_menu`` changed to ``Elgg\\SiteNotifications\\Menus\\Entity::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:775
msgid "``site_notifications_send`` changed to ``Elgg\\SiteNotifications\\Notifications::createSiteNotifications``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:777
msgid "``_uservalidationbyemail_user_unvalidated_bulk_menu`` changed to ``Elgg\\UserValidationByEmail\\Menus\\UserUnvalidatedBulk::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:778
msgid "``_uservalidationbyemail_user_unvalidated_menu`` changed to ``Elgg\\UserValidationByEmail\\Menus\\UserUnvalidated::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:779
msgid "``uservalidationbyemail_after_registration_url`` changed to ``Elgg\\UserValidationByEmail\\Response::redirectToEmailSent``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:780
msgid "``uservalidationbyemail_check_manual_login`` changed to ``Elgg\\UserValidationByEmail\\User::preventLogin``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:781
msgid "``uservalidationbyemail_disable_new_user`` changed to ``Elgg\\UserValidationByEmail\\User::disableUserOnRegistration``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:783
msgid "``system_log_archive_cron`` changed to ``Elgg\\SystemLog\\Cron::rotateLogs``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:784
msgid "``system_log_default_logger`` changed to ``Elgg\\SystemLog\\Logger::log``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:785
msgid "``system_log_delete_cron`` changed to ``Elgg\\SystemLog\\Cron::deleteLogs``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:786
msgid "``system_log_listener`` changed to ``Elgg\\SystemLog\\Logger::listen``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:787
msgid "``system_log_user_hover_menu`` changed to ``Elgg\\SystemLog\\Menus\\UserHover::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:789
msgid "``thewire_add_original_poster`` changed to ``Elgg\\TheWire\\Notifications\\CreateTheWireEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:790
msgid "``thewire_owner_block_menu`` changed to ``Elgg\\TheWire\\Menus\\OwnerBlock::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:791
msgid "``thewire_prepare_notification`` changed to ``Elgg\\TheWire\\Notifications\\CreateTheWireEventHandler``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:792
msgid "``thewire_setup_entity_menu_items`` changed to ``Elgg\\TheWire\\Menus\\Entity::register``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:795
msgid "Reworked exceptions"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:797
msgid "All exceptions in the Elgg system now extend the ``Elgg\\Exceptions\\Exception`` and are in the namespace ``Elgg\\Exceptions``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:800
msgid "Moved exceptions"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:802
msgid "``ClassException`` use ``Elgg\\Exceptions\\ClassException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:803
msgid "``ConfigurationException`` use ``Elgg\\Exceptions\\ConfigurationException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:804
msgid "``CronException`` use ``Elgg\\Exceptions\\CronException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:805
msgid "``DatabaseException`` use ``Elgg\\Exceptions\\DatabaseException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:806
msgid "``DataFormatException`` use ``Elgg\\Exceptions\\DataFormatException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:807
msgid "``InstallationException`` use ``Elgg\\Exceptions\\Configuration\\InstallationException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:808
msgid "``InvalidParameterException`` use ``Elgg\\Exceptions\\InvalidParameterException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:809
msgid "``IOException`` use ``Elgg\\Exceptions\\FileSystem\\IOException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:810
msgid "``LoginException`` use ``Elgg\\Exceptions\\LoginException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:811
msgid "``PluginException`` use ``Elgg\\Exceptions\\PluginException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:812
msgid "``RegistrationException`` use ``Elgg\\Exceptions\\Configuration\\RegistrationException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:813
msgid "``SecurityException`` use ``Elgg\\Exceptions\\SecurityException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:814
msgid "``Elgg\\Database\\EntityTable\\UserFetchFailureException`` use ``Elgg\\Exceptions\\Database\\UserFetchFailureException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:815
msgid "``Elgg\\Di\\FactoryUncallableException`` use ``Elgg\\Exceptions\\Di\\FactoryUncallableException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:816
msgid "``Elgg\\Di\\MissingValueException`` use ``Elgg\\Exceptions\\Di\\MissingValueException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:817
msgid "``Elgg\\Http\\Exception\\AdminGatekeeperException`` use ``Elgg\\Exceptions\\Http\\Gatekeeper\\AdminGatekeeperException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:818
msgid "``Elgg\\Http\\Exception\\AjaxGatekeeperException`` use ``Elgg\\Exceptions\\Http\\Gatekeeper\\AjaxGatekeeperException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:819
msgid "``Elgg\\Http\\Exception\\GroupToolGatekeeperException`` use ``Elgg\\Exceptions\\Http\\Gatekeeper\\GroupToolGatekeeperException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:820
msgid "``Elgg\\Http\\Exception\\LoggedInGatekeeperException`` use ``Elgg\\Exceptions\\Http\\Gatekeeper\\LoggedInGatekeeperException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:821
msgid "``Elgg\\Http\\Exception\\LoggedOutGatekeeperException`` use ``Elgg\\Exceptions\\Http\\Gatekeeper\\LoggedOutGatekeeperException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:822
msgid "``Elgg\\Http\\Exception\\UpgradeGatekeeperException`` use ``Elgg\\Exceptions\\Http\\Gatekeeper\\UpgradeGatekeeperException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:823
msgid "``Elgg\\I18n\\InvalidLocaleException`` use ``Elgg\\Exceptions\\I18n\\InvalidLocaleException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:824
msgid "``Elgg\\BadRequestException`` use ``Elgg\\Exceptions\\Http\\BadRequestException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:825
msgid "``Elgg\\CsrfException`` use ``Elgg\\Exceptions\\Http\\CsrfException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:826
msgid "``Elgg\\EntityNotFoundException`` use ``Elgg\\Exceptions\\Http\\EntityNotFoundException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:827
msgid "``Elgg\\EntityPermissionsException`` use ``Elgg\\Exceptions\\Http\\EntityPermissionsException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:828
msgid "``Elgg\\GatekeeperException`` use ``Elgg\\Exceptions\\Http\\GatekeeperException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:829
msgid "``Elgg\\GroupGatekeeperException`` use ``Elgg\\Exceptions\\Http\\Gatekeeper\\GroupGatekeeperException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:830
msgid "``Elgg\\HttpException`` use ``Elgg\\Exceptions\\HttpException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:831
msgid "``Elgg\\PageNotFoundException`` use ``Elgg\\Exceptions\\Http\\PageNotFoundException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:832
msgid "``Elgg\\ValidationException`` use ``Elgg\\Exceptions\\Http\\ValidationException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:833
msgid "``Elgg\\WalledGardenException`` use ``Elgg\\Exceptions\\Http\\Gatekeeper\\WalledGardenException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:836
msgid "Removed exceptions"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:838
msgid "``CallException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:839
msgid "``ClassNotFoundException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:840
msgid "``IncompleteEntityException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:841
msgid "``InvalidClassException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:842
msgid "``NotificationException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:843
msgid "``NotImplementedException`` from the Web Services plugin"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:846
msgid "Reworked Traits"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:848
msgid "In order to better organize the Elgg namespace all Traits have been moved to the ``Elgg\\Traits`` namespace"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:850
msgid "``Elgg\\Cacheable`` moved to ``Elgg\\Traits\\Cacheable``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:851
msgid "``Elgg\\Cli\\PluginsHelper`` moved to ``Elgg\\Traits\\Cli\\PluginsHelper``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:852
msgid "``Elgg\\Cli\\Progressing`` moved to ``Elgg\\Traits\\Cli\\Progressing``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:853
msgid "``Elgg\\Database\\Seeds\\Seeding\\GroupHelpers`` moved to ``Elgg\\Traits\\Seeding\\GroupHelpers``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:854
msgid "``Elgg\\Database\\Seeds\\Seeding\\TimeHelpers`` moved to ``Elgg\\Traits\\Seeding\\TimeHelpers``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:855
msgid "``Elgg\\Database\\Seeds\\Seeding`` moved to ``Elgg\\Traits\\Seeding``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:856
msgid "``Elgg\\Database\\LegacyQueryOptionsAdapter`` moved to ``Elgg\\Traits\\Database\\LegacyQueryOptionsAdapter``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:857
msgid "``Elgg\\Debug\\Profilable`` moved to ``Elgg\\Traits\\Debug\\Profilable``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:858
msgid "``Elgg\\Di\\ServiceFacade`` moved to ``Elgg\\Traits\\Di\\ServiceFacade``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:859
msgid "``Elgg\\Entity\\ProfileData`` moved to ``Elgg\\Traits\\Entity\\ProfileData``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:860
msgid "``Elgg\\Loggable`` moved to ``Elgg\\Traits\\Loggable``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:861
msgid "``Elgg\\Notifications\\EventSerialization`` moved to ``Elgg\\Traits\\Notifications\\EventSerialization``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:862
msgid "``Elgg\\TimeUsing`` moved to ``Elgg\\Traits\\TimeUsing``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:867
msgid "The defaults for ``ignore_empty_body`` and ``prevent_double_submit`` when using ``elgg_view_form`` have been changed to ``true``."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:868
msgid "The plugin settings forms (``plugins/{$plugin_id}/settings``) no longer receive ``$vars['plugin']`` use ``$vars['entity']``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:869
msgid "``Elgg\\Router\\Middleware\\WalledGarden::isPublicPage()`` can no longer be called statically"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:870
msgid "``Elgg\\Cli\\PluginsHelper::getDependents()`` is no longer publically available"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:871
msgid "``ElggPlugin::getLanguagesPath()`` is no longer publically available"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:872
msgid "An ``\\ElggBatch`` no longer implements the interface ``Elgg\\BatchResult`` but still has the same features"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:873
msgid "An ``\\ElggEntity`` no longer implements the interface ``Locatable`` but still has the same features"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:874
msgid "An ``\\Elgg\\Event`` no longer implements the interfaces ``\\Elgg\\ObjectEvent`` and ``\\Elgg\\UserEvent`` but still has the same features"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:875
msgid "The view ``output/icon`` no longer uses the ``convert`` view var"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:876
msgid "``ElggData::save()`` now always returns a ``bool`` as documented. All extending classes have been updated (eg. ``ElggEntity``, ``ElggMetadata``, ``ElggRelationship``, etc.)"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:877
msgid "``Elgg\\Email::getTo()`` now always returns an ``array``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:878
msgid "``ElggPlugin::activate()`` and ``ElggPlugin::deactivate()`` now can throw an ``Elgg\\Exceptions\\PluginException`` with more details about the failure"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:879
msgid "``\\ElggRelationship::RELATIONSHIP_LIMIT`` has been removed use \\Elgg\\Database\\RelationshipsTable::RELATIONSHIP_COLUMN_LENGTH``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:880
msgid "The constants ``ORIGIN_SUBSCRIPTIONS`` and ``ORIGIN_INSTANT`` in ``\\Elgg\\Notifications\\Notification`` have been removed"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:881
msgid "You can no longer use the ``delete, <entity_type>`` event to prevent deletion of an entity. Use the ``delete:before, <entity_type>`` event"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:882
msgid "External Files are no longer ordered by priority but will be returned in the same order as they are registered"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:883
msgid "The interface ``Friendable`` has been removed. Implemented functions in ``ElggUser`` have been moved to ``Elgg\\Traits\\Entity\\Friends``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:884
msgid "The config flag ``profile_using_custom`` is no longer available"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:885
msgid "The return value of ``elgg_create_river_item()`` will be ``false`` in the case the creation was prevented by the ``'create:before', 'river'`` event"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:886
msgid "The constant ``ELGG_PLUGIN_USER_SETTING_PREFIX`` has been removed use the helper function ``\\ElggUser::getNamespacedPluginSettingName()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:887
msgid "The constant ``ELGG_PLUGIN_INTERNAL_PREFIX`` has been removed to get the plugin priority private setting name use ``\\ElggPlugin::PRIORITY_SETTING_NAME``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:888
msgid "The class ``SiteNotificationFactory`` was removed use ``SiteNotification::factory()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:889
msgid "The class ``Elgg\\Email\\Address`` no longer throws ``Laminas\\Mail\\Exception\\InvalidArgumentException`` but now throws ``Elgg\\Exceptions\\InvalidArgumentException``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:897
msgid "``ElggPlugin::getUserSetting()`` use ``ElggUser::getPluginSetting()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:898
msgid "``ElggPlugin::setUserSetting()`` use ``ElggUser::setPluginSetting()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:903
msgid "``forward()`` use ``Elgg\\Exceptions\\HttpException`` instances or ``elgg_redirect_response()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:906
msgid "Plugin hooks"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:908
msgid "``'usersettings', 'plugin'`` use the hook ``'plugin_setting', '<entity type>'``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:916
msgid "``Elgg\\Config::getEntityTypes()`` use ``Elgg\\Config::ENTITY_TYPES`` constant"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:917
msgid "``ElggFile::setDescription()`` use ``$file->description = $new_description``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:918
msgid "``ElggGroup::addObjectToGroup()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:919
msgid "``ElggGroup::removeObjectFromGroup()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:920
msgid "``ElggPlugin::getAllUserSettings()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:921
msgid "``ElggPlugin::getDependencyReport()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:922
msgid "``ElggPlugin::getError()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:923
msgid "``ElggPlugin::unsetAllUserSettings()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:924
msgid "``ElggPlugin::unsetAllUserAndPluginSettings()`` use ``ElggPlugin::unsetAllEntityAndPluginSettings()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:925
msgid "``ElggWidget::getContext()`` use ``$entity->context``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:926
msgid "``ElggWidget::setContext()`` use ``$entity->context = $context``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:927
msgid "``Elgg\\Notifications\\NotificationsService::getDeprecatedHandler()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:928
msgid "``Elgg\\Notifications\\NotificationsService::getMethodsAsDeprecatedGlobal()`` use ``elgg_get_notification_methods()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:929
msgid "``Elgg\\Notifications\\NotificationsService::registerDeprecatedHandler()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:930
msgid "``Elgg\\Notifications\\NotificationsService::setDeprecatedNotificationSubject()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:931
msgid "``Elgg\\Email::getRecipient()`` use ``Elgg\\Email::getTo()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:932
msgid "``Elgg\\Email::setRecipient()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:933
msgid "``Elgg\\Entity::getLocation()`` use ``$entity->location``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:934
msgid "``Elgg\\Entity::setLocation()`` use ``$entity->location = $location``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:939
msgid "``access_get_show_hidden_status()`` use ``elgg()->session->getDisabledEntityVisibility()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:940
msgid "``diagnostics_md5_dir()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:941
msgid "``elgg_add_subscription()`` use ``\\ElggEntity::addSubscription()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:942
msgid "``elgg_get_available_languages()`` use ``elgg()->translator->getAvailableLanguages()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:943
msgid "``elgg_get_all_plugin_user_settings()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:944
msgid "``elgg_get_entities_from_plugin_user_settings()`` use ``elgg_get_entities()`` with private settings parameters and prefix your setting name with ``plugin:user_setting:``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:945
msgid "``elgg_get_filter_tabs()`` use menu hooks on ``'register', 'menu:filter:<filter_id>'``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:946
msgid "``elgg_get_loaded_css()`` use ``elgg_get_loaded_external_files('css', 'head')``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:947
msgid "``elgg_get_loaded_js()`` use ``elgg_get_loaded_external_files('js', $location)``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:948
msgid "``elgg_get_system_messages()`` use ``elgg()->system_messages->loadRegisters()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:949
msgid "``elgg_prepend_css_urls()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:950
msgid "``elgg_remove_subscription()`` use ``\\ElggEntity::removeSubscription()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:951
msgid "``elgg_set_plugin_setting()`` use ``$plugin->setSetting($name, $value)``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:952
msgid "``elgg_set_plugin_user_setting()`` use ``ElggUser::setPluginSetting()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:953
msgid "``elgg_set_system_messages()`` use ``elgg()->system_messages->saveRegisters()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:954
msgid "``elgg_unset_plugin_setting()`` use ``$plugin->unsetSetting($name)``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:955
msgid "``elgg_unset_plugin_user_setting()`` use ``ElggUser::removePluginSetting()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:956
msgid "``get_language_completeness()``  use ``elgg()->translator->getLanguageCompleteness()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:957
msgid "``get_installed_translations()``  use ``elgg()->translator->getInstalledTranslations()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:958
msgid "``group_access_options()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:959
msgid "``pages_is_page()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:960
msgid "``system_log_get_log()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:961
msgid "``system_log_get_log_entry()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:962
msgid "``system_log_get_object_from_log_entry()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:963
msgid "``system_log_get_seconds_in_period()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:964
msgid "``system_log_archive_log()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:965
msgid "``system_log_browser_delete_log()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:966
msgid "``thewire_get_parent()`` use ``\\ElggWire::getParent()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:967
msgid "``validate_email_address()`` use ``elgg()->accounts->assertValidEmail()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:968
msgid "``validate_password()`` use ``elgg()->accounts->assertValidPassword()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:969
msgid "``validate_username()`` use ``elgg()->accounts->assertValidUsername()``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:972
msgid "Removed views / resources"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:974
msgid "``admin/develop_tools/inspect/webservices``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:975
msgid "``elgg/thewire.js``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:976
msgid "``input/urlshortener``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:977
msgid "``messages/js`` moved to ``forms/messages/process.js``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:978
msgid "``navigation/menu/elements/item_deps`` the functionality has been merged into ``navigation/menu/elements/item``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:979
msgid "``object/plugin/elements/contributors``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:980
msgid "``notifications/groups``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:981
msgid "``notifications/personal`` use ``notifications/settings`` or ``notifications/users``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:982
msgid "``notifications/settings/personal`` moved to ``notifications/settings/records``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:983
msgid "``notifications/settings/collections``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:984
msgid "``notifications/settings/other`` extend ``notifications/settings/records``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:985
msgid "``notifications/subscriptions/groups`` use ``forms/notifications/subscriptions/groups``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:986
msgid "``notifications/subscriptions/users`` use ``forms/notifications/subscriptions/users``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:987
msgid "``resources/comments/view`` use ``\\Elgg\\Controllers\\CommentEntityRedirector``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:988
msgid "``resources/river`` use ``resources/activity/all`` or ``resources/activity/owner`` or ``resources/activity/friends``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:989
msgid "``reportedcontent/admin_css``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:990
msgid "``thewire/previous``"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:993
msgid "Removed hooks / events"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:995
msgid "Event ``created, river`` has been removed. Use the ``create:after, river`` event."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:996
msgid "Hook ``creating, river`` has been removed. Use the ``create:before, river`` event if you want to block the creation of a river item."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:997
msgid "Hook ``filter_tabs, <context>`` has been removed. Use the ``register, menu:filter:<filter_id>`` hook"
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:998
msgid "Hook ``output, ajax`` has been removed. Use the ``ajax_response`` hook if you want to influence the results."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:999
msgid "Hook ``reportedcontent:add`` has been removed. Use the ``create, object`` event to prevent creation."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:1000
msgid "Hook ``reportedcontent:archive`` has been removed. Use the ``permissions_check, object`` hook."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:1001
msgid "Hook ``reportedcontent:delete`` has been removed. Use the ``delete, object`` event to prevent deletion."
msgstr ""

#: ../../appendix/upgrade-notes/3.x-to-4.0.rst:1006
msgid "The action ``reportedcontent/delete`` has been replaced with a generic entity delete action"
msgstr ""

