Accueil du site > PHP > Construisez un réseau social avec php et Elgg

Construisez un réseau social avec php et Elgg

samedi 13 mars 2010, par fabrizio

La grande mode est au réseaux sociaux. Si Facebook et Twitter tiennent le haut du pavé, leurs cadets se multiplient rapidement. De grande taille ou plus modeste on ne peux plus échapper à ce concept. Hobbies, Sports, Entreprises , Familles .... tout est prétexte pour se réunir au sein de ses groupes.

Une chose est de participer à un réseau et une autre chose et d’en construire un. Les contraintes liés à ce type d’application sont suffisamment complexes pour que Facebook développe un PHP maison pour gagner en performance. Sans aller jusque là, le développeur web qui se lance dans la construction d’une telle entreprise devra effectuer un choix difficile. Si les CMS lui sont utiles ils sont généralement tournés vers d’autres besoins. L’utilisation de Framework , rendra le développement extrêmement onéreux en temps et débogage.

Enfin il reste la possibilité d’utiliser un outil ( le mot CMS est un peu impropre ) spécialement destiné à cet effet, et aujourd’hui je vous présente Elgg.

Elgg est une application PHP spécialement destinée à la construction de réseau sociaux. Débuté en 2004 la version actuelle est la 1.7. Il propose d’installer votre réseau en quelques opérations relativement simple.

Elgg en images et en action

Pour exemple voici le rendu d’un site développé avec Elgg, en l’occurrence le site de la communauté francophone.Si le look est assez sommaire et uniforme, il est quand même aisé de le modifier.

PNG - 175.6 ko
La page d’accueil de Elgg France

Une fois sur le site un ensemble de fonctionnalités sont proposées. Elles s’activent en passant par l’interface d’administration. Bien entendu en tant que membre vous pouvez vous faire pleins de petits copains ... Mais le but avant tout d’un réseau est de partager des informations ( blog, photos, forums ....) avec les autres personnes. Tout cela est facilement réalisable avec Elgg. Vous pouvez créer des groupes privés ou publics. Paramétrer vos alertes mail sur chacun d’eux. Vous pouvez tenir à jour un blog est en partager l’accès à vos amis ou à l’ensemble de la communauté.

PNG - 90.9 ko
La page de profil dans Elgg

Parmi les points intéressants proposés par Elgg il y a les widgets que vous pouvez inclure dans vos pages et qui sont également paramétrables. Par exemple vous pouvez avoir un ’flux’ sur l’activité de votre groupe préféré sur votre page de profil. De plus des plugins qui ne sont pas forcément intégré au noyau de Elgg vous proposeront d’autres widgets, un agenda par exemple.

Programmez pour Elgg : points forts et points faibles

Je pense que Elgg est vraiment adapté pour la construction de réseaux sociaux dont la taille reste inférieur à quelques milliers d’utilisateurs. Il est important de signaler pour les développeurs qui souhaiterait l’utiliser que la prise en main de ce ’social networking platform’ est assez aisé.

- Tout d’abord l’installation se fait de manière assez simple.
- Ensuite le fait de pouvoir aisément créer de nouveaux comptes pour d’autres utilisateurs renforce cette sensation de facilité.
- La documentation, en anglais, est vraiment très accessible même pour des gens ayant un niveau limité dans cette langue.

Passé cette première étape vous souhaiterez certainement customiser votre application. Soit en changeant de graphisme soit en proposant de nouvelles fonctionnalités. Là aussi quelques bonnes surprises vous attendent.

- Vous disposez déjà d’un grand nombres de plugins dont une partie vous sont proposés par défaut lors du téléchargement de Elgg. Libre à vous de les activés ou d’en importer d’autres.
- Quant à la modification des templates ou vue, je serai presque tenter de dire que cela est un jeu d’enfant. En tout les cas ce la se fait aisément et la documentation vous permettra de changer rapidement une mise en page.
- Enfin le site de la communauté française est assez riche et quelques contributeurs aussi sympathiques qu’efficaces répondront aisément à vos demandes.

Tous ces points vous inciteront probablement à trouver cet outil excellent et vous motiverons pour vous lancer dans de nouveaux développements. Pour cela il sera nécessaire d’approfondir certains points et malheureusement vous aurez quelques ’mauvaises’ surprises. En tout les cas vous allez devoir vous adapter à quelques ’étrangetés’. La première, et elle n’est pas des moindre, et le modèle de données de Elgg. Y a t il une mode des bases de données biscornues ? Après Drupal qui prend tout pour des nœuds, Elgg rassemble toutes les données dans une table on dira charnière qui sert à relier toutes les données entre elle. L’idée en soit n’est pas mauvaise mais son application , je trouve, laisse à désirer.

- Comprendre et surtout utiliser la base de données de Elgg est parfois très compliqué et certainement très peu intuitif.
- Certains plugins sont d’une rigidité extrême ( cela est surtout du à la manière dont est conçu le modèle de données), et toute mauvaise manipulation dans l’interface d’administration aurait des conséquences graves sur le code que vous auriez développé.
- Enfin certaines actions peuvent avoir, toujours dans l’espace d’administration, pourrait avoir de très fâcheux effets secondaires.

Conclusion

Elgg est un excellent outil est répondra de manière efficace et surtout avec un faible temps de développement aux éventuelles modifications ou extensions que vous souhaiteriez effectuer. De plus vous disposez d’une communauté Française réactive qui vous aidera pour les questions les plus ardues.

Néanmoins pour ne pas être embarrassé par les défauts de cette application soyez extrêmement vigilant sur la l’ouverture de droits en tant qu’admin sur les autres membres. Et dans cet espace soyez super vigilant, certaines actions auraient des conséquences irrémédiables ( Masquez par de la css certains boutons cela vous évitera des cauchemars inutiles )

Soyez aussi vigilant lors du développement de plugin à ne pas dépendre de manière trop rigide du modèle de données de Elgg.

En tant que développeur j’apprécie travailler sur cet outil et si vous souhaitez développer une application ’social’ je vous le recommande.

Portfolio

Une page de groupe dans Elgg

1 Message