what is new in elgg 1.8?
DESCRIPTION
Presentation given by Kevin Jardine at the London Elgg Meetup on November 23rd 2011TRANSCRIPT
Version 1.8
Kevin JardineLondon Elgg Meetup23 November 2011
What is Elgg?
Frameworks Applications
Elgg ?
PHP CakeRuby on Rails
Zend Framework
Content management systems
WordPress
Drupal
Joomla
PhpBBPhoto gallery
Elgg: hybrid
not a framework - you can install it and it does a lot immediately without additional coding
a bit more specialised than a general CMS comes with a core set of plugins to create a
functioning niche social network certain functions (eg. friends) are built into
core but far more extendable than a specific
application like WordPress
Elgg's strengths
Rapid development Ben Werdmuller's original goal: “Elgg should
do nothing” Means that it can be extended in almost any
direction by plugins You need to do very little to set up a plugin
and then Elgg implements a large set of default behaviour
Implement non-default behaviour by overriding
Elgg 1.8
Major goal: make Elgg easier to theme Complete reworking of CSS and view system New user interface Many deprecated or altered functions Breaks most existing plugins in exchange for
more functionality Elgg does more automatically than ever before
Examples of default behaviour
elgg_view_entity() works (sort-of) with no additional coding - uses title, description and tags fields if available
elgg_list_entities() creates full listing pages complete with pagination
elgg_register_entity_type is all that is needed to make the title, description and tags fields of any entity searchable
Menu system
Elgg 1.8 introduces a standard set of Elgg navigation menus, moving navigation away from the previous sidebar focus
site, title, filter, entity, user, topbar, breadcrumbs, footer - many options!
simple tools to add to menus and (since this is Elgg) to over-ride existing menus and remove items
elgg_register_menu_item(), elgg_unregister_menu_item()
CSS
Goal: create a sitewide consistent look and feel
Previous monolithic Elgg CSS file now split into more than a dozen over-ridable component files
Many standard classes for navigation, buttons, form elements - more to learn!
Easier system to add page or plugin specific CSS files but these should be used sparingly
JavaScript
Elgg 1.8 introduces a JavaScript framework built on top of jQuery.
Includes Elgg-specific JS functions like elgg.echo() for language strings and elgg.get_site_url()
elgg_load_js() function for adding page or plugin-specific JS
namespace standards encourages strict separation between JS and
HTML generation
Form management
Elgg 1.8 begins to address one of Elgg's traditional weaknesses - form management
Sticky form system provides a standard way to repopulate forms on error, logout or token timeouts
standard elgg_view_form() system provides a framework for form actions and form over-rides, adds standard XSS tokens
Elgg still needs a more powerful form API in my view
Adding to Elgg's strengths
Elgg 1.8 further enhances Elgg's primary strength as a rapid prototyping and development system for niche social networks
Elgg's default functionality reduces development time and generates a site with consistent behaviour and consistent look and feel
Elgg is not for everyone
Elgg 1.8 introduces even more of an “Elgg way to do things”
You need to like or at least be willing to live with the way Elgg does things
over-riding Elgg's default behaviours can easily customise your site, BUT: over-rides can slow performance, increase development costs, introduce inconsistencies or bugs, and need to be upgraded every time you upgrade core Elgg
Elgg's fundamental issues
Plugins can have unpredictable interactions Some plugins are better written than others Like any complex software, core Elgg has
bugs The core developers are extremely responsive
to bug reports but are more likely to act on them if you supply a patch
Speed controversy - niche social networks typically prioritise a rich feature set over raw speed
Room for improvement Notifications are not scalable and are almost
guaranteed to white out large group forms. Elgg needs more rapid prototyping tools like a
sophisticated drag-and-drop form builder Elgg needs more themes (especially free
ones!) - hopefully the Elgg 1.8 release will help with this
jQuery UI should be fully supported to allow for richer user interfaces
roles and permissions