Elgg 3.0 released

Thanks to the hard work of every contributor Elgg 3.0 is here. For a brief overview of the new features have a look at the Elgg 3.0.0-rc.1 blog. Plugin developers can have a look at the upgrade notes on learn.elgg.org

You can find the Elgg 3.0 release in the download section.

Because this is a major update of Elgg some plugins might not yet be compatible with this new release, please give the plugin developers some time to update their plugins.

With the release of Elgg 3.0, Elgg 1.12 has reached it's end-of-life and will no longer receive any updates. A detailed article about the Elgg support policy can be found on learn.elgg.org.

Release notes


  • Jerôme Bakker (60)
  • Jeroen Dalsem (54)
  • Rohit Gupta (3)
  • iionly (1)


  • cache: reset opcache when flushing the system cache (b3c84901)
  • core: added server statistics about OPcache (f48d7b1a)
  • gatekeeper:
    • improved gatekeeper exceptions (d8765071)
    • added a logged out gatekeeper middleware (b9264a93)
  • i18n: output date in locale string (c2ca5da2)
  • livesearch: allow to filter out banned users (c3d631a3)
  • security: added admin setting to set if icons are session bound (07f070de)
  • upgrades: added an information page about the phinx db upgrades (5ce9bced)


  • db: added combined index on entities type/subtype (33b8463c)
  • i18n:
    • improved logic of loading translations (d615165b)
    • cache translations in systemcache only when loaded (ea22727f)
  • plugins:
    • preload private settings when fetching plugins from db (daaab2a2)
    • always set boot plugins (a70787c8)
    • only reset plugin priority if dirty (2d5d8571)
  • upgrades:
    • use direct queries during friends acl upgrade (6a401bc9)
    • disable systemlog during execution of an ElggUpgrade (d94ec941)


  • icons: document recommended additional options for entity icons (a39bb1c7)

Bug Fixes

  • account: don't allow , and : in username (7049923e)
  • ajax: on error response clear system messages (e3ca2b10)
  • blog:
    • use correct route after deleting a blog (6481b93f)
    • excerpt no longer limited during save (f2f1eb7c)
    • ordering of archive menu items not consistent (3ff75438)
  • cache: clear running autoloadermap when flushing the caches (2ea53a3b)
  • comments: show read more in activity for long comments (5cca32bf)
  • core:
    • fallback to generic error code in ErrorResponse (9c81a8bb)
    • make sure constants are available during db migrations (d5c8ff47)
    • directory permissions more usable (5fdf3a86)
    • try to forward to entity collection after deletion (df08d138)
  • css:
    • keep tabs together on smaller screens (ef0b42f7)
    • entity navigation not always correctly aligned in all browsers (64c6a0c0)
    • popped out dropdown always showing (9597d6c4)
    • allow wrapping of elgg-menu-hz menu items if there is no room (2e4292ca)
    • wordbreaking is now allowed everywhere (994663fd)
  • database: support closure group_by clauses (7da86a40)
  • email: set content encoding on magic email attachments (b0ef558a)
  • embed: tabs now working correctly (8a4b80e5)
  • gatekeeper: return http 401 status code when not authorized (4bb770d7)
  • groups: add menu item in correct menu section (436c93a6)
  • icons: increased the default resolution of master icon to 10240px (e39e5d29)
  • input: do not autocomplete input date fields (d55cf07b)
  • invitefriends: route path conflict with friends plugin (9c645ed0)
  • js:
    • clear system messages when submitting ajax submitted form (dbc6a913)
    • check if trigger is set before validation if part of comments (9fdd66d7)
    • provide user feedback when opening user hover menu (bb280605)
    • close popups on window scroll (6fbaf8d4)
  • menus:
    • menu items will recursively sort its children (e979cd69)
    • prevent section output if no items (f7868abb)
    • you can now have a link with toggleable features combined (097b01f7)
  • navigation:
    • always append admin toggle menu item (41021eda)
    • do not require logged in user for filter tab all (570d7721)
    • correctly remove selected state if link item not a tab (8cd7209a)
    • improved breadcrumbs for site containers (578a25c5)
    • entity nav fixed for entities with same time created (4d66fcc1)
    • add default user_hover section items to actions section (387d618b)
  • notifications: validate the notification event (b8e34723)
  • plugins:
    • generateEntities correctly rediscovers disabled plugins (b62238dd)
    • rely on magic translations for widgets (988ec419)
  • request:
    • return expected return type (af805ca1)
    • set_input values override request values (ba1e977d)
    • use same order as in getParam() (9ac24c7a)
  • rss:
    • listings have rss content (07e6338c)
    • register rss link in a more logical way and provide control (9e785825)
    • prevent RSS output if disabled (cf6af267)
  • scripts: transifex script adjustments (0633121c)
  • search:
    • namespace profile fields (3fc2afcb)
    • improved search fields normalization (ec58c6f1)
    • split search field registrations (cae5e906)
  • session: close session early when redirecting repsonses (4149f8d3)
  • site_notifications: site notification link js handling works again (2a62cd6e)
  • system_log: use correct plugin setting for cron jobs (f6c5d109)
  • tags: support documented elgg_get_metadata features (4460f948)
  • tests: pass test independed of loglevel settings (2e22b1df)
  • upgrades:
    • drop site_guid as primary and unique key explicitely before removing site_guid column (ff6f2069)
    • validate database setting before changing (89989f56)
    • don't report Batch errors for completed upgrades (b8e1af6e)
    • don't offer delete link for ElggUpgrades (5b9d1b08)
  • users: set default values (7757fcd5)
  • widgets: check page owner canEdit in can_edit_widget_layout (e40ffbcc)