Drupal Commons, un réseau social avec Drupal ?

Version imprimableEnvoyer à un ami

Annoncé il y a quelques mois par Acquia, le profil d'installation Drupal Commons est actuellement en phase beta avant une sortie prévue à la fin de la semaine prochaine. Précision importante, Drupal Commons tourne sous Drupal 6.

Rappelons que le principe du profil d'installation est de fournir une distribution Drupal préconfigurée et incluant des modules additionnels pour produire dès l'installation un site plus ou moins achevé, en tout cas très avancé. Il en existe déjà quelques unes. Chacune est "spécialisée" dans un type de site précis (à l'exception de Pressflow qui est une sorte de clone de Drupal dopé pour encaisser un trafic important).

Drupal Commons est un profil d'installation orienté "réseau social".

Un réseau social, ce sont d'abord des utilisateurs qui communiquent entre eux et se regroupent par affinités. Comme il fallait s'y attendre, DC fait un large usage de Organic Groups, que je ne présente pas dans le détail ici, mais qui permet de créer des groupes d'utilisateurs avec une gestion des membres et de l'administration, des contenus à usage d'un groupe déterminé, etc. User_Relationships permet de créer et qualifier des relations entre utilisateurs. Le module Shoutbox fournit un système de chat intégré. Userpoints permet de distinguer les utilisateurs en leur attribuant des points. Heartbeat rend compte de l'activité des utilisateurs (Untel a rejoint le groupe Truc, Unetelle est désormais amie de Machin...). Le couple Messaging + Notifications est également présent.

Les concepteurs de DC ont peaufiné la création de contenus. Avec, naturellement, un éditeur WYSIWYG (CKeditor) et better_formats pour bien gérer les formats d'entrée. Vertical_tabs permet de rendre le formulaire de création/édition de nodes plus sexy en séparant plus nettement ce qui relève des paramètres de publication du noeud. Pour l'intégration d'image dans le texte, éternel problème sous Drupal, la solution retenue est celle d'un champ Imagefield combiné avec le module Insert : c'est-à-dire qu'on charge l'image dans un champ distinct du corps de texte, puis qu'on l'envoie dans l'éditeur. Je vous renvoie à cette discussion en cours sur le site de test à propos des choix faits à ce sujet, et des raisons pour lesquelles les concepteurs ont écarté, par exemple, IMCE.

Toujours dans le domaine de la création de contenus, les concepteurs ont introduit un type de contenu "wiki" : le principe est simple, tous ceux qui sont membres du groupe (des groupes) dans lequel a été créé le contenu peuvent l'éditer. Quelques modules "wiki" sont donc inclus (Diff, Freelinking, Wikitools) - je vous renvoie à ma petite étude de cas "Wikipedia drupalisée" pour une présentation de ces modules.

La présence de Flag et Rules ne surprendra pas non plus ceux qui les connaissent. Par ailleurs, Drupal Commons étant un produit Acquia, il intègre tous les modules de la distribution Drupal Acquia (donc, entre autres, le CCK évidemment, Views, ImageCache et quelques autres machines de guerre). Tous ne sont pas activés, mais ils sont "sous la main".

Cependant, et assez curieusement, Commons out-of-the-box ne propose pas de gestion d'images et d'albums photos. Il faudra construire son système soi-même, à moins qu'ils ne l'intègrent dans une version suivante. On pourra utiliser simplement Image Gallery qui fait partie de la distribution Acquia.

Enfin, il faut reconnaître que visuellement, le résultat est très léché. Un thème spécifique a été construit à partir du thème Fusion de TopNotchThemes (partenaire d'Acquia), qui est pourvu d'une large gamme d'options ; la personnalisation est facile pour le néophyte. L'interface en général est gérée en mode clickodrome, avec des Context et des Panels à tire-larigot. Ce dernier est d'autant plus inopportun à mon avis qu'il pouvait être avantageusement remplacé pour les usages qui en sont faits par un module de dashboard (il y en a plusieurs sur le même principe) et un template de page d'accueil (page-front.tpl.php) - qui, certes, aurait été moins facilement personnalisable par l'administrateur du site, mais aurait un peu épargné le serveur.

Car, et maintenant que la présentation (fort peu exhaustive, mais vous découvrirez la bestiole par vous-même) est faite, passons à la critique, car - disais-je - c'est sur ce point que Drupal Commons pose le plus de problèmes. Mon serveur local (j'utilise Wamp sur Windows 7) gardera longtemps un souvenir désagréable de cette installation. Boostez les ressources PHP (memory_limit, max_execution_time...) si vous ne voulez pas voir le serveur s'effondrer sur lui-même. Je n'ose imaginer ce que ça donne en production avec plusieurs milliers d'utilisateurs intervenant des milliers de fois à chaque minute. Si (comme moi, donc sans connotation péjorative) vous en êtes au stade de l'hébergement mutualisé et du développement du dimanche, vous oubliez vos ambitions zuckerbergiennes. J'ai bien dit : ou-bli-ez. Disons le clairement, Drupal Commons s'adresse aux entreprises à forte capacité (comme, du reste, la plupart des profils d'installations récemment sortis).

Finalement, c'est un peu le piège de Commons : fournir un produit fini très séduisant, très simple [moyennant un peu de temps tout de même] à mettre à sa sauce, en faisant croire qu'en quelques clics vous aurez le super réseau social de vos rêves, mais sans préciser que si le logiciel fourni est gratuit, un réseau social pour être opérationnel a des contraintes "cachées" bien plus fortes et bien plus coûteuses que trois clics et deux coups de cuillère à pot.

Et en fin de compte, je me demande si ce profil d'installation n'est pas "trop" fini, quelque part. Le principe du PI est d'avancer le travail pour que l'administrateur puisse se consacrer aux finitions plus rapidement. Commons est en réalité la combinaison de deux features (au sens du module Features), commons_core et commons_notifications, avec tout ce que cela implique (Strongarm and Co). Je remercie ceux d'entre vous qui, par d'autres canals (Twitter ou IRC), m'ont exposé les raisons de leur enthousiasme pour Features et je reconnais méconnaître les contraintes du développement en équipe et de la gestion collaborative de versions de logiciels. Pour autant, je perçois mal, c'est un euphémisme, ce que Features apporte ici. Que le profil d'installation avance mon travail en paramétrant déjà certaines choses, c'est parfait. Mais ensuite je veux ma liberté sur la suite des événements. Si je fais des modifications, par exemple dans l'attribution des points de Userpoints, vais-je les enregistrer comme des "overrides" dans ma base de données ou vais-je mettre à jour les "features" pour les enregistrer en code (il paraît que c'est mieux) ? Mais alors que va-t-il se passer si Acquia modifie la feature de son côté et me propose de mettre à jour ?

Je pense surtout que Features a été très mal utilisé ici : il aurait été plus approprié de démultiplier les fonctionnalités (je veux un système de gestion d'album d'images, j'active la Feature X ; je veux un système de wiki par groupes, j'active la Feature Y... etc.), que de tout proposer - imposer - en un seul bloc. En l'état, si je veux une gestion fine, je dois désactiver l'ensemble de la feature puis reparamétrer une partie des modules. Tu parles d'un intérêt !

Bref, à ce stade et compte-tenu de mes compétences en informatique, je serais quasiment contrainte d'utiliser Commons tel quel, sans rien modifier. Indépendamment de ce que la locution "être contrainte" m'inspire d'effroi, l'intérêt d'une distribution Drupal aussi peu modulaire par rapport à un logiciel propriétaire ou un développement maison (donc contrôlé) se discute sérieusement. Surtout quand les choix techniques qui ont présidé à cette distribution paraissent si peu pertinents au regard de l'emploi des ressources serveur, au point que même à vide un serveur local rame, à faire pitié. On a l'impression que les concepteurs de Drupal Commons sont un peu partis dans leur délire, chargeant la barque pour lui donner un air de yacht, mais sans repasser par la case "architectes navals"...

Il reste cependant que sous Drupal Commons, il y a toujours Drupal, et que rien n'interdit d'aller cocher et décocher les cases voulues. C'est la gestion à long terme des mises à jour qui pose problème, mais celui-ci est général à Drupal dans son ensemble.

Je serais ravie d'avoir votre avis. Vous trouverez le yacht à son port : http://commons.acquia.com/home ; vous pouvez créer un compte (user/register comme toujours) ou le télécharger (dépôt SVN) pour une installation en local. Je rappelle qu'il est en phase beta donc en tests.

Pour mémoire, il existe d'autre solutions open-source pour créer un réseau social, comme Elgg ou BuddyPress, qui ne proposent pas (à ma connaissance) de système de wiki de groupes comme Drupal Commons, et probablement rien d'équivalent à Userpoints ou à la gestion drupalienne des rôles utilisateurs (qui reste exceptionnelle). Je ne connais pas les logiciels propriétaires sur ce marché (je crois que l'un des leaders s'appelle Jive), et il existe enfin des offres hébergées gratuites ou payantes, comme Ning, SocialGo, ou Spruz. DrupalGardens permet aussi d'en monter un, mais avec moins de fonctionnalités spécifiquement "utilisateurs" et plus de travail à faire. Buzzr enfin peut répondre plus facilement à certains besoins. Une comparaison entre Commons, Elgg et BuddyPress pourra faire l'objet d'un prochain billet ou d'une présentation en Drupal Drink/Meeting/Meet-up/Camp/appelez-ça-comme-vous-voulez (bref, la prochaine fois qu'on boira un coup entre zamis-de-drupal).

merci pour le

merci pour le compte-rendu.
Les problemes que tu évoques me rappelent ceux que j'ai rencontré avec open atrium : ne pas trop savoir ce qu'on peut overrider ou pas, features qui rajoute une couche de plomb par dessus le bouzin qui fait qu'on n'est plus aussi libre de le customiser qu'un drupal classique (ou du moins on hésite à mettre les mains dedans ! ).

En théorie avec features tu peux
- modifier tout ce que tu veux comme normalement. Simplement les éléments apparaitron comme "overridés", c'est à dire différents de la version de la configuration qu'il y a dans le code.
Si tu mets ensuite à jour ta distribution, tes modifications seront toujours prises en compte MAIS les modifications apportés sur la distribution, elles, tu risques de ne pas les voir ! Peut être qu'ils ont modifiés des vues, des champs CCKs, or si tu as tout overridé, tu ne le sauras jamais :-/
(sauf à faire un gros drush features-revert-all -force avec drush pour revenir à LEUR version, ce qui implique évidemment que tu perds alors tes customisations à toi. )

bref, une fois que tu commences à overrider des trucs, c'est tout à fait comme si tu faisais un fork car tu te désolidarises du code initial pour créer ta propre configuration.

C'est à la fois l'avantage et l'inconvénient d'utiliser features (ou autre solution à base d'exportables)
1) tu peux modifier à volonté tout un tas de choses vu que ce sont des vues et des champs CCK, etc... Tu ne pourrais pas faire ça avec un module qui fait tout en php, en interne.
2) mais dès que tu touches ça, tu ne profiteras plus des mises à jours des vues etc... qu'apporteront les prochaines versions pour les éléments que tu auras overridé

Strongarm est un sujet plus épineux : il verrouille carrément certain trucs en t'interdisant de les changer car un module a besoin d'un réglage précis pour fonctionner, il t'interdit donc de le modifier.

Hélas, que ce soit features ou une autre solution le probleme serait le même : si on te donne des vues par défaut, des champs CCK etc..., oui tu peux les customiser mais tout override fais que tu crée un espece de "fork" de la distribution.

Merci Yann pour les réponses

Merci Yann pour les réponses sur les mises à jour de features. Elles confirment un peu l'idée que modifier un tel profil est une opération potentiellement plus coûteuse que ne pas l'adopter. Plus généralement, dans le dilemme qui déchire Drupal (rester un "framework" souple-adaptable ou proposer un "produit" clé-en-main), ces profils d'installation (tu as raison de citer Open Atrium, c'est vraiment la même logique) partent dans le sens du produit fini. Qui annule en bonne partie la dimension modulaire de Drupal (tout en continuant de dépendre de multiples briques dont on ne sais pas très bien dans quel sens elles vont partir).

"Qui annule en bonne partie

"Qui annule en bonne partie la dimension modulaire de Drupal (tout en continuant de dépendre de multiples briques dont on ne sais pas très bien dans quel sens elles vont partir)."

Bin ça dépend comment tu conçois le probleme :

- si par exemple un module de boutique en ligne utilise une vue par défaut pour afficher ses produits, ça te donne le pouvoir de la modifier donc de customiser ton site grace à la modularité de Drupal. Mais ça implique que la vue soit dans le code du module (ou dans une features).

- en revanche si ce même module de boutique en ligne n'utilise pas views du code php en dur, tu ne pourras rien faire, aucun customisation possible (sauf si tu es dev et que tu as des hooks bien implémentés à disposition).

Donc à mon sens ça offre une souplesse plus grande. Evidemment si tu veux personnaliser ta solution, tu fais plus ou moins un fork de la distrib mais c'est inévitable si tu veux concevoir un produit unique... Donc y'a un moment où il faudra faire les mises à jour des modules mais plus la mise à jour de la distrib (comme sur un drupal normal), ça constitue juste un super point de départ :-)

Installation de Commons

Tout d'abord merci pour cet article.

Attiré par le sujet je me suis lancé dans l'installation du "Package". Je ne suis pas un spécialiste néanmoins j'ai déjà fait quelques installation de Drupal, donc pas de problème technique.

Soit je m'y suis mal pris, soit ce n'est pas abouti.
Je me suis penché sur la documentation avant d'installer DC. Démarche simple, vu que j'ai un environnement opérationnel (Apache, Php, MySQL), j'ai fait une installation "propre" de Drupal puis j'ai téléchargé le zip contenant l'Update (acquia-drupal-1.2.30.5322-update).

Je m'attendais à du "Plug and Play" avec du contenu de base ... rien!
Les modules sont bien présents mais pas activés, on ne sait pas lesquels activer, pas de page d'accueil permettant de valider le bon fonctionnement de l'application ...

Est-ce que ma démarche est la bonne? Si non je serai ravi d'en savoir plus sur votre installation.
Merci d'avance pour votre retour.

PS: Est-ce que c'est bien de l'Open Source Gratuit ou faut-il payer Acquia (network services)?

bonsoir, il faudrait

bonsoir,

il faudrait peut-être utiliser le package correspondant à Drupal Commons plutôt que celui d'Acquia Drupal ! ce n'est pas la même distribution ! à partir de là ça s'installe comme n'importe quelle distribution de Drupal, il suffit de choisir le profil Drupal Commons.

si vous rencontrez d'autres difficultés, merci de passer par les forums de drupalfr pour demander de l'aide.

Infos

Bonsoir,

Je voulais m'informer si nous pouvons configurer drupal commons c'est a dire ajouter quelques modules afin de le personnaliser a notre manières, aussi de jouer sur les droits d'affichage ect ......

  bonsoir, à partir du moment

 

bonsoir,

à partir du moment où il y a Drupal sous Commons, tout ce qui est réalisable avec Drupal est réalisable dans Commons. La seule question est de savoir à partir de quand il est plus judicieux de partir de Drupal tout court et de construire dessus, que de partir de Commons et d'en détruire une partie. Cela dépend entièrement des personnalisations que vous souhaitez faire. A vous de voir...

 

Poster un nouveau commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.