Elgg 2.3.0 Release Candidate

Elgg 2.3.0 RC1 is released and is available for early testers. Elgg core team decided to make this pre-release due to a large number of new features that have been added to core, and we want to ensure that developers and site owners are given enough time to hunt down and eliminate any potential issues.

Please note that PHP 5.5 has reached end of life in July and in order to nudge site owners to stay secure, Elgg 2.3.0 will require PHP 5.6 for new installations. Existing sites may be able to continue using PHP 5.5, but we will not be able to ensure full backwards compatibility due to a number of our vendor libraries evolving towards higher PHP versions.

Elgg 2.3.0 comes with a number of exciting new features:

  • New API for handling HTTP responses, which embraces the power of Symfony's HTTP foundation
  • Revamped notifications service, which makes it easier to collaborate on instant and subscription notifications
  • New administration and site security utilities
  • Improved usability of forms, including API for rendering fields and fieldsets, as well as deferred form footer rendering that make form views extendable
  • New file upload and image manipulation services
  • A number of client site improvements, including AJAX tabs component, more robust CKEditor
  • A number of new tests, bug fixes and other nifty features

With this release we were able to considerably improve our static test coverage and will continue working towards standardizing most of the legacy APIs and making them more testable. The core team has discussed a possibility of making an Elgg 3.0 release in the first quarter of 2017: our current focus is a slick new user interface and improved performance coupled with a database schema overhaul.


  • Ismayil Khayredinov (74)
  • Steve Clay (34)
  • Jeroen Dalsem (18)
  • jdalsem (8)
  • iionly (6)
  • Jerôme Bakker (3)
  • Ismayil Khayredinov (2)
  • Brett Profitt (1)
  • Matt Beckett (1)
  • Pete L (1)
  • V. Lehkonen (1)


  • account: login history is added to account statistics page (3e30ab26)
  • admin:
    • add memcache stats to server info page (6b19ced0)
    • move plugin toggle buttons to title menu (5d75f6db)
    • single plugin toggles done via Ajax (c46ccb80)
    • makes it easier to navigate plugin dependencies (4caf7769)
  • api: allow convenience methods to return ElggBatch as a result (5618d3c5, closes #6676)
  • ckeditor: better control over ckeditor initialization and behavior (57ededb0, closes #9391)
  • comments: entities can now inherit canComment permissions (b1614671)
  • components: add inline tabs component with ajax support (4de1cd28)
  • composer: brings back composer.lock (0b07d9a8, closes #9430)
  • core: Use input/number input view for default_limit input field in basic settings form (3c6bce2d)
  • css:
    • input/button with disabled state is now styled as disabled (3aec56a6)
    • elgg-state-disabled class now is applied to all buttons (bb70a507)
  • developers:
    • explorer entity information in developer tools (251f4067)
    • add object full listing to theme sandbox (85b67b90)
    • add object summary listing view to theme sandbox (878dbc8e)
    • add custom attributes to image block sandbox view (92d86a67)
  • entities: container logic is now checked before permissions (c87dc7d1, closes #9695)
  • events: added elgg_clear_event_handlers function (110497b7)
  • export: now triggers a generic to:object hook for annotation and metadata (5adc6771)
  • files: adds new API for handling file uploads (09499677, closes #7778#9876#9934)
  • forms:
    • replaces elgg_view_input, adds support for fieldsets (100bd412)
    • update login form to use new forms API (ef69171c)
    • update registration form to use new forms API (5eb8ce25)
    • adds input/number view for numeric values input fields (b7960635)
    • makes form views extendable by deferring footer rendering (bbb392e0)
  • groups: break down groups/all page in smaller views (c6de14c2)
  • http:
    • no longer sends HTTP headers to CLI requests (d95a5101)
    • now triggers before and after events for HTTP responses (42839af3)
    • adds API for handling HTTP responses (bfc860c8)
    • adds a service for signing and validating URLs (15071018, closes #9884)
  • images: adds a new image manipulation service (9dcd7fb2)
  • js: add support for inline popup modules (e467a755)
  • lists: list item views are now aware of their position in the list (9dab204b)
  • menus:
    • elgg_view_menu() can now render menus with custom views (1cd65c60)
    • elgg_view_menu() now accepts an array of menu items (7a8dad2b)
  • notifications:
    • refactor notification system for improved usability (11dd562c)
    • make it easier to alter core instant notifications (094d63b2)
  • passwords: strengthen change password link with a HMAC signature (6ad8ff94)
  • php: Require PHP 5.6+ (e35f3ed0)
  • plugins: adds static config file for plugins (8bf14546, closes #5947)
  • profile: profile fields can contain more than 250 characters (2b6a7497)
  • river: Adds hook-based permissions for river item delete action (364d7e94, closes #8936)
  • tests: make it easier to bootstrap PHPUnit (c3ea0173)
  • users: unifies login and registration URL generation (9e499f6a, closes #9896)
  • uservalidationbyemail: validation URLs are now signed with a HMAC key (111f72d8)
  • view: function to get the extensions for a view (a0f39b3e, closes #9921)
  • views:
    • added elgg_parse_emails to output/longtext (c1a600ca, closes #7052)
    • more flexible output/longtext view (6229f811)
    • lists can be rendered as tables (d941fa83, closes #7684#9629)
    • adds function for extracting $vars['class'] more cleanly (b0dab038)
    • object summary listing now accepts an icon (09649f57)
    • image block wrapper attributes can now be passed with $vars (8f6a5753)
    • improves usability of object listing views (8ae5b1da)
  • walledgarden: convert walled garden JS to AMD (890b4a77)
  • widgets: added a generic view for selecting 'number to display' (b845343f)


  • db: no longer queries DB when entity access is predictable (5c93f07d)


Bug Fixes

  • cli: Application::run() returns a value for PHP CLI server to serve static files (a4fa2749)
  • comments: comment redirector URL no longer contain double fragments (37f578e4)
  • discussions: reply form is now only rendered when container permissions are satisfied (6ac48700)
  • entities: classnames for entity subtypes can be up to 255 chars (45d7abbd, closes #6802)
  • icons: cropping mode is now determined by actual cropping coords (5e4742e8)
  • output: switch to Misd\Linkify library for parsing urls in text (e2baa855)
  • pages: do not show duplicate title on full view of a page (a049586a)


  • events: deprecates the pagesetup, system event (cf77fc07)
  • metadata: metadata access control is deprecated (a9523d97)



My involvement with Elgg has come to an end. Please do not send me support requests.

Latest comments