3.2 Administrator Guides
Total Page:16
File Type:pdf, Size:1020Kb
Elgg Documentation Release master Various Jan 23, 2020 Contents 1 Features 3 2 Examples 5 3 Continue Reading 7 i ii Elgg Documentation, Release master Elgg( pronunciation) 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. Contents 1 Elgg Documentation, Release master 2 Contents CHAPTER 1 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 3 Elgg Documentation, Release master • 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 • Zend 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 4 Chapter 1. Features CHAPTER 2 Examples It has been used to build all kinds of social apps: • 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. 5 Elgg Documentation, Release master 6 Chapter 2. Examples CHAPTER 3 Continue Reading 3.1 Getting Started Discover if Elgg is right for your community. 3.1.1 Bundled plugins Elgg comes with a set of plugins. These provide the basic functionality for your social network. Blog A weblog, or blog, is arguably one of the fundamental DNA pieces of most types of social networking site. The simplest form of personal publishing, it allows for text-based notes to be published in reverse-chronological order. Commenting is also an important part of blogging, turning an individual act of publishing into a conversation. Elgg’s blog expands this model by providing per-entry access controls and cross-blog tagging. You can control exactly who can see each individual entry, as well as find other entries that people have written on similar topics. You can also see entries written by your friends (that you have access to). See also: Blogging on Wikipedia Dashboard The dashboard is bundled with both the full and core-only Elgg packages. This is a users portal to activity that is important to them both from within the site and from external sources. Using Elgg’s powerful widget API, it is possible to build widgets that pull out relevant content from within an Elgg powered site as well as grab information from third party sources such as Twitter or Flickr (providing those widgets exist). A users dashboard is not the same as their profile, whereas 7 Fig. 1: A typical Elgg dashboard Elgg Documentation, Release master the profile is for consumption by others, the dashboard is a space for users to use for their own needs. Diagnostics For the technically savvy user, system diagnostics enables you to quickly evaluate the server environment, Elgg code, and plugins of an Elgg install. Diagnostics is a core system plugin that comes turned on by default with Elgg. To download the diagnostics file, follow the steps below. The file is a dump of all sorts of useful information. To use: • Log in as Administrator • Go to Administration -> Administer -> Utilities ->System Diagnostics • Click ‘Download’ System diagnostics dump file contents: • List of all Elgg files along with a hash for each file • List of all the plugins • PHP superglobals • PHP settings • Apache settings • Elgg CONFIG values – language strings – site settings – database settings – plugin hooks – actions – views – page handlers – much more File repository The file repository allows users to upload any kind of file. As with everything in an Elgg system, you can filter uploaded files by tag and restrict access so that they’re only visible by the people you want them to be. Each file may also have comments attached to it. There are a number of different uses for this functionality Fig. 2: A file in an Elgg file repos- itory 8 Chapter 3. Continue Reading Elgg Documentation, Release master Photo gallery When a user uploads photographs or other pictures, they are automatically col- lated into an Elgg photo gallery that can be browsed through. Users can also see pictures that their friends have uploaded, or see pictures attached to a group. Clicking into an individual file shows a larger version of the photo. Podcasting An Elgg file repository RSS feed automatically doubles as an RSS feed, so you can subscribe to new audio content using programs like iTunes. Special content It is possible for other plugins to add to the players available for different content types. It’s possible for a plugin author to embed a viewer for Word documents, for example. Note for developers To add a special content type player, create a plugin with views of the form file/specialcontent/mime/ type. For example, to create a special viewer for Word documents, you would create a view called file/ specialcontent/application/msword, because application/msword is the MIME-type for Word documents. Within this view, the ElggEntity version of the file will be referenced as $vars['entity']. Therefore, the URL of the downloadable file is: echo $vars['entity']->getDownloadURL(); Using this, it should be possible to develop most types of embeddable viewers. Friends Being a social network framework Elgg supports relationships between users. By default any user can befriend any other user, it’s like following the activity of the other user. After enabling friendship requests as a feature of the Friends plugin, when user A wants to be friends with user B, user B has to approve the request. Upon approval user A will be friends with user B and user B will be friends with user A. Groups Once you have found others with similar interests - or perhaps you are part of a research groups or a course/class - you may want to have a more structured setting to share content and discuss ideas. This is where Elgg’s powerful group building can be used. You can create and moderate as many groups as you like • You can keep all group activity private to the group or you can use the ‘make public’ option to disseminate work to the wider public. • Each group produces granular RSS feeds, so it is easy to follow group de- velopments • Each group has its own URL and profile 3.1. Getting Started 9 Fig. 3: A typical group profile Elgg Documentation, Release master • Each group comes with a File repository, forum, pages and messageboard Messageboard The messageboard - similar to ‘The Wall’ in Facebook or a comment wall in other networks is a plugin that lets users put a messageboard widget on their profile. Other users can then post messages that will appear on the messageboard. You can then reply directly to any message and view the history between yourself and the person posting the message. Messages Private messaging can be sent to users by clicking on their avatar or profile link, providing you have permission. Then, using the built in WYSIWYG editor, it is possible to format the message. Each user has their own inbox and sentbox. It is possible to be notified via email of new messages. Fig. 5: Message notification When users first login, they will be notified about any new message by the mes- sages notification mechanism in their top toolbar. Pages The pages plugin allows you to save and store hierarchically-organized pages of text, and restrict both reading and writing privileges to them. This means that you can collaboratively create a set of documents with a loose collection of people, participate in a writing process with a formal group, or simply use the functional- ity to write a document that only you can see, and only choose to share it once it’s done. The easy navigation menu allows you to see the whole document structure from any page.