Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Présentation d'Elgg (fOSSa 2011, Lyon, 02/10/2011)

Une présentation du framework opensource Elgg à destination d'intégrateurs et de développeurs (approche un peu technique).
by

Florian Daniel

on 27 February 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Présentation d'Elgg (fOSSa 2011, Lyon, 02/10/2011)

Pour quoi faire ?
Elgg
Elgg, c'est quoi ?
C'est parti !
un moteur de plateforme sociale opensource
PHP + MySQL
des pré-requis minimes
Comment?
c'est facile !

Un puissant moteur de plateforme sociales
un framework = "les composants fondamentaux pour construire des applications sociales"
Pré-requis du serveur
Fonctionnalités du coeur Elgg
Conçu pour construire des site publics ou internes avec des fonctionnalités sociales
intra/extranets et plateformes collaboratives,
réseaux sociaux,
webservices..
Outils de chantier ?
Référence de l'API
Trac (suivi des bugs)
Wiki documentaire
SVN (coeur et plugins)
Quelques fonctionnalités :
des sites, utilisateurs, groupes, objets, un gestionnaire de fichiers, des widgets
une gestion très fine des droits d'accès (par objet, champ et relation), des tableaux de bord, une page de profil des membres et des groupes, des notifications automatiques
blogs, wikis, marque-pages, micro-blogging, fil d'activité (rivière)
OpenSocial, FOAF, OpenId, OAuth, FOAF+SSL, REST et XML-RPC
integrations de services tierce-partie avec Twitter, Facebook, Google, Youtube, Linkedin, Google Maps
géolocalisation, recherche cartographique...
Modulaire, extensible, système en "cascade", surcharge du coeur et des plugins, un framework sympathique pour les développeurs

* API de haut niveau : édition, extension, surcharge et requêtes de "ElggEntities" (sur la base du coeur ou de métadonnées et relations personnalisées),
* des entités orientées objet : sites, utilisateurs, groupes, objets - extensibles et surchargeables,
* un système de "vues" modulaires : XML, RSS, sans échec, vue mobile, pour tablette, etc.
* qui permet d'étendre ou de remplacer quasimetn n'importe quelle vue, fonctionnalité ou fonction du coeur ;
* excellente modularité et possibilités d'intégration, et facilités pour interagir avec des webservices existants, tant comme client que comme serveur)
un plaisir !-)
http://elgg.org/download.php
Modèle de données
Qui l'utilise ?
GNU General Public License v2
également distribué sous licence MIT
Né comme outil de portfolio
Des Universités, des organisations publiques ou privées, des associations, etc.
Université Descartes
FING (Fondation Internet
Nouvelle Génération)
FormaVia (Rhône-Alpes)
Université d'Auvergne
Université de Versailles
L'Obtic PACA
Pl@ntNet (Inria)
Département de l'UTM (Toulouse)
Credit : http://www.slideshare.net/mobicules/introduction-to-elgg-the-open-source-social-network-platform-presentation
Composants
Profil utilisateur personnel et widgets
Sites, groupes, objets...
N'importe quel site qui s'appuie sur des interactions entre utilisateurs et contenus
Elgg.fr (communité francophone)
Unisciel (Université des Sciences en Ligne)
Oxfam, Royal College of British Architects, Australian Government, British Government, Federal Canadian Government, MITRE, New Zealand Ministry of Education, State of Ohio, USA, The World Bank, UNESCO, United Nations Development Programme, Canadian Employment and Immigration Union, Tides Canada, Aerospace, NASA, The Executive Lounge, Hedgehogs.net, Hill and Knowlton, Institute of Executive Coaching, Interactive Games & Entertainment Association, Live Out There, UnltdWorld, Wiley Publishing, Harvard University Extension School, Saugus School District, Stanford University, Think Global School, University of Brighton, University of Calgary, Grid Research Centre, Universite Lille 1, University of Nebraska-Lincoln, Johns Hopkins University, Oregon State University, Great Ormond Street Hospital, University of Florida,...
Facilite l'interconnexion et l'intégration de composants et de services sociaux existants !
Devenu un moteur de plateforme sociale
Appuyé par une Fondation Elgg (créée par Curverider Ltd)
Soutenu par une importante communauté internationale
Communauté
un écosystème essentiel !
Communauté internationale en croissance : plus de 55 000 membres
aide les webmestres à construire des communautés aux fonctionnalités sociales riches avec un minimum de connaissances techniques
des contributions diversifiées : traductions, thèmes, plugins, rapports de bugs (trac), évolutions du coeur et des plugins (SVN)...
une communauté francophone indépendante !
Plugins communautaires
En pratique !
Entités : sites, utilisateurs, groupes, objets
relations entre entities
ajouter des données à des entités : métadonnées (tags, géolocalisation..), annotations (commentaires, versions d'une page wiki..) et relations (

Actions : utilisateurs, 'callbacks' (pour les fonctionnalités ajax), actions spéciales

Evénements : déclenchés par des actions (par ex.: initialisation du système, connexion d'un utilisateur, enregistrement d'un objet, construction de la page, etc.)

'Hooks' des plugins : permettent d'intercepter les événements (par ex.: cron horaire, première connexion, mise à jour d'un objet, etc.)

Vues : ajouter, étendre et overrider les vues du coeur ou des plugins

Types de vues : versions des pages prévues pour certains affichages spécifiques : HTML, XML, version mobile, widgets et codes d'embarquement, interfaces pour webservices, etc.
Plugins : ajouter, étendre ou remplacer des focntionnalités du coeur ou des plugins
mod/ [votre plugin] / [ structure ]

Internationalisation (fichiers i18n)
Les règles d'un jeu créatif
Créer un plugin de blog
Aperçu de la structure d'un plugin
Thème, extension, 'override', et bien plus !
Crédits : diapos du tutoriel issues de la présentation de Mobicules sur Slideshare
http://www.slideshare.net/mobicules/introduction-to-elgg-the-open-source-social-network-platform-presentation
Liste de discussion
http://groups.google.com/group/elgg-development/
Répertoires et outils tierce-partie
http://docs.elgg.org/wiki/Development/Subversion
Path : blog/views/default/blog/editform.php
View : blog/editform
Structure d'un plugin
OAuth
Thèmes
Service web
Comment faire...
Thème de base -> override des vues structurelles
Plugin path : [ elgg_root ] /mod/ [ yourplugin ] /
plugin folder is plugin name (choose carefully !)
plugin directory structure should follow Elgg core's directory structure

Required files :
manifest.xml : plugin declaration (version, author, title, description, etc.)
start.php : "control hub of any plugin". Contains at least : register_elgg_event_handler('init', 'system', 'yourplugin_init'); and function yourplugin_init() {} declaration.

Folders :
actions/ : action files (registered through register_action...)
languages/ : contains translations (en.php, fr.php, es.php, ja.php, etc.)
views/ : views structure - usually views/default/yourplugin/ for yourplugin-specific files ; other subdirectory are whether new views, or alternate view types (foaf, json, ical, rss, xml, etc.), or are overriding existing views

Important folders (useful views) :
views/default/settings/ [ yourplugin ] /edit.php : plugin site settings (per site - admin only)
views/default/usersettings/ [ yourplugin ] /edit.php : plugin user settings (per-user, per site)
views/default/page_elements/ : header, toolbar, footer and owner_block
views/default/canvas/layouts/ : page content layouts
views/default/pageshells/ : global layout
views/default/object/ [ object_name ] : defines how an object displays
views/default/icon/object/ [ object_name ] / [ size = topbar, tiny, small... ] : icon URL
views/default/widgets/ [ widget_name ] /view.php (& edit.php) : widget (view & edit form)
view/default/river/object/ [object_name ] / [action_name].php : river entry of object action
Built-in core feature :
Avatar, Dashboard, Friends, Groups, Profile, Widgets

Optional plugins :
Blogs, Bookmarks, File repository, Message board, Private messaging, Pages, Activity, Microblogging

Core & core plugins features :
User, object, file and site management
Social graph functionality (relationships between users and other users, objects and sites)
Multiple sites (or applications) per installation (coming soon)
Easy internationalisation support
System-wide, tag-based searching across all content and users
Fine-grained access controls
Multiple views, allowing for mobile applications and embeddable widgets as well as the traditional web browser view
Plugin APIs
Powerful theming through the plugin API
RSS and FOAF for content syndication
OpenID and LDAP for user authentication
OpenSocial
An extensible RESTful API, with results in JSON, serialised PHP or XML
AJAX through jQuery and user-definable callbacks
Easy extension for use with caching systems such as memcached, for increased system performance (experimental)
Use of multiple database connections for scalability (still in development)
http://docs.elgg.org/wiki/Features
Elgg ?
Utilisez l'ordre d'activation des plugins pour remplacer les vues, paramètres et comportements d'autres plugins

Enregistrez une action action existante pour la remplacer par la vôtre (oui.. ça marche !)

Modifiez la page d'arrivée après connexion -> enregistrez un hook et renvoyez vers votre page d'accueil

Modifiez les messages de notification -> utilisez les hooks de notification pour filtrer et remplacer les notifications

Architecture multisite : utilisez les plugins multisite existants, ou construisez les ôtres (cf. tutoriels)

Sélectionnez et filtrez les entités via de nombreuses fonctions spécialisées - par propriétés des entités (auteur, conteneur, dates, etc.), par métadonnées, annotations, relations, position géographique, etc.

Utilisez les données de la rivière pour créer une rivière d'activité personnalisée et tous types de flux d'activité

Utilisez les vues structurelles ("pageshells") et les types de vues pour fourbnir des versions RSS, Europass, FOAF, ou mobiles de vos vues - et de votre site..

'Overridez' les mises en pages ("layouts") par défaut en utilisant des paramètres pour construire - par ex.emple - vos propres interfaces pour les groupes ou les pages du profil des membres..

Utilisez le "contexte" pour modifier les mises en page, les comportements et les rendus de certaines zones spécifiques (par exemple la zone "spotlight") - très efficace combiné aux surcharges des mises en pages et structures de pages
Quelques astuces de dév
Presentation by Facyla
Facyla, aka Florian Daniel, works as a consultant at Items International in Paris, at the interface between usages and technical issues.His geographer's cursus, completed by a master degree in ICT for town and country planning, crosses both approaches of social studies and technical insights into the information and communication technologies fields.
Passionated by simple and posh resolution of complex social issues, he is particularly sensible to systemic approaches, representations and stakeholders' strategies, with a solid expertise regarding internet tools and technologies, and the underlying stakes.
Casual yet regular web developper, he worked a few years with Mediawiki before switching to Elgg as main platform for the company's projects (mainly for a regional network of continued learning teachers - FormaVia), which led him to involve in what became Elgg's french community.
He's also a lecturer in masters degree at Toulouse-le-Mirail university, and gives occasional courses about the use of « web 2.0 » and collaborative tools.
Mini-bio
Elgg is an opensource social framework that runs on MySQL + PHP servers with minimal requirements.
It's designed to build public or private websites with social functionnalities such as : intra/extranets, social networks, and other websites that are based on interactions between users, groups and content.
Its core distribution provides many tools : members, customisable profile pages, groups, widgets, tags, blogs, bookmarks, wikis,

Elgg is caracterised by an extensible and developper-friendly framework :
it offers a high-level API that lets manipulate "ElggEntities" which acts like objects : sites, users, groups, objects, which are extensible, and overridable ;
uses an extensible views system (XML, RSS, mobile views, etc.), which lets extend or override almost any view, functionnality and functions of the core system ;
great modularity and integration capabilities, and it interacts easily with webservices (both as client and server).

Its international growing community (more than 52K members) has developped numerous quality plugins that lets non-tech people build advanced communities with minimal technical skills, but is also a delight for developpers who like to embed/intergate existing libraries and third-party services.
Abstract
http://id.facyla.net/
http://elgg.org/
Sponsored by Items International
http://www.items.fr/
Thanks !
Racines de la communauté francophone :
un point de ralliement pour les problématiques francophones (accentuation, traductions, etc.)
rencontres et événements
annuaire qualifié des membres
développement de plugins
& plus encore...
-->> rejoignez-la ! <<--
Items & Elgg ~ Items is the main architect or builder of following organisations : FormaVia, DATAR, l'Obtic, IESTIC, OpenDataGarage, Items,...
Items is involved in a dozen regional or national Elgg-projects (including Fing), and has released more than 10 community plugins so far.
Items supports Elgg.fr community as an active member (and as initial co-founder with Fing, Paris Descartes, Mélèze Conseil...
Full transcript