Elgg Documentation (|version|) ############################## Elgg_ (:download:`pronunciation <_elgg_files/How_to_say_Elgg.mp3>`) is an open source rapid development framework for socially aware web applications. It is a great fit for building any app where users log in and share information. 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 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 ES modules and a built-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 * modular javascript with ECMAScript modules * 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 Examples ======== It has been used to build `all kinds of social apps`__: __ https://elgg.org/showcase * open networks (similar to Facebook) * topical (like the Elgg Community) * private/corporate intranets * dating * educational * company blog This is the canonical documentation for the Elgg_ project. .. _Elgg: http://elgg.org Continue Reading ================ .. toctree:: :maxdepth: 1 intro/index admin/index guides/index tutorials/index design/index contribute/index appendix/index