Elgg v3.0.0-beta.1 Release Notes

Release Date: 2018-01-29 // over 6 years ago
  • Contributors

    • Jeroen Dalsem (268)
    • Ismayil Khayredinov (180)
    • JerΓ΄me Bakker (133)
    • Steve Clay (123)
    • jdalsem (56)
    • Juho Jaakkola (7)
    • Ismayil Khayredinov (3)
    • iionly (2)
    • Juho Jaakkola (1)
    • Phanoix (1)
    • Wouter van Os (1)
    • Yaco (1)
    • piet0024 (1)
    • raghukul01 (1)
    • sebz (1)

    πŸ”‹ Features

    • access:
    • account: allow admins to change usernames of users (2bcecfd0)
    • acl: added subtype to access collections (450aaa4c)
    • actions:
      • added $CONFIG->action_time_limit to set a custom execution timeout for all actions #7204 (3682a3c6)
      • user login action now is ajaxed (82d40345)
      • added the ability to configure actions in elgg-plugin.php (299df3cd)
    • activity:
      • moved group related pages into the activity plugin (f8f2ebd3)
      • options for river filter can now be provided as view_var (04888ae4, closes #9918)
    • admin:
    • blog:
      • use best practices in rendering resources (55f8d95b)
      • archive sidebar is now using a menu to show archive links (06e7c499)
    • bookmarks: update bookmarks plugin to comply with best practices (49e4c7ff)
    • cache:
    • ckeditor:
      • updated to full ckeditor v4.7.3 using composer (dbedc19b)
      • changed style of editor to be more minimalistic (5c19b59e)
    • cli:
      • allow to set dbhost with CLI installer (b452f750)
      • adds elgg-cli seed and unseed commands (ded471f1)
      • adds elgg-cli command line tool (65007269, closes #6612)
    • collections: rewrite friends collections, friendspicker (ec40d1a5, closes #9092, #9026)
    • comments:
      • comments are configurable per entity (c407af05)
      • submitting comments is now ajaxed (c875b2ce)
      • offloaded comment creation notification (78a60a62)
    • components: a menu can now be added to module header (cd7ea08a)
    • core:
      • only show language selection if more than 1 option (4eb7ab36)
      • elgg_get_config supports a default value if config not set (6693b8ad)
      • added config to disable RSS feeds and Elgg branding (e6ae6056)
      • normalized system messages using elgg_view_message (1c64d898)
      • added API for temporary ElggFile (89071ffe)
      • orientation of uploaded images will be fixed if possible (a80306f4)
      • added the ability to use Imagick as the image processor (a6629ec3)
      • add phpinfo page (e8e45afa)
      • autoregister simplecache views for elgg_load_js/css (57c29b6e)
      • reworked the walledgarden layout (d73e59fa)
    • cron: adds cron service (8941965d)
    • css:
      • switch to using variables in css files (d189a199)
      • CSS is pre-processed by css-crush, all /cache output is filterable (e5ac8842, closes #10625)
    • dashboard: only show blurb if there are no widgets (8a45cee7)
    • database: plugins can now register their own database seeds (e167092d, closes #11129)
    • db:
      • rewrite metadata and annotation getters with QueryBuilder (74174e7f)
      • rewrite elgg_get_entities* using QueryBuilder (1b80a963, closes #5071, #6798)
      • database migrations are now managed by phinx (55236d98, closes #7947, #5442)
      • new installations use utf8mb4 and longtext columns (5e75e7cf, closes #10863)
    • developers:
      • add route inspector (38372e26)
      • theme sandbox now users core layout elements (b2af689a)
      • added settings to block or forward email notifications (#11265) (5063d9db)
    • discussion: replies have been moved to comments (9549d7e8)
    • discussions: update reply form to latest forms API (98a6aaec)
    • email:
      • email address helper class for formatting (972a8906)
      • support e-mail attachments (f6f9a025)
      • more granular API for handling system emails (43709e79)
      • adds a plugin hook to alter the contents of an email (c5642515)
      • recipient and sender email address formatted (9c48ccc0)
    • entities: denormalize entity subtypes (ed318565)
    • events: Adds new handler API available for events and hooks (5f334783)
    • file:
      • remove elgg:file library (c54b88a6)
      • default icon sizes are now available for new image thumbs (cb19affe)
    • files:
      • add download permission checks (fb8c3e04)
      • update file plugin to new file serving API (1e736aeb)
    • forms:
      • fields can now render custom html (171e1b32, closes #10090)
      • allow specifying a custom view for fields (ecfe4ac7)
      • pass all vars prefixed with # to field view (99bb2d07)
      • add time input, support DateTime values (25ddb36c, closes #11227, #7476, #4506)
      • form_vars and body_vars are now available in the footer (b823e609)
      • input/radio and input/checkboxes support options_values (908972c0, closes #6043, #3483)
      • forms without a body will no longer output a form element (d29ce0b3, closes #8459)
      • input/select now support optgroups (10bb273a)
      • input/checkbox view support 'switch' styling (9be6f53f)
      • input/longtext now support editor variations (5f3d6b05)
      • buttons are now rendered with a tag (fc680658)
    • gatekeeper: implement stricter banned user checks (d0deb646)
    • groups:
      • improved group title menu and reorganized group stats (d611eeb5)
      • clearer join/owner status and less prominent leave button (41fb03ea, closes #8872)
      • added topbar menu item for pending invitations (82c60c99)
      • added generic ElggGroup functions for tool availability (246db29f)
      • consolidate API for joining groups (8d57dfd3, closes #10659)
      • allow group invitations to be resend (7206894b)
      • validate container permissions when creating a new group (8a3a8787)
      • group metadata ownership in now in sync with group ownership (62a14f27)
      • group ACL name is now always in sync with the group name (e758ef62)
      • transfer icon files to a new location (adbc5198, closes #4683)
      • update group listings to new layout API (22658ee5)
    • htmlawed:
      • now using htmlawed v1.2 with html5 support (43cf04cd)
      • Expose plugin hook for spec parameter (9aebac50)
    • i18n:
      • added a function to retrieve available languages (8f9c1092)
      • core triggers an event after translations are reloaded (56812eff, closes #8119)
    • icons:
      • large icons are now default upscaled and square (86c3a8ee)
      • lazy generate entity icons on demand (29e92b67)
      • make it easier to replace default entity icons (b1efd68f)
    • input:
      • show default help text about upload limit on input/file (a15a7ecf)
      • Adds function to get HTML-escaped input (f1819935)
    • install: installation changes (57ac75ec, closes #5871)
    • js:
      • added ability to register toggleable menu items server side (e974f3a7)
      • all core js is now part of the views system (761a4bf5)
      • lightbox href calls now uses elgg/Ajax (888969b7)
    • labels: adopt entity and collection labelling convention (da1c1054)
    • layout:
      • alt sidebar width is now fluid (47a5e79a)
      • alt sidebar no longer depends on sidebar (d20f2d9a)
    • layouts: decompose and centralize layout views (2e52ed91)
    • lib:
    • lightbox: add responsive imageless lightbox theme (02b4a142)
    • likes:
      • like annotation access is no longer linked to entity access (ab7336b2)
      • show likes in river for logged out users (10ef9b53, closes #10897)
      • updates are page-wide and can come from any ajax response (96207369, closes #9698)
    • listing: move access info from menu to byline (9f31969b)
    • lists: list component view now handles all data types (7b7d3349)
    • members:
      • added admin link to create new user on members listing (1e6b6a68)
      • added members tabs to member search page (27274acd)
      • use filter menu and resource views for the pages (f4b780ab)
    • menus:
      • set default menu order to priority (8b355878)
      • standardized usage of entity menu and added a social menu (f7e881db)
      • added icons to user hover menu items (ffa267d0)
      • consolidate child menu behavior and UI (24218e39)
      • anchors now support icons and badges (0af43627)
    • messages: message presentation uses standard summary/full views (87a8e834)
    • messaging: improves admin notices and system messages (28d297f1, closes #10917)
    • navigation:
      • added view vars to toggle entity/social menu (07b87da0)
      • added icon to generic add title menu item (239f65ee)
      • breadcrumbs is now a menu (b6ba0435)
    • notifications:
      • target URLs for notifications are now set explicitly (1b73ed89)
      • rewrite notification settings interface (22afc923)
    • output:
      • passing href false sets href to javascript:void(0) (951d5239)
      • inline rendering of tags (12af7270)
    • pages:
      • use best practices in pages plugin (3040b569)
      • migrate page_top subtype into pag (e88b5707)
      • replaces inline js with an AMD module (362855d6)
      • some improvements to resource and form views (cb4f2733)
      • Combine search results output of top pages and subpages (109923ef)
    • permissions: permissions for admin users or with ignored access are now universal (d5c9fdf7, closes #7999)
    • php: require PHP 7.0 (7aa2b370)
    • πŸ”Œ plugins:
      • use elgg-plugin for entity class and search registration (4e088246)
      • widgets can be added using elgg-plugin.php (a26c5d5a, closes #10348)
      • set default (user)plugin settings in elgg-plugin.php (a8779635)
      • autoload plugin composer autoloader (ff63f9b8)
      • plugins no longer require a start file (8a8a0283)
      • moves UI of friends and activity to plugins (1a923804)
    • profile:
    • river:
      • remove type/subtype and access columns from river table (861c20d3, closes #11346)
      • creating a river item defaults subject_guid to current user (6426cdd0)
      • elgg_view_river_item has a fallback logic for view (1c91f716)
      • elgg_delete_river checks permissions and fires events (892cbee3)
    • router: adds routing based on URL templates (9fbd4a84, closes #4820)
    • routes:
      • adds gatekeeper service (dbff5bc8)
      • use named routes in web_services (f7a27b62)
      • use named routes in embed (bf333ee6)
      • use named routes in uservalidationbyemail (065e80fc)
      • use named routes in thewire (cd1cb11f)
      • use named routes in tagcload (10d6d5a4)
      • use named routes in site_notifications (b69e5cbe)
      • use named routes in search (6f085cd8)
      • use named routes in pages (3abd9cd2)
      • use named routes for notifications (60daa1d4)
      • use named routes for messages (6073279d)
      • use named routes in messageboard (11ee1ed6)
      • use named routes in members (e7d970a9)
      • use named routes in invitefriends (c07ddf27)
      • use named routes in groups (adc4d1ab)
      • use named routes in friends_collections (ba3880ea)
      • use named routes in friends (821b4a29)
      • use named routes in expages (63c5d7a8)
      • use named routes in developers (486f0906)
      • use named routes in dashboard (effdd372)
      • use named routes in bookmarks (64075726)
      • add utilities for setting breadcrumbs (18e9aecc, closes #10818)
      • use named routes in core (f04c3925, closes #9126)
    • search:
    • πŸ”’ security: add security settings page (a7ab8ecb)
    • site: added class function to get site email address (fe005ba5)
    • standards:
      • apply new coding standards to entire code base (5a63b3ca)
      • update to new Elgg coding standards (582e0458, closes #10825)
    • system_log: move system log to its own plugin (39401bee)
    • βœ… tests:
      • travis now also test on PHP 7.2 (5089dcb7)
      • migrate simpletest suite to phpunit integration tests (0c2c756f)
      • adds integration and plugin testing bootstrap (471de772)
      • adds elgg-cli simpletest command (7b2d459b)
    • theme:
    • πŸ’» ui: new layout of user hover menu contents (6fe6b2ad)
    • ⬆️ upgrades: Introduces a new upgrading feature (6e221f0e)
    • πŸ‘‰ users:
      • added generic unvalidated users page/actions (faa8fe1c)
      • added a default page handler for viewing users (962b3a4a)
      • trigger events for user (in)validation (3b4fcbb2, closes #10576)
    • vendor: jquery-treeview is now bundled in core (a3cf8272)
    • views:
      • output/date & output/time are now wrapped in a time element (3d348429, closes #11576)
      • friendly time switches to date format after a few days (85abca36, closes #9897)
      • object/elements/imprint/time now support a href on the time (7db48117)
      • added a default hook callback to prevent view output (3ede3073)
      • view extensions are handled as normal views (f35b6118)
      • added a generic entity navigation view for full views (ccb9a74f)
      • added option to hide the owner_block menu (bb7b31c6)
      • a more flexible extendable html page shell (550aeb89)
      • make layout header responsive (f3109ec4)
      • add attachments and responses to full object listing (7808db76)
      • input/password only populates value if explicitely set (cde67a2c)
    • walledgarden: router now respects walled garden policies (e71784d2, closes #7235, #9881)
    • widgets:
      • using input/number to select number of displayed items in widget edit views (a60da40a)
      • widget titles are linkable (8a850486)
      • adding widgets now opens in a lightbox with more info (dc1e84fe)

    🐎 Performance

    • config: removes config "siteemail" value (05184ae2, closes #9096)
    • entities: no count query if no pagination in elgg_list_entities (dae5566a, closes #9403)
    • πŸ“‡ metadata: memcache most metadata (01074610)

    πŸ“š Documentation

    • i18n:
      • Adds instructions for setting up Transifex for new major Elgg version (803bd5ad)
      • Adds instructions for pulling translations from Transifex (a18f24a8)
    • πŸ”Œ plugins: describe the steps to move a plugin to own repo (9b3a8ee7)

    πŸ› Bug Fixes

    • cache: remove trailing slashes in cache symlink paths (1e05f24e)
    • ckeditor: fixes basepath issues on some systems (a5097efc, closes #10724)
    • core:
      • get_registered_entity_types now returns empty array for type (cc14cb0e)
      • clear entity temp_metadata before setting a new value (8bd1b296)
      • unsetting metadata from unsaved entity now works (67203cc1)
      • elgg_http_add_url_query_elements keeps '//' protocol intact (c53d5c6d, closes #9874)
      • error pages respect walled garden pageshell (0312852a)
      • favicon.ico page handler now serves an icon (d8ce2235)
      • gatekeepers now forward with a 403 reason (94ca91f2)
    • cron:
      • cron/run endpoint calls intervals reliably (9c37d927)
      • log correct completed time in cron monitor (e4a66193)
    • css: elgg-body elements no longer clip form and positioned elements (afb99a20, closes #5197)
    • db: add missing subtype index to river table (61747836, closes #10896)
    • developers: exclude view wrapping for results from the cachehandler (d8ff5c39)
    • discussions: fix comments URL fragment (c2a781f2)
    • embed: correct replace icon size with a non thumbnail size (f0616d8e)
    • entities: memcache no longer returns disabled entities (78d20ac2, closes #10970)
    • expages: don't log notice if pages aren't created (cdc28968)
    • file: display owner icon in file summary of the full listing (42898271)
    • forms: input/checkbox now applies disabled to hidden default value (d3ea2025)
    • groups: ensure that user has sufficient permissions to update group_acl (49fed9b6)
    • http: Use Symfony to parse PATH_INFO (822696b9, closes #10608)
    • i18n:
      • fallback to site language before English (e9f5d9d3)
      • set language via GET var works for client-side translation (ee023ef1)
    • input: better handling of invalid UTF-8 characters (2283a289, closes #5790)
    • install: don't block install if can't make internal requests (591c2806)
    • installer:
      • sanitize dataroot before writing to settings file (0eeb141d)
      • fix installer and add tests (baa7040d, closes #11433)
    • js:
      • popup showing in wrong location in Opera (164ae44c, closes #6452)
      • hook trigger calls handlers in expected priority order (1b0cc64d)
    • menu: load AMD dependencies for the user_hover menu on load (39d2ef20)
    • menus:
      • allow rendering entity menu without a dropdown (ff791563)
      • menu items will always output an anchor (cba37560)
      • provide admin link in case JS fails (948e3bd6)
    • πŸ“‡ metadata: warn devs when saving data longer than column holds (eef89d26, closes #10861)
    • navigation:
      • assume default filter if filter value is set without id (38df55f0)
      • correct container set on title menu button (77c8f001)
    • notifications:
      • pass correct params to Email class (a5ef05ad)
      • fixes banned user notification language/name (065b8496)
      • no notifications about private content (075d2615)
    • πŸ”Œ plugins:
      • load elgg-plugin.php after classes and translations (0397c91b)
      • start.php is now only required once, other plugin files included as requested (875ff66c)
      • unfreeze plugin list after (de)activate no plugins (939adff4)
    • river: populate type and subtype of the river object (101d0b74)
    • search:
      • validate comment ownership in format hook (b39bbc2c)
      • search fields are now reset for typeless search (4f305de0, closes #11483)
    • upload: only prepare files if uploaded (3c6c8f76)
    • πŸ‘‰ uservalidationbyemail: email sent page respects walledgarden shell (b972b0d2)
    • views:
      • clean up of class attribute usage (6b3edaf2, closes #11468)
      • do not wrap tabs in a heading (fb80a68a, closes #10764)
      • output/tag shows text if there is no href present (e7dfa2a0)
      • owner links in by line now always point to user (2a70902b)

    πŸ—„ Deprecations

    • breadcrumbs: breadcrumbs now use href instead of link (6e7235a2, closes #10345)
    • core:
      • the use of the function create_metadata is deprecated (a60ed182)
      • the use of the update_metadata function is deprecated (fb97d13a)
      • removed the site_guid entity attribute from datamodel (45b2dcc4)
    • πŸ“‡ metadata: removed independent metadata functions (#11086) (d82b9e1d, closes #11075)
    • πŸ”Œ plugins: no longer use getFriendlyName in ElggPlugin (69976069)

    πŸ’₯ Breaking Changes

    • πŸ”Œ The legacy_urls plugin is no comes bundled with Elgg, if you need it load it as a composer dependency.

    πŸ›  fixes #11097 (a3cf1141)

    • 🚚 The pagehandler for reportedcontent has been removed in favour of using an Ajax form view. This can cause problems when loading JS is slow. (8edbceb1)
    • ⬇️ dropped the expages page handler (63c5d7a8)
    • If you extended the usersettings form by extending the view ⚑️ 'forms/account/save' you should update to extend 'forms/usersettings/save' (5c0b8e5e)
    • The unvalidated users page and some actions have been 🚚 moved to core and are no longer present in the uservalidationbyemail πŸ”Œ plugin.

    πŸ›  fixes #4561 (faa8fe1c)

    • 🚚 The elgg:bookmarks PHP library and bookmarklet GIF were removed. (5d4d66f4)
    • reverse_order_by in $options is ignored. (f1555502)
    • HTML of system messages have been changed so they are reusable as inline message boxes. (1c64d898)
    • The groups specific function 'groups_get_group_tool_options' has been replaced with the generic 'elgg_get_group_tool_options' function. (246db29f)
    • ⚑️ The view object/widget/edit/num_display now uses an input/number field instead of an input/select field to set the number of displayed items. Widget edit views might need to be updated if a custom max number (higher than default_limit or 20) is used or if a custom stepsize of selectable item numbers is wanted. (a60da40a)
    • 🚚 The subtype 'page_top' has been removed from the pages plugin. All top pages are migrated to the subtype 'page'. Related views and helper functions have been dropped.

    πŸ›  fixes: #11329 (e88b5707)

    • πŸ“‡ The group metadata has been removed in favor of a access collection subtype. (450aaa4c)
    • ⬆️ use the upgrade, system event instead

    ref: #3655 (eeb21271)

    • πŸ“‡ The create_metadata_from_array function is no longer available. Use your πŸ“‡ own foreach loop to create multiple metadata fields. (caf22201)
    • ⚑️ The users_entity table no longer exists. Update your queries if needed. (3d5901a4)
    • The elgg_get_entities_from_attributes function is no longer usable to get entities based on attributes. (2483b670)
    • ⚑️ The objects_entity table no longer exists. Update your queries if needed. (19926b38)
    • ⚑️ The groups_entity table no longer exists. Update your queries if needed. (67eaae29)
    • icons are no longer generated buring upload, but on demand. On demand generated icons are based on master not on an original file. (29e92b67)
    • ⚑️ The sites_entity table no longer exists. Update your queries if needed. (74663893)
    • The file_delete function is no longer available. Take a look at ElggFile->deleteIcon for an alternative. (55352578)
    • Switch to PSR-0 registration of classes or use composer autoload to register classes.

    πŸ›  Fixes #9753 (5b8beafa)

    • The groups:my_status menu is no longer available. Register your menu items somewhere else. (68e4eec7)
    • 🚚 The twitter_api plugin has been moved to a separate repository which can πŸ”Œ be found at https://github.com/Elgg/twitter_api The plugin will no longer be actively maintained by the Elgg core team.

    πŸ›  fixes: #5927 (a1c5a1bf)

    • Admin menu items and some admin menu item views are no longer present or ⚑️ have been moved to other locations. Update usage accordingly. (0809709c)
    • The extras menu is no longer used. Register your menu items to other menus.

    πŸ›  Fixes #7729 πŸ›  Fixes #8718 (b62d6247)

    • The profile/status view is no longer called. You can extend/prepend the profile/fields view if you need a similar feature. Thewire is no longer βž• adding the last wirepost to the profile. A wire widget could offer similar features. (47741728)
    • As widget edit forms could not be on the current page it is a bad practice to rely on widget config values to be always available. This PR corrects this behaviour. If you override core widget content views you ⚑️ may need to update these views.

    πŸ›  Fixes #10244 (98c96b60)

    • Instead of a span with class elgg-non-link now a regular anchor will be outputted with the class elgg-non-link (cba37560)
    • $CONFIG->input is no longer set or read. Use set_input/get_input. (1e7192b8)
    • elgg_get_admin_notices() accepts only an array. (28d297f1)
    • πŸ”Œ Plugins can no longer rely on Elgg to "hide" metadata in queries. All metadata is πŸ“‡ assumed to be public. Plugins that read user profile fields in metadata will see πŸ“‡ all fields every time, and plugins that write user profile fields in metadata will πŸ‘€ have no effect. These plugins should instead access fields via annotations; see the profile edit actions and forms for reference. (2567640d)
    • View river/item is removed. Use elgg_view_river_item(). (313585a0)
    • 0️⃣ .elgg-body 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.

    Elements matching .elgg-module, .elgg-head, and .elgg-menu-hover no longer hide overflowing content. and those matching .elgg-image, #profile-owner-block, and elgg-sidebar (inside layouts) no longer float, but are now positioned with flexbox. (afb99a20)

    • Entities no longer have an isFullyLoaded() method. (231be2aa)
    • πŸ‘‰ User icons no longer include a hover-menu icon that's displayed on mouseover. The click event is bound to the surrounding anchor. (7601f863)
    • elgg_format_url() has been removed. Use elgg_format_element() or the "output/text" view for HTML escaping. (db746843)
    • The view invitefriends/form no longer exists (d322bbb6)
    • πŸ“‡ Metadata and annotations name and values are no longer normalized. 🚚 Metastrings related functions have been removed. (53fec72e)
    • πŸ”€ The datalists table functionality has been merged into the config table. Related datalist functions have been replace by their config equals. (adcc4974)
    • Because of the removal of the multisite concept in entities, this relationship makes no sense.

    πŸ›  Fixes #10473 (41ffbd9f)

    • πŸ‘ To be able to still provide support for MySQL 5.5 combined with InnoDB the FULLTEXT indices have been dropped. This effects how search works internally. (44d987a5)
    • This breaks a lot of site_guid related features, like all the elgg_get_entities functions. Entities will no longer have a site_guid attribute.

    ⬆️ See http://learn.elgg.org/upgrading#Elgg3.0 for more details on all the πŸ—„ deprecated features regarding this change (45b2dcc4)

    • If you were relying on group entities attribute 'username' you need to ⚑️ update your code, as this attribute will no longer be magically returned as 'group:'. (d562efbf)
    • If you rely on a class check for your content, please use the PHP instanceof type operator (ca56d46d)
    • ⬆️ This function can no longer be used. Use Elgg\Upgrade\Batch interface instead. (39455bd9)
    • Stock Elgg does not need these files. If you need them, you have to adapt the config accordingly. (1f65142e)
    • 🚚 The event login, user is removed. (461e5e76)
    • You can no longer use the system, pagesetup event (353d522a)
    • This change applies the best practice to not populate password fields. If you really need to set the value of a password field, you need to set $vars['always_empty'] to false. (cde67a2c)
    • ⬆️ htmlawed is no longer a plugin. See docs/guides/upgrading.rst. (da14997a)
    • 🚚 messageboard.js and elgg.messageboard are removed. The elgg/messageboard module is no longer inlined on every page. (4c8c7b68)
    • 🚚 likes.js and elgg.ui.likesPopupHandler are removed. The elgg/likes module is no longer inlined on every page, but is required by its menu items. (0121cee7)
    • The password and hash columns are emptied in the users_entity table 🚚 and no longer used. The attributes are removed from ElggUser. The function πŸ†• generate_new_password is also removed. (200cf6e7)
    • In elgg()->getDb() (the public DB API), method getTablePrefix() is no longer available. Read the prefix property instead. (a69ecc03)
    • Elgg no longer serves views via the endpoints js/ and css/. Use elgg_get_simplecache_url() to generate static view URLs. (6b0a4b89)
    • elgg_get_config('siteemail') no longer returns the site email address. (05184ae2)
    • πŸ”Œ $CONFIG is no longer available as a local variable inside plugin start.php files. (c2cd81d9)
    • $SESSION is removed. Use the API given by elgg_get_session() (99048a39)
    • ⚑️ If you registered a hook on the forward you need to update your code if you checked for the 'admin' and/or 'login' reason (94ca91f2)
    • To ensure your handler is called last, you must give it the highest priority of all matching handlers. To ensure your handler is called first, you must give it the lowest priority of all matching handlers. Registering with the keyword all no longer has any effect on calling order. (1b0cc64d)
    • πŸ”Œ The pages plugin no longer renders the input/write_access view. (8075fdea)
    • 0️⃣ Removes ElggFile::setFilestore, ElggFile::size, get_default_filestore, 0️⃣ set_default_filestore, ElggDiskFilestore::makeFileMatrix, and the global var $DEFAULT_FILE_STORE. (618c79d3)
    • The resources/file/download view is no longer used. (1e736aeb)