Elgg 3.1 released

It has been more than 3 months ago since we released Elgg 3.0. That means it is time for a new feature release. You can find it in the download section.

PHP 7.1 required

PHP 7.0 has reached end-of-life January 2019. We would like people to use a secure and supported version of PHP and therefore we increased the requirement to 7.1.

This Elgg release has seen a lot of changes that were on the todo list for a long time. You can find the full release notes below. Here are some noteworthy changes:

For users:

  • The navigation tree of pages in the Pages plugin has been revamped to re-use existing styling and now is limited to the navigation tree of the content you are viewing
  • A new icon cropper has been added. You can see it when you update your avatar. Expect to see it used in more locations in the future
  • The text editor (CKeditor) has been updated to a newer version
  • Changing your email now requires you to validate your new address

For site administrators:

  • The user management has some improvements
  • There is more information (and also tips/suggestions/warnings) available about the system, performance and security
  • Extra security settings have been added

For developers:

  • More HTML5 input views have been added
  • Plugin hooks and events can be registered in elgg-plugin.php
  • Plugin route config options have been added (deprecated route, required plugins)
  • A lot of old/legacy ways of doing things have been deprecated


Release notes for Elgg 3.1


  • Jeroen Dalsem (81)
  • Jerôme Bakker (23)
  • Rohit Gupta (9)
  • Ismayil Khayredinov (1)
  • Joe Bordes (1)


  • admin:
    • added requirements information about database server (d9c92dab)
    • add email change option to unvalidated users (f09ba7ee)
    • add server requirements page (4e5cd057)
    • moved Elgg release to page header (f55d0f1d)
    • add security recommendations page (e129b307)
    • add performance overview page (f1321a2f)
    • admin user lists now have the ability to search by email (c34789f4)
    • add admins directly from the administrators page (78027dda)
    • basic and advanced settings are merged into one form (aedaa0e1)
  • ckeditor:
    • updated to ckeditor v4.12.x (33b44604)
    • updated ckeditor version to 4.11.x (d6061b3f)
  • core:
    • error resources now have access to the exception (fac3141e)
    • added function to convert large numbers into short form (de9d2ef8)
    • admin notices now have their own class (a627d4ef)
    • manifest.json is now a cacheable simplecache resource (ef98f420)
  • db: allow configuration of the database port number (058db755)
  • developers:
    • wrap input and output views (cafdb455)
    • display view location in view wrapping (e6ba1ecf)
    • added acl information to entity explorer (9c465a1a)
  • entities: added helper function elgg_count_entities (7e00cbc7)
  • gatekeeper: flag to validate user edit access (8becf0ea)
  • groups: support content based on type/subtype in tool module (fa897bcb)
  • icons: add icon cropper (deb5d212)
  • input: add support for more input types (048704e2)
  • menus: added menu param to set a selected menu item (74d50561)
  • notifications: Elgg\Email knows about sender and recipient (539437b0)
  • page_owner: moved page owner logic to a service (bc35cf5a)
  • pages:
    • page navigation now uses default page menu behaviour (89976121)
    • replaced treeview js and css with default menu behaviour (18be2699)
  • phinx: updated phinx version to 0.10.x (52ebe588)
  • plugins: hooks and events can be declared in elgg-plugin.php (c1cc12c4)
  • profile: new input types for custom profile fields (59c1a4ba)
  • router: add SignedRequestGatekeeper middleware (54e050a3)
  • routes:
    • added required plugins param to route config (8f4c1957)
    • added route config to mark route as deprecated (53d8f433)
  • security:
    • request confirmation on email change (53017104)
    • notify the user about a password change (8692ac32)
  • site_notifications: topbar menu item now has a unread count badge (a1d1fddc)
  • upgrades: completed upgrades are sorted by completion time (beebaecd)
  • users:
    • unify set/get/delete profile data functions (906c25b7)
    • added a site setting to allow users to change the username (3e2a476e)
  • views:
    • add additional page menu and owner block controls (5cf80c8c)
    • password inputs now set correct autocomplete behaviour (929f7bc5)
    • show_add_form view var is now supported in responses (7bd0f0da)


  • db: added some extra indexes to the entities table (0395d99b)


  • core:
    • added a spam guide (2ac20105)
    • added documentation about the usage of elgg_call (8beef28f)
    • added upgrade notices page for 3.0 to 3.x (456e4fba)

Bug Fixes

  • admin: different user counters in admin stats (73c86726)
  • core:
    • updated PHP version checks to check correct version (dbb02710)
    • elgg_call will now also restore when an error is thrown (54964f59)
  • css:
    • spacing between profile-field and widgets (a281ac45)
    • prevent jquery-ui bug related to sortables (fa840b53)
  • discussions: no longer call unavailable sidebar views (afe83c96)
  • forms: added missing entity info in widget access input (8f1770d1)
  • pages:
    • no longer register page_nav menu if there is just one item (a7f7359d)
    • removed the pages navigation sidebar from some resources (08f3df26)
    • no longer show history sidebar on revision page (3c91022d)
  • system_log: correctly fetch non default object classes (3f0a10d4)


  • access:
    • elgg_set_ignore_access is deprecated (6d0d99ec)
    • access_show_hidden_entities is deprecated (33b3e5ac)
  • actions: replaced several delete actions with entity/delete (192d01ac)
  • core:
    • legacy hook/event callback arguments are deprecated (563f4492)
    • various unused lib functions have been deprecated (792bd362)
    • elgg_instanceof is now deprecated (2602c801)
    • replaced delete_directory with elgg_delete_directory (f61471dc)
  • css: use elgg_require_css instead of elgg_register_css (b0c014f3)
  • js: use elgg_require_js instead of elgg_register_js (e3d4a13c)
  • page_owner: don't set page_owner via elgg_get_page_owner_guid (b1089824)
  • plugins:
    • usage of the views.php file in plugins is deprecated (95592b04)
    • no longer use the (de)activate.php plugin files (d89c2474)
    • plugin screenshots are no longer supported (0f7fe379)
  • tests: the simpletest cli command is deprecated (f17a8cd9)
  • thewire: the route previous:object:thewire is now deprecated (677d9129)

Jeroen Dalsem

Owner of ColdTrick IT Solutions, developing social networking sites for the dutch market

Latest comments