Elgg is an open source rapid development framework for socially aware web applications.

Overview

Elgg

Build status Scrutinizer Quality Score Scrutinizer Code Coverage Read the docs build status

Elgg is an open source rapid development framework for socially aware web applications.

Features

  • Well-documented core API that allows developers to kick start their new project with a simple learning curve
  • Composer is the package manager of choice that greatly simplifes installation and maintenance of Elgg core and plugins
  • Flexible system of hooks and events that allows plugins to extend and modify most aspects of application's functionality and behavior
  • Extendable system of views that allows plugins to collaborate on application's presentation layer and built out complex custom themes
  • Cacheable system of static assets that allows themes and plugins to serve images, stylesheets, fonts and scripts bypassing the engine
  • User authentication is powered by pluggable auth modules, which allow applications to implement custom authentication protocols
  • Security is ensured by built-in anti CSRF validation, strict XSS filters, HMAC signatures, latest cryptographic approaches to password hashing
  • Client-side API powered by asynchronous JavaScript modules via RequireJS and a build-in Ajax service for easy communication with the server
  • Flexible entity system that allows applications to prototype new types of content and user interactions
  • Opinionated data model with a consolidated API layer that allows the developers to easily interface with the database
  • Access control system that allows applications to build granular content access policies, as well as create private networks and intranets
  • Groups - out of the box support for user groups
  • File storage powered by flexible API that allows plugins to store user-generated files and serve/stream them without booting the engine
  • Notifications service that allows applications to subscribe users to on-site and email notifications and implement integrations with other their-party services
  • RPC web services that can be used for complex integrations with external applications and mobile clients
  • Internationalization and localization of Elgg applications is simple and can be integrated with third-party services such as Transifex
  • Elgg community that can help with any arising issues and hosts a repository of 1000+ open source plugins

Under the hood:

  • Elgg is a modular OOP framework that is driven by DI services
  • NGINX or Apache compatible
  • Symfony2 HTTP Foundation handles requests and responses
  • RequireJS handles AMD
  • Laminas Mail handles outgoing email
  • htmLawed XSS filters
  • DBAL
  • Phinx database migrations
  • CSS-Crush for CSS preprocessing
  • Imagine for image manipulation
  • Persistent caching with Memcached and/or Redis
  • Error handling with Monolog

Elgg Foundation

Elgg is managed by the Elgg Foundation, a nonprofit organization that was founded to govern, protect, and promote the Elgg open source social network engine. The Foundation aims to provide a stable, commercially and individually independent organization that operates in the best interest of Elgg as an open source project.

The Elgg project was started in 2004 by

License

Copyright (c) 2008-2020, see COPYRIGHT.txt

Elgg is released under the GNU General Public License (GPL) Version 2 and the Massachusetts Institute of Technology (MIT-X11) License.

See LICENSE.txt in the root of the package you downloaded.

Installation

For installation instructions, see http://learn.elgg.org/en/stable/intro/install.html.

For upgrade instructions, see http://learn.elgg.org/en/stable/admin/upgrading.html.

Support

The project site can be found at https://elgg.org/.

Visit http://learn.elgg.org for more information about Elgg.

Contributors

For development credits, see CONTRIBUTORS.txt.

Comments
  • fix(comments): keep comment access_id in sync with container

    fix(comments): keep comment access_id in sync with container

    Fixes #7807, Fixes #7984

    Voting time

    Yes let's pull this in:

    • Matt
    • Evan
    • Brett
    • Juho

    Yes with more:

    • Steve (show UI message when expanding access, don't close #7984)

    No let's do something else:

    opened by beck24 68
  • Create form view that standardizes how labels are drawn in regard to their targets (Trac #2032)

    Create form view that standardizes how labels are drawn in regard to their targets (Trac #2032)

    Original ticket http://trac.elgg.org/ticket/2032 on 40247890-05-23 by trac user gordian, assigned to cash.

    Elgg version: 1.7

    Hello,

    i found that the blog plugins edit view is a little different from other edit views (for example file and bookmarks). In the blog plugin for the forms input field there is this style:

    <p>
    <label>input field title</label>
    <br> <input field />
    </p>
    

    whereas in the other views there is this style:

    <p>
    <label>input field title
    <br> <input field />
    </label>
    </p>
    

    Im writing a plugin atm and this annoys me a little, because i cannot count on a consistent dom structure.

    Regards, gordian

    ui 
    opened by elgg-gitbot 64
  • Use InnoDB instead of MyIsam (Trac #4993)

    Use InnoDB instead of MyIsam (Trac #4993)

    Original ticket http://trac.elgg.org/ticket/4993 on 43059497-04-27 by trac user coldtrick, assigned to trac user coldtrick.

    Elgg version: Github Master

    Elgg should use innodb instead of the myisam storage engine.

    Innodb is in MySQL (5.5) the new standard storage engine. It provides higher concurrency use, provides transactions and foreign key support.

    Currently it is not possible to migrate Elgg to innodb because Elgg uses some full text indexes (that do not exist in InnoDB). But those indexes don't work as expected (they are slower compared to normal 'LIKE' queries, therefore it is no problem to drop those indexes and move to InnoDB.

    This will require changes in:

    • Search plugin: remove use of fulltext queries
    • Core:
      • schema sql to use innodb + removal of full text indexes
      • upgrade script to upgrade database engine to innodb and drop full text indexes
    • deprecate min_search_length (config) with default to 9999? or should we drop this?
    engine feature performance discussion 
    opened by elgg-gitbot 49
  • Improve plugin management layout

    Improve plugin management layout

    Original ticket http://trac.elgg.org/ticket/3148 on 41206627-03-21 by ewinslow, assigned to unknown.

    Elgg version: 1.7

    And perhaps we should review what the criteria actually are of putting something onto the "simple" page.

    feature ui 
    opened by elgg-gitbot 42
  • improve character encoding handling for friendly titles (Trac #2276)

    improve character encoding handling for friendly titles (Trac #2276)

    Original ticket http://trac.elgg.org/ticket/2276 on 40445254-04-27 by trac user belhkaci, assigned to trac user mrclay.

    Elgg version: 1.7

    I can not see the page content rss blogs when there is a blog that has a title that contains accented characters such as "é"

    engine i18n 
    opened by elgg-gitbot 42
  • Support composer for core and plugins as install method

    Support composer for core and plugins as install method

    This ticket is not about dropping/changing manifest.xml, but rather:

    • adding composer.json to elgg core and integrating with packagist.org
    • creating elgg plugin installer and merge it with composer/installers. Have Elgg installer written and tested here: https://github.com/Srokap/installers/, just need to send them PR
    • encouraging plugin devs to integrate with composer and packagist as well

    Why bother?:

    • nicer environment for devs to use Elgg as framework and integrate it with other libraries
    • other frameworks do that
    • nice option to define and hold plugins list for a project (compare it with updating community.elgg.org)

    See other discussion:

    • https://groups.google.com/d/msg/elgg-development/z9J2Rq9EV5Q/OPbJTQAB3VYJ (just noticed @ewinslow comment on composer/installers)
    • https://github.com/Elgg/Elgg/issues/5895

    IMHO there's no downside of it at current point. We don't loose BC and if devs don't want to use composer, they can work in old way. I think package managers are great and having such for elgg would help a lot with the deployments and exchanging plugins lists.

    What do you think? Do we want it?

    /cc @brettp @ewinslow @beck24 @mrclay @juho-jaakkola @cash

    dev usability 
    opened by Srokap 41
  • ElggEntity->getIconURL() is session bound, why?

    ElggEntity->getIconURL() is session bound, why?

    What was the reasoning behind making all the entity icon urls session bound?

    This means that every icon url is unique per user/session, so caching servers have no useful way of caching the entity icons. This increases the load on the webserver.

    Yes the serve-file doesn't boot core and is fast, but caching servers are faster ;)

    @Elgg/core feedback please

    docs needs feedback 
    opened by jeabakker 39
  • Elgg 2.3.0: CKeditor broken (either issue in AMD module of CKeditor or Elgg core caching issue)

    Elgg 2.3.0: CKeditor broken (either issue in AMD module of CKeditor or Elgg core caching issue)

    After denying in https://elgg.org/discussion/view/2594751/ckeditor-issue that CKeditor is broken I now also have a broken CKeditor on any browser with Elgg 2.3.0 and caching enabled.

    Browser console gives me

    Failed to load resource: http://site.url/cache/1485283855/default/elgg/ckeditor/config.js the server responded with a status of 404 (Not Found)

    and

    require.js:17 Uncaught Error: Script error for "elgg/ckeditor/config", needed by: elgg/ckeditor http://requirejs.org/docs/errors.html#scripterror at makeError (require.js:17) at HTMLScriptElement.onScriptError (require.js:117)

    CKeditor instance loads fine with caching disabled or with at least no "cache" link in the root directory.

    So, it might not be an issue of CKeditor but rather a bug with caching / cache rebuilding (maybe a problem connected or in addition of https://github.com/Elgg/Elgg/issues/10706)

    important bug 
    opened by iionly 38
  • Elgg should come with a default lightbox plugin (Trac #2882)

    Elgg should come with a default lightbox plugin (Trac #2882)

    Original ticket http://trac.elgg.org/ticket/2882 on 41110698-07-13 by trac user coldtrick, assigned to unknown.

    Elgg version: 1.7

    Much developers use a lightbox in their application.

    Currently the only elgg core plugin which provides such functionality is the embed plugin, but you not always need the features of the embed plugin.

    I suggest a plugin that does nothing more than to provide a few js files to create a lightbox.

    Why?

    • Now all my custom plugins must include this lightbox js!
    • More developers will use the same lightbox (version and type) if it is default provided with Elgg (consistent UX and less custom CSS work)

    The lightbox code provided in the embed plugin is not sufficient to me. I suggest the following lightbox tool to become the default Elgg lightbox:

    Fancybox: http://fancybox.net/

    Why fancybox? Because of its features! As a developer i never ran into a situation where fancybox could not deliver.

    engine feature 
    opened by elgg-gitbot 38
  • Review and correct z-index issues in default theme (Trac #3617)

    Review and correct z-index issues in default theme (Trac #3617)

    Original ticket http://trac.elgg.org/ticket/3617 on 41487919-07-02 by cash, assigned to unknown.

    Elgg version: Github Master

    I noticed some issues when working with the lightbox. For example, the site menu was actually above the lightbox background (of 1000).

    Add todo's here:

    • [ ] We need to increase z-index of .ui-datepicker to over 1100 for it work in a colorbox. #9861
    ui 
    opened by elgg-gitbot 37
  • Proposal for entity list system (Trac #2567)

    Proposal for entity list system (Trac #2567)

    Original ticket http://trac.elgg.org/ticket/2567 on 40796290-01-22 by trac user mrclay, assigned to trac user mrclay.

    I've [http://mrclay.org/index.php/2010/10/17/elgg-core-proposal-new-table-entity_list_items/ posted a proposal] to add an "entity list" system (and at least one new table) in the core. This would greatly ease the creation of features like this:[[BR]] [[BR]]

    • A “featured items” widget for a group or user. On a group page this could be implemented in left/right lists for more display control[[BR]]
    • “Sticky” entities in discussion lists, or any other object lists[[BR]]
    • A “favorites” list for each user

    Working API plugin using relationships for storage: https://github.com/mrclay/Elgg-elggx_lists_api but I suggest the relationship schema move to lists.

    TODOs

    • [ ] Agree on a set of interfaces
    • [ ] Agree on a set of expected behaviors (tests)
    • [ ] Compile a list of use cases
    • [ ] Document usage pattern for these use cases

    Interfaces for discussion

    Open questions:

    • Naming conventions
    interface Entity {
      // properties
      function getGuid();
    
      // graph traversal
      function lists(): Map<string, EntityList>;
    }
    
    interface Relationship {
      // properties
      function getIndex(): int;
      function setIndex($index);
      function getTimeCreated(): DateTimeImmutable;
      function getWeight(): number;
      function setWeight($weight);
    
      // graph traversal
      function parent(): Entity;
      function child(): Entity;
    }
    
    interface EntityList extends Map<Entity, Relationship>, MutableSequence<Relationship> {
      // properties
      function getName(): string;
    
      // graph traversal
      function parent(): Entity;
      function children(): MutableSeries<Entity>;
    }
    
    interface MutableCollection<Y> extends Collection<T> {
      function add(T $item): void;
      function remove(T $item): void;
    }
    
    interface Sequence<T> extends Collection<T> {
      function getAt($index): T;
      function indexOf(T $item): int;
      function slice($startingAtThisIndex = 0, $returnThisNumberOfItems = 0): Series<T>;
    }
    
    interface MutableSequence<T> extends Sequence<T>, MutableCollection<T> {
      function insertAt($index, T $item): void;
      function removeAt($index): T;
      function splice($startingAtThisIndex = 0, $removeThisNumberOfItems = 0, T ...$andInsertTheseInTheirPlace): Series<T>;
    }
    
    interface Map<K, V> extends Collection<V> {
      function get(K $key): V;
    }
    
    interface MutableMap<K, V> extends Map<K, V> {
      function set(K $key, V $value): void;
    }
    

    There where method is probably the most mysterious (and difficult to implement). My idea here was to allow something like elgg_get_entities, but with a slightly cleaned up API:

    // All items in the List with a weight of exactly 1.0
    $list->where(['weight' => 1.0]);
    
    // All items in the List with a weight between 1.0 and 2.0
    $list->where([
      'weight' => [
        '>' => 1.0,
        '<' => 2.0,
      ]
    ]);
    

    I find it a little clearer than the QueryModifier concept, which is too vague (modify how, exactly?).

    engine feature 
    opened by elgg-gitbot 37
  • [Bug]: entity inspector doesn't show metadata bool values correcly

    [Bug]: entity inspector doesn't show metadata bool values correcly

    Elgg version

    4.3

    Source of your Elgg installation

    GIT clone

    Describe the bug

    In the metadata section of the entity explorer bool values aren't shown correctly false is just an empty string. Don't know about true yet (probably 1)

    This should be true and false

    Steps to reproduce

    No response

    Expected behaviour

    No response

    Additional notes

    No response

    PHP version

    No response

    PHP error log

    No response

    bug 
    opened by jeabakker 0
  • [Bug]: Username not validated for special characters

    [Bug]: Username not validated for special characters

    Elgg version

    4.3.4

    Source of your Elgg installation

    Elgg.org website

    Describe the bug

    If non-standard characters are used in the username, as Username™, then links to neither the user profile nor the user settings work.

    Steps to reproduce

    1. Register with username Username™
    2. Try to go to User's profile page; you will be redirected on Activity
    3. Try to go User's settings page; link is empty

    Expected behaviour

    No response

    Additional notes

    No response

    PHP version

    8.1

    PHP error log

    No response

    bug 
    opened by RiverVanRain 3
  • chore(core): PHP 8.2 compatibility

    chore(core): PHP 8.2 compatibility

    ref #14237

    for translation cleanup

    • [x] cleanup plugin unused keys
    • [x] check plugin translations for keys that don't exist in English
    • [ ] check core for unused keys
    • [x] check core translations for keys that don't exist in English
    • [x] remove English translations from translation files (due to wrong import from Transifex)
    opened by jeabakker 1
  • [Bug]: webservices posthash calulation when using 'multipart/formdata'

    [Bug]: webservices posthash calulation when using 'multipart/formdata'

    Elgg version

    4.3

    Source of your Elgg installation

    Composer install, GIT clone

    Describe the bug

    When calculating the post_hash for HMAC authentication there is an issue when the POST request is a 'multipart/formdata'. The validation on the Elgg side is done on an empty string because 'php://input' isn't filled for this request type.

    This can cause security issues as the post data can be manipulated without changing the hash.

    Steps to reproduce

    No response

    Expected behaviour

    No response

    Additional notes

    No response

    PHP version

    No response

    PHP error log

    No response

    bug 
    opened by jeabakker 0
  • Add tests for ElggWidget::move

    Add tests for ElggWidget::move

    no test exist that test moving widgets

    maybe also a a widget/move and/or widget/save action test that action test that a widget moved to the correct new position

    opened by jdalsem 0
  • [Feature]: The ability for users to delete their accounts

    [Feature]: The ability for users to delete their accounts

    Describe the feature

    Users should have an option in their settings to delete their accounts, so I don't have to do it myself.

    Is your feature request related to a problem?

    No.

    Describe alternatives you've considered

    No response

    Additional context

    No response

    feature 
    opened by HelloThere838 0
Releases(4.3.4)
  • 4.3.4(Oct 27, 2022)

  • 4.3.3(Oct 7, 2022)

  • 3.3.25(Oct 7, 2022)

  • 4.3.2(Sep 23, 2022)

  • 4.3.1(Aug 26, 2022)

  • 4.3.0(Aug 5, 2022)

  • 4.3.0-rc.1(Jul 21, 2022)

    Contributors

    • Jeroen Dalsem (50)
    • Jerôme Bakker (31)
    • Ally Petitt (1)
    • Nikolai Shcherbin (1)

    Features

    • admin: open recent cron log in lightbox instead of in widget (db25a973)
    • ckeditor: updated to ckeditor v4.19.0 (d0e47c05)
    • core:
      • add path sanitization function (c7abf151)
      • implement generic namespace of exceptions (0fd13f0e)
      • move the PAM handlers to a service (4cb55938)
    • discussions: added group selection when starting a global topic (dfe38f67)
    • forms: added class to fields that have been disabled (b95821f6)
    • groups: moved group tool field into its own view (77ff14cc)
    • html: added SRI validation to local scripts and stylesheets (516412e4)
    • icons:
      • added config flag to enabled/disable webp icons (c2a78165)
      • added FontAwesome zip upload so admins can update icons (02a4030a)
    • menus: added support for a custom tag name for section headers (a3c521c3)
    • notifications:
      • allow to provide a notification actor (a314571f)
      • notification handlers can controll e-mail mute link (422019b9)
      • added triggers to track en/dequeue events (9569225e)
    • registration: allow to register with a valid invitation code (04127336)
    • system_log:
      • added event type to the event action logged (eb4273cf)
      • improved logbrowser features (4a7b350c)
    • user: added internal cache for profile data (7be4ca64)
    • users:
      • allow filtering of inactive users (6ca3d63a)
      • added confirmation form when deleting a user (2234de28)
    • views:
      • added widget_more element to entity listings (6ca4c78a)
      • added html5 video support to the file plugin (d713749e)

    Performance

    • core: added config flag to disable file exist check in classloader (234e9891)

    Documentation

    • release: update core release documentation (600b7517)
    • support: added 4.3 to the support page (9216020e)

    Bug Fixes

    • annotations: save/update annotations return false on null values (4947ede8)
    • core: generate correct URLs in special request cases (8f602520)
    • notifications: handle exceptions during notification processing (d94cb193)
    • user: only show language completeness on user settings for admins (65205220)
    • users: briefdescription icon should be false by default (f40750cc)

    Deprecations

    • annotations: annotate event is deprecated (072ca669)
    • config:
      • changed the way config variables are protected (3a53a6cd)
      • deprecated some more config variables (c8190587)
      • do not use config->elgg_settings_file (14b8073c)
    • core:
      • renamed various user related lib functions (0f1d15fb)
      • prefix relationship functions with elgg_ (4467cb8b)
      • renamed various session related lib functions (82b6ffe4)
      • prefix core functions with elgg_ (517e9d25)
      • various lib functions and hooks deprecated (22fe011a)
    • db:
      • old style database configuration (5c5d2394)
      • using order_by_[metadata|annotation] is deprecated (ae12730d)
    • forms: clear a single sticky form value (d950a3d3)
    • friends: Friends trait functions (1221d6ce)
    • hooks: old or obsolete hooks have been deprecated (d46f320a)
    • icons: replaced the 'classes', 'icon' hook (0acb87fc)
    • js: toggle and popup now init with a class instead of rel (97ba1790)
    • metadata: delete metadata by id (d7b3c1fb)
    • views: (un)register external views (2aa22ba7)
    Source code(tar.gz)
    Source code(zip)
    elgg-4.3.0-rc.1.zip(47.71 MB)
  • 4.2.3(Jul 4, 2022)

  • 4.2.2(Jun 17, 2022)

    Contributors

    • Jeroen Dalsem (8)
    • Jerôme Bakker (5)

    Bug Fixes

    • cache: make sure the CLI and webserver use the same cache path (fda6463e)
    • db: support passing relationship guid when sorting by relationship (21b9f1e6)
    • groups: groupprofile rss feed should show recent searchable content (54353859)
    • icons: check filesize when checking if entity has icon (50989148)
    • menus:
      • allow detecting selected sorting parent from view var (822ac99c)
      • sorting parent detection should respect menu item priority (19fbbcb7)
    • search: improved search result presentation (8959c933)
    Source code(tar.gz)
    Source code(zip)
    elgg-4.2.2.zip(45.80 MB)
  • 4.2.1(May 31, 2022)

    Contributors

    • Jeroen Dalsem (17)
    • Jerôme Bakker (4)

    Documentation

    • entities: added info about singular sort_by options (0340ecea)

    Bug Fixes

    • bookmarks: always detect document title for bookmarks link (6b8e7cb3)
    • ckeditor: replaced deprecated get_current_language js function (036c532d)
    • db: ignore unsupported sort_by property types instead of crashing (9eb1e3ba)
    • forms: do not draw container_guid subtext if empty (127352ee)
    • groups:
      • enable cropper on group profile icon (a0a61cf8)
      • replaced deprecated sort options in owner transfer (5b787372)
    • icons: only generate webp urls if server supports it (fbf76c11)
    • js: unable to check for logged in user in javascript (72d89a96)
    • menus: make sure title-menu-toggle is always available (f81a21e6)
    • navigation: user hover menu was missing the admin toggle (06433212)
    • pages:
      • allow saving with an empty description (3001a307)
      • check field config for all required fields on save (7f72d186)
    • search: allow passing sort_by through query params (4104a828)
    • site_notifications: prevent possible deadloops with seeded entities (8ea5e3ce)
    Source code(tar.gz)
    Source code(zip)
    elgg-4.2.1.zip(45.81 MB)
  • 4.2.0(May 13, 2022)

  • 4.2.0-rc.1(Apr 22, 2022)

    Contributors

    • Jeroen Dalsem (62)
    • Jerôme Bakker (27)
    • Nikolai Shcherbin (1)

    Features

    • accounts: admins can set duplicate email addresses for other users (4e6f7803)
    • actions: added logged_out access level to action registration (29679c37)
    • activity: added link to activity widget title (54b2c580)
    • admin:
    • bookmarks: added link to bookmarks widget title (d5ab59a2)
    • cache:
      • added option to system cache to set TTL for an item (45e2f2c7)
      • replaced stash with phpfastcache (6637015f)
    • config: added a setting to control the system message delay (289fb2ba)
    • db: metadata and annotation boolean values keep their type (c6775bd3)
    • discussions:
      • added a discussions widget for profile and dashboard (8d2ccea0)
      • added a group setting to control topic notifications (72c2674c)
    • entities: add generic sort options (2216bb01)
    • friends: added link to friends_of widget (09ad7dae)
    • groups: added imprint to indicate group owner/membership (b84f4535)
    • icons: serve webp icons if accepted by the browser (b0188aba)
    • js: updated jquery-ui to v1.13.1 (f1874a90)
    • menu: ability to set the output view of a menu item (5a210df5)
    • messageboard: added link to messageboard widget title (ffad7512)
    • plugins: login as features are now part of core (55a0c0f9)
    • reportedcontent:
      • site admins get notification about new reports (0536f60e)
      • separate active/archive listing (451fce64)
    • tests: added testing and support for MariaDB (29b3ec2a)
    • user: if unvalidated allow a user to update email address (aa43b04b)
    • users: automatically remove unvalidated users (3eeed1f9)
    • view: url input will auto prepend http protocol if missing (771a1847)
    • views:
      • added placeholder support for autocomplete fields (889882f2)
      • added more features to the system messages (000b92ba)
      • entity imprint now shows time updated if appropriate (049fb14c)
      • login form title indicates forward from protected page (0946daf9)

    Bug Fixes

    • composer: updated imagine for PHP 8.1 compatibility (33d1c594)
    • db: prevent entity subtype queries without a type provided (3f63e4f9)
    • developers: do not disable display errors if enabled from htaccess (929806c9)
    • entity: prevent deadloops during recursive entity delete (139998f5)
    • forms: corectly ignore empty form body (4cdb56fa)
    • groups: correctly report failure when inviting users (85814c0b)
    • js: user picker should respect if default event is prevented (ce6dab00)
    • plugins: don't show plugin (user)settings form if no content (bee2f1e2)
    • views: limit long entity titles in url and page titles (02ed01c3)

    Deprecations

    • js:
      • introduced elgg/i18n module for js translations (e5e67955)
      • ElggUser and ElggEntity classes have been deprecated (bcd6a515)
      • elgg.security related functions moved to AMD (c7c9a44b)
      • elgg.system_message related functions moved to AMD (f0781727)
      • unused and unwanted javascript lib functions (1982af30)

    Removed

    • js: no longer need the prototypes.js helper functions (09fca863)
    • tests: TestSeeder class (e1ca7c84)
    Source code(tar.gz)
    Source code(zip)
    elgg-4.2.0-rc.1.zip(44.64 MB)
  • 4.1.6(Apr 8, 2022)

  • 4.1.5(Mar 25, 2022)

  • 4.1.4(Mar 11, 2022)

  • 4.1.3(Feb 25, 2022)

    Contributors

    • Jerôme Bakker (14)
    • Jeroen Dalsem (1)

    Performance

    • site_notifications: cleanup speed-up on large databases (baf9f0b0)

    Bug Fixes

    • account: user settings form is no longer ajax based (22b41305)
    • core: correctly suppress notices when asked (b5ef29c7)
    • forms: styling of horizontal aligned fields not always correct (8ca0872f)
    • i18n: double translation (36bbf27d)
    • route: detect page owner with ignored access (d7f5d35b)
    • session: correctly apply session garbage collection (d14350c8)
    Source code(tar.gz)
    Source code(zip)
    elgg-4.1.3.zip(43.85 MB)
  • 4.1.2(Feb 11, 2022)

  • 4.1.1(Feb 1, 2022)

  • 4.1.0(Jan 14, 2022)

  • 4.1.0-beta.1(Dec 24, 2021)

    Contributors

    • Jeroen Dalsem (93)
    • Jerôme Bakker (36)

    Features

    • activity: index page will show registration form if possible (c5b84221)
    • admin:
      • server requirements warning for session garbage collection (460134fd)
      • user validation by admin notify user about validation (ab5b3624)
      • added link to add new user form on newest users listing (98d55ca7)
      • admin control panel menu items always visible in title menu (204fd65d)
    • blog: added logic to pass archive menu options to sidebar views (221172c7)
    • cache: replaced mrclay/minify with matthiasmullie/minify (fd99fccc)
    • capabilities: canComment now uses canWriteToContainer logic (f4c3890d)
    • comments:
      • added threaded comments capabilities (0875b898)
      • commentable is now an entity capability (475cb0b6)
      • added a site config to control comments on group content (bde859da)
      • show a notice for logged out users to login to comment (60f79376)
      • show that a comment was created by the content owner (32af360d)
    • config: added site setting to control who can change language (164965b6)
    • core:
      • improved default index pages (f22c071a)
      • replaced internal service provider with PHP-DI (8d997600)
    • css:
      • added helper class to stretch a field in a fieldset (be05225c)
      • added helper class for horizontal labels in elgg-field (df095c13)
      • added phone up media query css crush variable (18de6788)
    • custom_index:
      • added settings to control homepage modules (54bbf7c0)
      • Front Page Demo plugin is now enabled on new sites (f95afdab)
    • db: the required mysql version for new installations now is 5.7 (65c292e0)
    • developers: control how elgg_echo strings are displayed (8eb2afb6)
    • entities: added entity capabilities service (e93d1c5d)
    • forms:
      • elgg_make_sticky_form() now supports ignored field names (5febfa9e)
      • the container has a dedicated input view with more context (6761e981)
    • install: admin notice for new installs now mention front page demo (a30ebdfa)
    • javascript: sortable features now also work on touch devices (fe2421d5)
    • likes: likable now is part of the entity capabilities systems (a149422d)
    • menus: added flag to menu items to hide if it has no children (24b05c70)
    • notifications:
      • added option to disable subscription filtering (1e58e96e)
      • control over detailed notification configuration (2ae90bf2)
    • page_owner: page owner middleware forces page owner detection (829bce49)
    • profile: user display name edit is now a separate view (4b485be8)
    • routes:
      • add function to get a route based on an url/path (17370a6a)
      • add function to get current route name (7c2a2991)
    • site: added the ability to upload a site icon (149f1258)
    • site_notifications: allow to configure the cleanup interval (77642349)
    • system_log: improved archived log cleanup (024c7aae)
    • tests:
      • static config test now check correct upgrades registration (5d146320)
      • logged in user is now always logged out by base test class (c1a97363)
      • entities created during tests are automatically removed (3ec2d614)
    • upgrades: the finished upgrades list now has pagination (09a1ea54)
    • views: added menu section in elgg_view_messages header output (d9023fcf)

    Performance

    • comments: added comments count preloader logic (2b6da920)
    • site_notifications: cron cleanup uses direct database queries (36969685)

    Documentation

    • core: added a guide on how to use the entity capabilities service (b8f226ab)

    Bug Fixes

    • admin: server information now reports correct minimal php version (a2fb0a96)
    • collection: correctly implement unset of collection item (3684df75)
    • file: prevent path traversal in ElggFile (0a50b762)
    • js: no longer close popups on scroll (9b4d2621)
    • menus: removed link from topbar account menu item (e1104cf5)
    • router: admin gatekeeper reports status code 403 instead of 401 (05340f54)
    • tests: custom config values always persist over db values (49ef293b)

    Deprecations

    • core:
      • ElggEntity->getAccessID() is deprecated (3a9a9e5b)
      • elgg_get_version has been replaced by elgg_get_release (cc71881c)
    • i18n: the public DI proxy for elgg()->echo is deprecated (2f65c1ab)
    • page_owner: legacy page owner detection has been deprecated (6fec812f)
    • views: elgg_does_viewtype_fallback has been deprecated (1e2a135a)

    Removed

    • admin: control panel widget has been removed (4e8d1cff)
    Source code(tar.gz)
    Source code(zip)
    elgg-4.1.0-beta.1.zip(43.95 MB)
  • 4.0.6(Dec 23, 2021)

  • 3.3.24(Dec 23, 2021)

  • 4.0.5(Dec 3, 2021)

  • 3.3.23(Dec 3, 2021)

  • 4.0.4(Nov 19, 2021)

  • 3.3.22(Nov 19, 2021)

  • 4.0.3(Nov 5, 2021)

  • 4.0.2(Oct 25, 2021)

    Contributors

    • Jerôme Bakker (@jeabakker) (21)
    • Jeroen Dalsem (@jdalsem) (6)

    Features

    • site_notifications: notification byline shows container entity (9f43720d)

    Bug Fixes

    • blog: don't supply full $vars to the blog/save form (2e23f9dd)
    • core: use route generation instead of fixed url (565ae3a7)
    • i18n: catch too few arguments provided in elgg_echo() (28609f02)
    • js: do not click on parent menu item of tabs with children (9b5d3073)
    • messages: use list out of bounds helper (487c174a)
    • notifications:
      • continue when no object is found in html output (86eb13cd)
      • set notification url for all ElggData objects (b2ebf498)
      • settings show correct entity icons (27dfac30)
    • routes: correctly detect page owner in certain routes (e003a4e9)
    • site_notifications:
      • only mark as read when the owner clicks url (16eb05e9)
      • cleanup oldest notifications first (897cc5f5)
      • use list out of bounds helper (b39c55bc)
    • views:
    Source code(tar.gz)
    Source code(zip)
    elgg-4.0.2.zip(43.97 MB)
  • 4.0.1(Oct 8, 2021)

    Contributors

    • Jerôme Bakker (11)
    • Jeroen Dalsem (7)

    Bug Fixes

    • blog: use route name as page title (ead3647b)
    • comments: no longer disable save button after form submission (03651f26)
    • core: do not respond with redirect on failure of ajax requests (4222ac92)
    • notifications:
      • mute page of a comment shows relevant entities (e297bda2)
      • disable subscribe button if you can't subscribe (ea612bb4)
      • (un)subscribe buttons only for logged in users (824291fb)
    • site_notifications: prevent input limit reached in bulk actions (e83df87c)
    • systemlog: only log before and after events if there are handlers (5fb8189a)
    • thewire: output of the new wire notification in HTML e-mail (c161429b)
    • views: correct default behaviour for showing entity menu on PHP 8 (8f9f3827)
    Source code(tar.gz)
    Source code(zip)
    elgg-4.0.1.zip(43.94 MB)
  • 4.0.0(Sep 24, 2021)

Owner
Elgg
A social networking engine in PHP/MySQL
Elgg
Motan - a cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services

Motan-PHP Overview Motan is a cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services.

Weibo R&D Open Source Projects 81 Nov 19, 2022
FlyCubePHP is an MVC Web Framework developed in PHP and repeating the ideology and principles of building WEB applications, embedded in Ruby on Rails.

FlyCubePHP FlyCubePHP is an MVC Web Framework developed in PHP and repeating the ideology and principles of building WEB applications, embedded in Rub

Anton 1 Dec 21, 2021
Framework X – the simple and fast micro framework for building reactive web applications that run anywhere.

Framework X Framework X – the simple and fast micro framework for building reactive web applications that run anywhere. Quickstart Documentation Tests

Christian Lück 592 Nov 30, 2022
Hamtaro - the new web framework for front-end / back-end development using Php and Javascript.

Hamtaro framework About Technologies Controllers Components Commands Front-end development Getting Started About Hamtaro is the new web framework for

Phil'dy Jocelyn Belcou 3 May 14, 2022
Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.

Slim Framework Slim is a PHP micro-framework that helps you quickly write simple yet powerful web applications and APIs. Installation It's recommended

Slim Framework 11.4k Nov 27, 2022
A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast!

A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast! Condensed in a single ~65KB file

Bong Cosca 2.6k Nov 21, 2022
Woski is a fast and simple lightweight PHP Framework for building applications in the realm of the web.

Woski is a simple fast PHP framework for the Realm The Project Installation Clone the repository $ composer create-project clintonnzedimma/woski myApp

Clinton Nzedimma 19 Aug 15, 2022
Biny is a tiny, high-performance PHP framework for web applications

Biny is high performance. Framework comes default with response time of less than 1ms. Stand-alone QPS easily up to 3000.

Tencent 1.7k Nov 5, 2022
TrailLamp is a lightweight, easy-to-use Php MVC framework that can be used to build web applications and REST APIs.

TrailLamp Introduction TrailLamp is a lightweight, easy-to-use Php MVC framework that can be used to build web applications and REST APIs. Installatio

Etorojah Okon 14 Jun 10, 2022
A Small modular PHP framework Build for web applications

MagmaCore__ This project is in active development. So is evolving constantly. As soon project gets to stable point. Due notice will be given Composer

Ricardo Miller 10 Sep 2, 2022
Sunhill Framework is a simple, fast, and powerful PHP App Development Framework

Sunhill Framework is a simple, fast, and powerful PHP App Development Framework that enables you to develop more modern applications by using MVC (Model - View - Controller) pattern.

Mehmet Selcuk Batal 2 Aug 6, 2022
Open Source PHP Framework (originally from EllisLab)

What is CodeIgniter CodeIgniter is an Application Development Framework - a toolkit - for people who build web sites using PHP. Its goal is to enable

B.C. Institute of Technology 18.2k Nov 25, 2022
Open Source PHP Framework (originally from EllisLab)

CodeIgniter 4 Development What is CodeIgniter? CodeIgniter is a PHP full-stack web framework that is light, fast, flexible and secure. More informatio

CodeIgniter 4 web framework 4.4k Nov 24, 2022
Coole is a PHP framework built on open source components

Coole is a PHP framework built on open source components. - Coole 是一个基于开源组件包构建的 PHP 框架。

guanguans 19 Nov 1, 2022
High-Performance Long-Living PHP Framework for modern enterprise application development

Documentation · Discord · Telegram · Twitter Spiral Framework is a High-Performance Long-Living Full-Stack framework and group of over sixty PSR-compa

Spiral Scout 1.4k Nov 27, 2022
QPM, the process management framework in PHP, the efficient toolkit for CLI development. QPM provides basic daemon functions and supervision mechanisms to simplify multi-process app dev.

QPM QPM全名是 Quick(or Q's) Process Management Framework for PHP. PHP 是强大的web开发语言,以至于大家常常忘记PHP 可以用来开发健壮的命令行(CLI)程序以至于daemon程序。 而编写daemon程序免不了与各种进程管理打交道。Q

Comos 75 Dec 21, 2021
:gem: Go! AOP PHP - modern aspect-oriented framework for the new level of software development

Go! Aspect-Oriented Framework for PHP Go! AOP is a modern aspect-oriented framework in plain PHP with rich features for the new level of software deve

Go! Aspect-Oriented Framework 1.6k Dec 2, 2022
PHPLucidFrame (a.k.a LucidFrame) is an application development framework for PHP developers

PHPLucidFrame (a.k.a LucidFrame) is an application development framework for PHP developers. It provides logical structure and several helper utilities for web application development. It uses a functional architecture to simplify complex application development. It is especially designed for PHP, MySQL and Apache. It is simple, fast, lightweight and easy to install.

PHPLucidFrame 19 Apr 25, 2022
Pods is a development framework for creating, extending, managing, and deploying customized content types in WordPress.

Pods Framework Pods is a development framework for creating, extending, managing, and deploying customized content types in WordPress. Description Che

Pods Foundation, Inc 979 Nov 22, 2022