Template WordPress multi-site
Transcription
Template WordPress multi-site
Plaquette de stage Stagiaire : Jonathan CAPITAO Entreprise : Université de Genève Durée du stage : 20 semaines Maître de stage : Pierre LEHMANN Conseiller Pédagogique : Luc-André FONTAINE CAPITAO Jonathan Université de Genève 21 mai 2014 Table des matières Remerciements ....................................................................................................................... 4 Présentation de l'entreprise ..................................................................................................... 4 Présentation du mandat ........................................................................................................... 5 Objectifs .............................................................................................................................. 5 Contraintes relatives aux objectifs : .................................................................................... 5 Compétences ........................................................................................................................... 5 Méthode de versionning ...................................................................................................... 5 Développement avec CMS ................................................................................................. 5 Problèmes rencontrés pendant le mandat ............................................................................... 6 Environnement de travail........................................................................................................ 8 Matériels informatiques ...................................................................................................... 8 Accès ................................................................................................................................... 8 Logiciels .............................................................................................................................. 8 Un multi-site Wordpress ......................................................................................................... 9 Qu'est-ce qu'un multi-site.................................................................................................... 9 Que permet un multi-site Wordpress .................................................................................. 9 Les avantages de Wordpress ............................................................................................... 9 Les inconvénients................................................................................................................ 9 Comment crée un multi-site Wordpress ........................................................................... 10 Déployer la charte graphique sur le multi-site...................................................................... 15 Configurer le thème pour le multi-site ................................................................................. 16 Sécuriser le multi-site Wordpress avec Shibboleth .............................................................. 18 Qu'est-ce-que Shibboleth .................................................................................................. 18 Comment sécuriser le multi-site avec Shibboleth ............................................................. 18 Buddypress ........................................................................................................................... 21 Qu'est-ce-que Buddypress ................................................................................................. 21 Configurer Buddypress ..................................................................................................... 21 Permettre l'envoi de messages généraux avec buddypress : ............................................. 24 PressBooks............................................................................................................................ 25 Qu'est-ce-que PressBooks ? .............................................................................................. 25 Paramétrer PressBooks ..................................................................................................... 25 Autre(s) plugin(s) ................................................................................................................. 27 Advanced Custom Fields .................................................................................................. 27 jonradio Reveal Network Activated Plugins..................................................................... 27 MiniMeta Widget .............................................................................................................. 28 Page 2 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Simple Tags ...................................................................................................................... 28 Type – Complete Solution for Custom Fields and Types ................................................. 28 WEN's Responsive Column Layout Shortcodes ............................................................... 29 Responsive design sur « ciel.unige.ch » ............................................................................... 30 Bibliographie ........................................................................................................................ 31 Page 3 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Remerciements Tout d'abord, j'aimerais remercier l'Université de Genève d'avoir bien voulu m’accueillir dans leurs locaux, particulièrement l'équipe du NTICE pour m'avoir aidé pendant mon stage. J'aimerais également remercier M. Fontaine d'avoir bien voulu être mon conseiller pédagogique. Présentation de l'entreprise Le NTICE ou service des Nouvelles Technologies de l'Information, de la Communication, et de l'Enseignement appartient à la division STIC (Système et Technologies de l’Information et de la Communication) de l’Université de Genève. Le STIC s'occupe d'organiser l'élaboration, la révision (et mise à jour), la mise en œuvre et le suivi du Plan Directeur d'évolution du Système d'Information institutionnel (PDSI). Organigramme STIC : http://www.unige.ch/stic/acteurs/organigramme.html Le NTICE a pour mission de mettre en place les nouvelles technologies au service de la communauté universitaire et est organisé en quatre pôles : Data Management (la gestion des données de façon sécurisée) Portail (gérer le point d'accès aux données) Environnements Web (la gestion du serveur institutionnel qui héberge le site Web et les applications liées au Web.) e-Learning (gestion des plates-formes d'enseignement et d'apprentissage, la numérisation des cours et leur diffusion sur internet et les outils de simulation à des fins didactiques) Organigramme NTICE : http://www.unige.ch/stic/acteurs/organigramme/ntice.html Page 4 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Présentation du mandat Objectifs Créer un multi-site (réseau de site) Intégrer une charte graphique spécifique au multi-site Intégrer divers extensions/modules Gérer le déploiement de sites à l'aide du multi-site Chercher des extensions/modules pouvant être utiles pour des groupes de recherches. Contraintes relatives aux objectifs : Utilisation du CMS (Content Management System) : • Wordpress Respecter la charte graphique présente sur : • ciel.unige.ch Parmi les modules à intégrer au minimum les 3 suivants : • Shibboleth • Pressbooks • Buddypress Note : Shibboleth a été remplacé par Shibbolize qui est la version optimisée pour les multisites utilisant Shibboleth. Compétences Dans le cadre de mon stage, j'ai dû acquérir/améliorer certaines compétences dans le but d'avancer dans mon travail. Méthode de versioning J'ai dû améliorer mes compétences dans l'utilisation de « Git » pour pouvoir effectuer des sauvegardes, des versions simples à récupérer et à utiliser. J'ai, entre autres, appris à créer des « tags » pour marquer les versions stables. Développement avec CMS J'ai dû apprendre à paramétrer, configurer et développer à l'aide du CMS Wordpress. J'ai également eu l'occasion de découvrir que lorsqu'on travaille avec un CMS comme Wordpress, les problèmes surviennent plus souvent lors de la configuration et du paramétrage plutôt que pendant le développement (notamment car le développement est moins présent et est beaucoup basé sur des fonctions déjà existantes). Page 5 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Problèmes rencontrés pendant le mandat Depuis que le stage a commencé, j'ai rencontré principalement 3 problèmes : Le premier problème que j'ai rencontré est survenu lorsque j'ai tenté de tester les plugins Shibboleth et Shibbolize en local, j'ai remarqué que si aucun serveur Shibboleth n'a été configuré pour la machine, le site devient simplement inutilisable. Il faut dès lors revenir en arrière avec une sauvegarde. Pour créer une sauvegarde avec Wordpress, il faut nonseulement copier le site mais aussi la base de données en entier. J'ai donc créé un répertoire « Git » distant sur « bitbucket.org » pour me permettre d'avoir un suivi des versions du site et de la base de données. Le second problème que j'ai rencontré est arrivé lorsque j'ai tenté d'installer Shibbolize sur le serveur de test (ple2012-dev.unige.ch). Pendant que la configuration de Shibboleth était en cours de paramétrage, il était impossible de se connecter au multi-site que j'avais créé. En cas de tentative de connexion les erreurs suivantes apparaissaient : Page 6 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Le dernier problème que j'ai rencontré concernait Buddypress, en effet à cause des adresses Shibboleth les noms d'utilisateurs générés par Shibboleth contenait des « @ » qui ne sont pas compatibles avec les adresses générées par Buddypress. Mes collègues ayant déjà rencontrés ce problème par le passé m'ont expliqué qu'il fallait changer un peu le code du plugin Shibbolize, j'ai donc ajouté le code suivant au fichier « shibboleth.php » du plugin « Shibbolize » : Page 7 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Environnement de travail Matériels informatiques Un bureau avec un ordinateur, un clavier, une souris et un écran m'ont été fournis. On m'a également autorisé à travailler sur mon ordinateur portable. Accès J'ai en plus de cela reçu une adresse e-mail de l'université, un accès aux services informatiques ainsi qu'une carte d'accès pour la salle de travail. Logiciels Serveurs • • • WampServer 2.4 PHP 5.4.12 Serveur Apache 2.4.2 Base de données • MySQL 5.6.12 CMS (Content Management System / SGC (système de gestion de contenu) • • CMS Wordpress 3.8.x CMS Wordpress 3.9.x Éditeur de texte et IDE • • Notepad++ 6.5.3 NetBeans IDE 7.3 Versioning et backup • PortableGit 1.8.1.2 Page 8 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Un multi-site Wordpress Qu'est-ce qu'un multi-site Un multi-site est une plate-forme permettant de créer dynamiquement des sites et gérer ces sites de façon plus ou moins centralisée. Que permet un multi-site Wordpress Avec Wordpress un multi-site permet de créer un site en remplissant un simple formulaire contenant la fin de l'adresse du site qui doit être un « slug » une chaîne de caractères et de chiffre ne contenant ni accent, ni espace, ni majuscule ou encore aucun caractère spécial, puis le titre du site (facultatif) et l'adresse email de l'administrateur. Les avantages de Wordpress L'avantage de Wordpress est l'utilisation de thèmes et de plugins, les thèmes représentent la charte graphique et les plugins représentent des fonctionnalités. Des fonctionnalités peuvent être déployées à tous les sites du multi-site à l'aide de l'interface de gestion des plugins sur le réseau. Cependant, ces fonctionnalités peuvent également être activées manuellement pour chaque site. Les inconvénients Dans le cas d'un multi-site Wordpress, il faut savoir, qu'il déploiera par défaut le thème Wordpress de base du moment (TwentyFourteen). Les plugins peuvent être par défaut activés sur n'importe quel site par l'administrateur du site en question, ce qui n'est pas souhaitable. Il est plus sûr de laisser la gestion et la distribution des plugins aux administrateurs du multi-site (qui peuvent activer les plugins sur chaque site individuellement). Page 9 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Comment créer un multi-site Wordpress Pour créer un multi-site Wordpress, il faut tout d'abord installer une instance Wordpress. Pour se faire, il faut commencer par télécharger et décompresser Wordpress (sur http://wordpress.org/download/) puis ouvrir le site pour obtenir ceci : Cliquez sur le bouton « Create a Configuration File ». Wordpress va ensuite vous avertir qu'il va avoir besoin d'un nom de base de données, un nom d'utilisateur, un mot de passe et un hôte pour la base de données. Dans le cas où vous voulez utiliser plusieurs instances de Wordpress, il vous faut un préfixe de table pour permettre à Wordpress de les différencier. Ces informations peuvent lui être données soit via le formulaire qui va suivre soit en modifiant le fichier wp-config.php (vous pouvez aussi directement écrire ces informations dans le fichier modèle mis à votre disposition par Wordpress « wp-config-sample.php » et le renommerwp-config.php) Le formulaire : Page 10 sur 31 CAPITAO Jonathan Université de Genève wp-config.php : (uniquement les parties à modifier) Page 11 sur 31 21 mai 2014 CAPITAO Jonathan Université de Genève 21 mai 2014 Suite de l'installation Après quoi, il faut remplir un dernier formulaire contenant : Le nom du site, le nom d'utilisateur du site, le mot de passe de l'utilisateur, une confirmation de ce mot de passe et l'adresse email de l'administrateur du site : A présent, Wordpress est installé et fonctionnel, cependant ce n'est pas encore un multi-site. Page 12 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Transformer une instance Wordpress en multi-site Tout d'abord il faut modifier le fichier wp-config.php pour y ajouter la ligne « define('WP_ALLOW_MULTISITE',true) » : Ceci permet de faire apparaître un nouvel onglet dans l'interface de Wordpress : l'onglet «Network Setup» qui permet de commencer l'installation des fonctionnalités multisite de Wordpress se présente sous la forme du formulaire suivant : Il vous faut cliquer sur «Install», Wordpress vous expliquera les 2 étapes suivantes à effectuer pour finir l'activation des fonctionnalités multi-site. C'est à dire modifier les fichiers suivants : • • wp-config.php .htaccess Page 13 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Dans wp-config.php Dans .htaccess réécrire le contenu de la balise <ifModulemodrewrite.c></IfModule> de la façon suivante : Une fois les 2 fichiers modifiés, reconnectez-vous au site et vous aurez un onglet « My Sites » qui apparaîtra dans la barre d'outils de Wordpress en haut à gauche de votre page d'administration. Passez alors le curseur de votre souris dessus, puis sur le menu « Network Admin » qui apparaîtra en dessous et pour finir, sur le sous-menu « Dashboard » où vous pourrez alors commencer à configurer votre multi-site. Page 14 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Déployer la charte graphique sur le multi-site Comme dit précédemment Wordpress utilise par défaut un thème obtenu de base avec Wordpress (TwentyFourteen). Ce thème n'étant pas celui que nous avons personnalisé pour le multi-site. Pour pouvoir décider du thème par défaut lors de la création des nouveaux sites sur le multi-site, il faut soit aller modifier à la main dans le code du thème par défaut utilisé, soit chercher un plugin qui peut le faire. Le plugin permettant de résoudre ce problème est « New Blog Defaults ».Il permet de paramétrer de façon plus poussée les nouveaux sites créés avec le multi-site, incluant le thème par défaut ainsi que bien d'autres options d'un site Wordpress, telle que, le format des permaliens(structure des adresses web du site), le format de la date, de l'heure et bien d'autres . Avec ce plugin, il vous suffit dans la partie configuration du réseau du multi-site de passer votre curseur sur le menu « Settings » puis de cliquer sur « New Blog Defaults » et pour finir aller chercher la partie « Default Thème » de la page qui s'ouvrira : Changez le contenu de la liste déroulante par le thème que vous avez installé et configuré, allez ensuite en bas de la page et cliquez sur le bouton « Save Changes » Page 15 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Configurer le thème pour le multi-site Les contraintes du mandat demandent de reprendre la charte graphique de ciel.unige.ch,c'est pourquoi, j'ai repris le thème utilisé par celui-ci (qui est également un Wordpress mais pas un multi-site) «Boldr Pro », ayant été créé par «Iceable » (http://www.iceablethemes.com/shop/boldr-pro/). Ce thème possède une interface de configuration depuis Wordpress. Accessible via le menu « Appearance » puis le sous-menu «Theme Options » : Cette interface a beau être très pratique, cependant elle a un défaut : elle ne s'applique que sur le site sur lequel on configure le thème. Cela ne permet donc pas de déployer les paramètres du thème aux nouveaux sites créés par le multi-site. Page 16 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Pour se faire, il faut modifier les fichiers d'initialisations du thème. Lorsque Boldr Pro est installé, il va préparer une configuration par défaut qui sera déployé à chaque fois qu'un site utilisant le thème sera créé. L'idée est de changer cette configuration par défaut avec les paramètres que contiennent ciel.unige.ch. Le fichier en question se trouve dans le sousrépertoire du thème « functions/icefit-options » et s'appelle « settings.php ». Il ne faut modifier que les lignes débutant par « default ». Exemple : Dans le cas du logo, il faut ajouter l'url de l'objet media qui aura été transmis au site : Page 17 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Sécuriser le multi-site Wordpress avec Shibboleth Qu'est-ce-que Shibboleth Shibboleth est un programme open source permettant d'implémenter un système d'authentification unique (Single Sign-On : SSO) pour toutes les applications web d'une organisation. Il permet aux sites de gérer les autorisations pour l'accès des ressources en ligne de façon privée, de normaliser les attributs d'authentification. Pour accéder à une ressource numérique, l'utilisateur se fait rediriger vers un service lui forçant à sélectionner son établissement, après quoi, il doit se connecter au fournisseur d'identités (identity provider) pour pouvoir accéder à la ressource. L'authentification unique a pour but de centraliser la gestion des mots de passe (mot de passe unique) encourageant ainsi les utilisateurs à utiliser des mots de passe fort. Comment sécuriser le multi-site avec Shibboleth À l'origine le plugin conseillé dans le mandat se nommait Shibboleth, mais lors de mes premières recherches effectuées sur le sujet, le plugin Shibboleth ne gérait ni le multi-site, ni Buddypress. Cependant, un plugin basé sur Shibboleth avait été créé dans le but d'être compatible avec les multi-sites Wordpress et avec Buddypress. Ce plugin s'appelle Shibbolize. Page 18 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Une fois Shibbolize installé, il faut le configurer en fonction des paramètres du serveur Shibboleth : Les paramètres généraux de Shibboleth (IdP : Identity Provider ou Fournisseur d'identité) : Page 19 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Les attributs qui ont été ajoutés à la session Shibboleth : Les rôles qui sont attribués à chaque site en fonction des droits Shibboleth : Après quoi, il faut modifier les fichiers « .htaccess » des parties du site (dans le dossier wpadmin qui contient les panneaux d'administration notamment) que nous souhaitons protéger : Page 20 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Buddypress Qu'est-ce-que Buddypress Buddypress est un plugin permettant au utilisateur du site ou multi-site d'accéder à des fonctionnalités communautaires telles que : • l'ajout d'ami (ou plutôt envoi de demande d'ami) • la création de groupe, • la création d'activité • l'envoi de message • changer d'avatar • recevoir des notifications • les paramètres du compte Buddypress (email, les cas d'envois de notification et le profil Buddypress qui est composé de champ personnalisés sélectionnés par l'administrateur) Configurer Buddypress Buddypress se configure depuis le tableau de bord du multi-site dans « Settings » puis « BuddyPress ». La configuration de celui-ci est séparée en 3 parties. Composants (les modules que Buddypress utilise, la création de groupe est un module notamment) : Page 21 sur 31 CAPITAO Jonathan Université de Genève Les pages sur lesquelles Buddypress s'affiche : Les paramètres généraux de Buddypress : Page 22 sur 31 21 mai 2014 CAPITAO Jonathan Université de Genève 21 mai 2014 Vous pouvez choisir les champs du profil personnalisé que les utilisateurs auront dans le menu « Users » puis sous-menu « Profile Fields » : Pour ajouter un nouveau champ, cliquez sur « Add Field » puis sélectionnez, le nom du champ, la description, le type de champ et choisir si vous souhaitez rendre ce champ obligatoire : Page 23 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Permettre l'envoi de messages généraux avec Buddypress : De base Buddypress permet d'envoyer un message d'annonce à tous les utilisateurs Buddypress du site, cependant il n'est pas capable de le faire de façon ciblée (envoyer le message à un seul groupe Buddypress). Cependant, un plugin appelé « Mass Messaging in Buddypress » permet d'envoyer un message à un groupe d'utilisateurs (pas seulement à un groupe Buddypress mais aussi aux utilisateurs d'un site du multi-site spécifique). Il faut configurer ce plugin via le menu « Stormation » puis le sous-menu « Mass Messaging » : Après quoi lors de l'envoi de message il suffit de remplir le formulaire suivant (menu Buddypress en haut à droite, sous-menu « Messages » puis « Mass Messaging ») : Page 24 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 PressBooks Qu'est-ce-que PressBooks ? PressBooks est un plugin permettant de publier des livres électroniques à l'aide d'un multi-site Wordpress. PressBooks peut générer un livre à partir d'un site Wordpress du multi-site dans divers formats tels que PDF EPUB/MOBI, web ainsi que certaines variantes XML. PressBooks possède des thèmes spécifiques au plugin pour la mise en forme du fichier pouvant être généré. Paramétrer PressBooks Une fois que PressBooks est installé, il faut tout d'abord activer un des thèmes PressBooks sur le réseau : Page 25 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 On peut gérer les informations du livre à l'aide du menu « Book Info » qui sera généré à l'aide du site (auteur, éditeur, langue, droit d'auteur, etc..): La visibilité avec le menu « Utilities » puis sous-menu « Privacy » : Page 26 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Autre(s) plugin(s) Advanced Custom Fields Ce plugin permet de créer un formulaire personnalisé qui n'apparaîtra que quand une condition ou un groupe de conditions (règles) aura/auront été respectée(s). Les champs du formulaire peuvent être des champs simples (bouton radio, case à cocher ou champ texte), mais aussi être des champs plus complexes (champs texte pour email, champs pointant sur une page, champs permettant d'envoyer un fichier). Ce plugin dispose également d'extensions permettant de créer des champs obligatoires ou encore des champs avec une limite de caractères à l'insertion. jonradio Reveal Network Activated Plugins Ce plugin permet de voir à travers les sites d'un multi-site, les plugins qui ont été activés au niveau du multi-site ainsi que de décider si seule les super-administrateurs peuvent voir les plugins ou si les administrateurs des sites y ont aussi accès. Exemple de configuration : Page 27 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 MiniMeta Widget Ce plugin permet d'avoir un widget de connexion et de déconnexion pouvant être configuré depuis le tableau de bord : Simple Tags Ce plugin facilite l'ajout de mot-clé pour les postes et permet d'avoir un widget d'affichage des mots-clés plus flexible. Ce plugin peut également être configuré depuis le tableau de bord et éditer les mots-clés de plusieurs postes. Type – Complete Solution for Custom Fields and Types Ce plugin permet de créer des champs personnalisés et de nouveaux types de poste. C'est surtout pour cette seconde fonctionnalité qu'il a été installé dans le cas présent. Page 28 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 WEN's Responsive Column Layout Shortcodes Ce plugin permet à l'aide d'outils dans l'éditeur de texte Wordpress de générer un « shortcode » (un type de code spécifique à Wordpress permettant l'affichage du contenus d'être séparer sur plusieurs colonnes): Page 29 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Responsive design sur « ciel.unige.ch » Durant mon stage, il m'a également été demandé de chercher des moyens d'améliorer l'affichage de « ciel.unige.ch » sur les Smartphones et tablettes (responsive design). Pour se faire, je suis allé sur le support du thème Boldr Pro pour voir d’où pouvait venir les problèmes d'affichage sur format mobile. J'ai trouvé un article contenant un problème similaire à celui que nous avions rencontré. Les solutions aux problèmes pouvaient être les suivantes : • Si un plugin de cache était présent, il fallait le vider. • Si un plugin était déjà sensé créer un affichage mobile, il fallait le désactiver. • Si l'ancien thème du site avait également un design mobile, il fallait tenter d'activer puis de désactiver celui-ci. • Si du code avait été ajouté dans le fichier « .htaccess » pour améliorer le design mobile il fallait vérifier si le code était encore d'actualité, dans le cas contraire, les parties de code obsolètes devaient être retirées. Avec ces informations, une grande partie des problèmes de design mobile pouvait être résolue. Cependant, il restait un diaporama d'images qui ne réagissait toujours pas correctement au design mobile. J'ai ensuite écrit un article sur le forum du support dans le but de demander quel était le problème dans le cas présent, tout en essayant en parallèle de chercher un plugin permettant de reproduire le diaporama sous une forme similaire à partir d'une bibliothèque d'images depuis « flickr.com » . J'ai trouvé plusieurs plugins permettant d'afficher un diaporama depuis « flickr.com » mais chacun de ces plugins avait un défaut, certains n'affichaient qu'un nombre d'images limité, d'autres étaient mal adaptés au thème. Pour finir, j'ai appris sur le forum du support (en réponse à l'article que j'avais écrit précédemment) que la solution était d'ajouter une ligne CSS dans la partie custom CSS du thème : object * { max-width: 100%!important; overflow: hidden; Page 30 sur 31 CAPITAO Jonathan Université de Genève 21 mai 2014 Bibliographie http://wordpress.org/plugins/ http://shibboleth.net/about/ http://fr.wikipedia.org/wiki/OpenID#Fournisseur_d.27identit.C3.A9_-_IDP http://fr.wikipedia.org/wiki/Authentification_unique http://fr.wikipedia.org/wiki/Shibboleth_%28f%C3%A9d%C3%A9ration_d%27identit%C3% A9%29 http://fr.wikipedia.org/wiki/Security_assertion_markup_language http://wordpress.org/plugins/mass-messaging-in-buddypress/ http://wordpress.org/plugins/shibbolize/ http://wordpress.org/plugins/buddypress/ http://wordpress.org/plugins/pressbooks/ http://www.iceablethemes.com/forums/topic/ Page 31 sur 31