From 4.2 to 4.3

Deprecation of rel=”toggle” and rel=”popup”

If you are using rel="toggle" or rel="popup" for showing some hidden content you will need to update your code. The correct javascript will automatically be loaded if you draw content using output/url (directly or indirectly) and pass the class elgg-popup or elgg-toggle. If you need popup/toggle features on your own elements, you will need to set the correct class and require the correct javascript (elgg/popup or elgg/toggle).

PAM handlers

PAM handlers, which handle authentication, have been reworked. The registration now uses a DI service instead of a static variable in a class.

Because of the rework PAM handlers can now also be invokable classes and Elgg core (including the Webservices plugin) is using this. If as a developer you unregistered certain PAM handlers please check the new code.

Deprecated APIs

Lib functions

  • add_entity_relationship() use \ElggEntity->addRelationship()

  • add_translation() use elgg()->translator->addTranslation()

  • add_user_to_access_collection() use \ElggAccessCollection->addMember()

  • can_edit_access_collection() use \ElggAccessCollection->canEdit()

  • check_entity_relationship() use \ElggEntity->hasRelationship() or \ElggEntity->getRelationship()

  • check_rate_limit_exceeded() use elgg_is_authentication_failure_limit_reached()

  • create_access_collection() use elgg_create_access_collection()

  • current_page_url() use elgg_get_current_url()

  • delete_access_collection() use \ElggAccessCollection->delete()

  • delete_relationship() use \ElggRelationship->delete()

  • elgg_authenticate() use elgg_pam_authenticate()

  • elgg_clear_sticky_value()

  • elgg_delete_metadata_by_id() use \ElggMetadata->delete()()

  • elgg_get_engine_path()

  • elgg_get_loaded_external_files() use elgg_get_loaded_external_resources()

  • elgg_register_external_view() use elgg_register_ajax_view() and elgg_register_simplecache_view()

  • elgg_unregister_external_view() use elgg_unregister_ajax_view()

  • execute_new_password_request() use elgg_save_new_password()

  • filter_tags() use elgg_sanitize_input()

  • find_active_users() use elgg_get_entities()

  • force_user_password_reset() use \ElggUser->setPassword()

  • generate_invite_code() use elgg_generate_invite_code()

  • generate_random_cleartext_password() use elgg_generate_password()

  • get_access_array() use elgg_get_access_array()

  • get_access_collection() use elgg_get_access_collection()

  • get_current_language() use elgg_get_current_language()

  • get_default_access() use elgg_get_default_access()

  • get_dir_size()

  • get_entity_relationships() use elgg_get_relationships()

  • get_entity_statistics() use elgg_get_entity_statistics()

  • get_members_of_access_collection() use \ElggAccessCollection->getMembers()

  • get_online_users() use elgg_list_entities()

  • get_readable_access_level() use elgg_get_readable_access_level()

  • get_relationship() use elgg_get_relationship()

  • get_write_access_array() use elgg_get_write_access_array()

  • has_access_to_entity() use \ElggEnity->hasAccess() or elgg_has_access_to_entity()

  • is_email_address() use elgg_is_valid_email()

  • log_login_failure() use elgg_register_authentication_failure()

  • login() use elgg_login()

  • logout() use elgg_logout()

  • parse_urls() use elgg_parse_urls()

  • register_pam_handler() use elgg_register_pam_handler()

  • register_user() use elgg_register_user()

  • remove_entity_relationship() use \ElggEntity->removeRelationship()

  • remove_entity_relationships() use \ElggEntity->removeAllRelationships()

  • remove_user_from_access_collection() use \ElggAccessCollection->removeMember()

  • reset_login_failure_count() use elgg_reset_authentication_failures()

  • send_new_password_request() use elgg_request_new_password()

  • string_to_tag_array() use elgg_string_to_array()

  • unregister_pam_handler() use elgg_unregister_pam_handler()

Class functions

  • \ElggEntity->deleteRelationships() use \ElggEntity->removeAllRelationships()

  • \ElggUser->getFriends() use \ElggUser->getEntitiesFromRelationship()

  • \ElggUser->getFriendsObjects() use \ElggUser->getEntitiesFromRelationship()

  • \ElggUser->getFriendsOf() use \ElggUser->getEntitiesFromRelationship()

  • \ElggUser->isFriend() use \ElggUser->isFriendOf()


  • 'annotate', '{$entity->getType()}' use the 'create', 'annotate' event


  • 'action_gatekeeper:upload_exceeded_msg', 'all'

  • 'classes', 'icon' use the 'view_vars', 'output/icon' hook

  • 'fail', 'auth'

  • 'file:icon:url', 'override' use the 'entity:icon:url', 'object' hook

  • 'find_active_users', 'system'

  • 'form:values', 'blog'

  • 'is_member', 'group' use the 'gatekeeper', 'all' hook

  • 'page_owner', 'system' use route definitions

  • 'status', 'user' use the 'create', 'object' event

  • 'validate', 'input' use the 'sanitize', 'input' hook


  • \ElggPAM use elgg_pam_authenticate()

Notable function parameters

  • Passing order_by_metadata or order_by_annotation to elgg_get_entities is deprecated. Use sort_by instead.

Deprecated Config values

  • elgg_settings_file

  • path use elgg_get_root_path()

  • pluginspath use elgg_get_plugins_path()

  • site_guid use elgg_get_site_entity()->guid

  • sitedescription use elgg_get_site_entity()->description

  • sitename use elgg_get_site_entity()->getDisplayName()

  • url use elgg_get_site_url()