Here With Me

Le blog technique d'Amaury Balmer qui parle de technologies open-source, mais surtout de WordPress !

22 février 2011
par Amaury
7 Commentaires

Désactiver rapidement les 2 taxonomies par défaut des articles de WordPress

Dans WordPress, il n’existe pas de fonction pour désenregistrer des taxonomies, alors pour désactiver les taxonomies par défaut, il faut modifier directement le tableau de taxonomie de WordPress.

Ce qui donne le code suivant à insérer dans le fichier functions.php de son thème, ou bien dans son plugin.

<?php
add_action('init', 'remove_default_taxos', 2 );
function remove_default_taxos() {
global $wp_taxonomies;
unset($wp_taxonomies['category'], $wp_taxonomies['post_tag']);
}
?>

WordPress gère très bien la désactivation des taxonomies par défaut, et les différentes fonctionnalités propres aux catégories et aux tags sont proprement désactivées dans la console d’administration, comme dans les vues listes ou édition.

15 février 2011
par Amaury
33 Commentaires

Simple Punctual Translation, un plugin pour proposer ponctuellement des traductions sur votre site

À BeAPI, il nous arrive fréquemment que l’on nous demande de réaliser des sites multilingues.
Parfois, il s’agit de traduire l’intégralité du site, mais bien souvent il s’agit surtout de traduire les pages statiques de WordPress, ou certains articles très populaires.

Face à ce besoin plutôt basique, il n’existe pas de solution magique sur WordPress…

Les solutions existantes

Pour faire court, on peut utiliser comme plugin :

  1. WPml
  2. Qtranslate
  3. Global Translator

WPML

Ce plugin est le plus complet pour gérer les sites multilingues sous WordPress.
Il propose de traduire tout : contenus, taxos, menus, widgets. Il permet aussi une traduction de son site par des personnes extérieures, bref.

Il fait plein de choses. Le problème se résume en 3 points :

  1. On ne peut pas désactiver la traduction sur les articles WP
  2. Le code source est imbuvable, pourri et j’en passe. (il m’est arrivé de désactiver des fonctions PHP complètes, le plugin fonctionnait mieux…)
  3. Il vient récemment de passer en mode payant

De fait, à l’agence dès que l’on peut, on s’en passe bien volontiers !

Qtranslate

Alternative qui a l’avantage de proposer moins de fonctionnalités que WPML, mais avec une interface sympathique bien qu’imposant une contrainte en nombre de langues.
(Chaque langue étant affiché dans la même page d’édition que le contenu initial, avec un basculement via des onglets)

Mon principal reproche concerne l’architecture du plugin, tout stocker dans les mêmes champs, et insérer des balises XML pour différencier les langues n’est pas une méthodologie viable.
Par exemple, impossible de désactiver le plugin sans afficher tout le contenu en 3 triples. (si votre site possède 3 langues)

Global Translator

La traduction « low-cost » qui consiste à proposer une version traduite par les soins de Google, Babel Fish, Promt ou FreeTranslations de tout son site. Bien entendu le résultat est catastrophique la majorité du temps, et il n’est pas possible de proposer sa traduction. Bref, une solution pas exploitable en entreprise, mais qui très utile dans le cadre d’un blog personnel pour générer du trafic international. (mais non qualifié)

Notre solution : Simple Punctual Translation

Avec l’équipe de développement de BeAPI, on s’est mis en mode réflexion, on a imaginé toutes les fonctionnalités que l’on peut attendre d’un plugin open-source, l’architecture que l’on pourrait créer, l’impact sur les développements. Bon, je ne vous cache pas qu’on s’est bien aidé de Drupal pour lister toutes les fonctionnalités multilingues à prévoir.

Et puis face à un chantier aussi grand, on s’est dit qu’on ferait bien de commencer par une solution allégée de plugin multilingue. On a listé le besoin de base rencontré à l’agence, soit traduire certains types de contenus de WordPress et on a commencé le développement de Simple Punctual Translation.

Comme son nom l’indique, ce plugin permet de faire des traductions ponctuelles sur son site WordPress, ponctuel dans le sens nous n’allons traduire que certaines pages du site.

L’architecture retenue pour le développement est en pleine cohérence avec WordPress 3.0, nous avons créé un type de contenu traduction, et nous avons créé une taxonomie pour les langues du site. Nous avons personnalisé la console d’administration de WordPress pour proposer les fonctionnalités de traduction, un peu d’AJAX pour rendre l’interface pratique. Enfin, nous avons créé un widget affichant les langues disponibles pour le contenu actuellement chargé. Un rôle traducteur est automatiquement créé avec le plugin, il permet à un utilisateur de ce rôle d’uniquement pouvoir créer et gérer des traductions.

Les fonctionnalités utilisateurs se résume en la possibilité de switcher entre une et plusieurs langues sur la vue single d’un contenu. Ainsi, une page peut être traduite en X langues.

Le plugin propose les réglages suivants :

  • Insertion automatique des langues disponibles à la fin d’article
  • Réécriture des URLs soit via un paramètre « lang » dans l’adresse ou via un préfixe en début d’adresse :
    • http://www.herewithme.fr/contenu/?lang=de
    • ou http://www.herewithme.fr/de/contenu
  • Activation des traductions sur les post types de son choix
  • 2 modes pour le mécanisme de traduction, que je détaillerai ci-dessous.

Bien entendu, le plugin est disponible via le référentiel des extensions WordPress.

Moteurs de traduction

Pour ce plugin, nous n’avons pas voulu imposer une architecture définie pour le moteur de traduction, alors nous avons proposé un mode automatique ou manuel.

Mode automatique

Le mode automatique est plutôt destiné au grand public, car aucune modification n’est nécessaire dans le code source. Le principe est le suivant, lorsqu’on navigue sur la version allemande d’une page, WordPress récupère les données originales de la page, et notre plugin vient automatiquement injecté le contenu allemand de 3 champs, le titre, le contenu et l’extrait.

Cela veut dire que la version allemande en mode automatique conservera, si votre thème l’affiche, la date de publication, les commentaires, l’auteur, les tags et les catégories de l’article original.

Ce mode suffit largement à un usage basique du plugin de traduction, sur des types de contenu natifs, il est compatible à 99% sur les installations WordPress existantes.

Mode manuel

Ce second mode est nettement plus puissant que le premier. Le mode manuel ne modifie aucune donnée de la requête initiale de WordPress, si aucune modification n’est portée sur le thème, votre contenu ne sera même pas traduit ! Pour switcher de langue, nous nous sommes inspirés des fonctions de WordPress Mu permettant des switcher de blogs, soit switch_to_blog() et restore_current_blog().

Et nous avons créé 2 fonctions switch_to_language() et restore_original_language().

La première fonction switch_to_language() permet de basculer le contenu dans la version traduite, tandis que la deuxième fonction permet de restaurer la langue originale du contenu.

Exemple :

<?php
the_title(); // Title in English

switch_to_language();
 the_title(); // Title in French
restore_original_language();

the_title(); // Title in English
?>

Ce couple de fonctions permet aux développeurs d’être extrêmement précis sur les champs à traduire. Ce mode à mon sens, doit être largement privilégié, car il est propre, il n’interagit pas avec la requête initiale de WordPress. Néanmoins, il y a quelques défauts comme :

  • Le titre HTML de la page n’est pas traduit
  • Les plugins de fil d’ariane ne prennent pas en compte la traduction

Ce sont principalement des défauts concernant l’aspect SEO, et effectivement sur cette première version du plugin nous n’avons travaillé que l’aspect fonctionnel. Nous comptons sur les retours de la communauté pour améliorer le plugin…

Le mot de la fin

N’hésitez pas à tester ce plugin et nous faire vos retours sur le site redmine du projet.

Dernière précision, ce plugin a été développé sur WordPress 3.1, mode WP_Debug activé, il est rétro-compatible 3.0.

Pour conclure, il n’est pas compatible PHP4. (en fait je n’en sais rien, mais pour tout vous dire, je m’en fous royalement)

Le plugin est image :


6 septembre 2010
par Amaury
13 Commentaires

WordPress 3.1 : Les évolutions envisagées

Cet article est basé sur l’article de Jane Wells publié sur le blog de développement de WordPress. Ça n’est pas une traduction stricte, mais une interprétation libre de ma part.

Contrairement à WordPress 3.0, la version 3.1 se doit d’avoir un temps de développement court, les évolutions envisagées seront donc rapides, et il n’y aura pas de gros projets intégrés.

L’objectif de date pour la sortie finale de WordPress 3.1 est prévu pour mi-décembre 2010.

Cette version va avant tout privilégier les évolutions sur l’interface, la qualité et les performances du code et il n’y aura pas de modification sur le schéma. L’avis de l’équipe est de réserver les évolutions majeures pour WordPress 3.2, et ainsi produire un code de qualité en PHP5.

Donc première chose à retenir : pas de modification de schéma et pas de nouvelles API importantes.

Ce que ne contiendra pas WordPress 3.1

La refonte des médias. Une mise à jour importante du gestionnaire des médias a été envisagée par l’équipe de dev, c’est aussi l’une des demandes les plus récurrentes de la communauté. Il ne changera pas pour la simple et bonne raison que le code en question est assez tordu et qu’il serait regrettable de développer quelque chose en PHP4 alors que WordPress 3.2 sera compatible PHP5 uniquement.

De plus, c’est un chantier qui demandera du temps, qui imposera des modifications sur le schéma de la base de données et sur l’interface utilisateur. De fait, c’est un chantier couteux en temps.

Pour WordPress 3.1, la seule évolution possible sur le gestionnaire de médias sera l’envoi de fichiers HTML.

L’autre point important qui ne sera pas modifié dans WordPress 3.1 concernant la gestion de widgets. En effet, le filtrage des widgets par vue article/page/catégorie ne pourra être travaillé que dans WordPress 3.2.

En attendant, les plugins proposent des solutions appréciables.

Les fonctionnalités probables de WordPress 3.1

1. Des évolutions prévues sur l’API de taxonomie afin d’effectuer des requêtes avancées. WordPress 3.0 avec les custom types et les custom taxonomies a radicalement changé la façon de penser un site WordPress. L’API des taxonomies évolue logiquement pour répondre à toutes les attentes.

2. Une refonte importante des rôles/permissions est demandée par certains membres de l’équipe WordPress, pour la version 3.1, une première version de l’API sera proposée avec des fonctions permettant de travailler plus facilement sur les utilisateurs. À l’heure actuelle, les requêtes SQL « maison » priment encore dans ce domaine.

3. Une nouvelle fonctionnalité est également envisagée, il s’agit des liens internes. Autrement dit, la possibilité de créer des relations entre les contenus de WordPress. Il s’agit de la principale évolution à mes yeux de WP 3.1 !

Il fut un temps où seuls les articles relatifs permettaient de créer des liens entre les contenus, désormais il existe plusieurs plugins permettant de créer manuellement des liens entre le contenu (comme mon plugin Relation Post Types). Cette fonctionnalité est en vive discussion sur le trac.

4. Les pages de l’administration vont être largement AJAXifié avec quelques modifications mineures d’interface. La modération des commentaires sera également revue.

5. La barre d’administration avec menu déroulant. Très utile pour les plateformes de sites, buddypress, la barre d’administration semblable à WordPress.com fera probablement son apparition. Mais comme tout le monde n’est pas d’accord, la fonctionnalité restera peut-être sur la forme d’un plugin. (le plugin de Viper007Bond gère cela très bien pour le moment.)

6. Quelques simplifications et nettoyages de l’interface à travers toute l’application, et principalement le multi-site. Des pistes de recherche pour l’élaboration d’un tableau de bord personnel à la place du tableau de bord générale sont menées par Ryan. Ces modifications pourront être publiées dans WordPress 3.2 selon le planning.

7. Quelques corrections à prévoir sur l’API des custom post types.

8. Modification de l’interface de la gestion de thèmes par la version de WordPress.com. Cette dernière est plus efficace, plus légère, supporte la recherche, etc. C’est une étape indispensable pour les personnes ayant un WordPress MS avec beaucoup de thèmes.

9. Les templates de pages pour les articles. Afin de pouvoir supporter des modèles comme les pages)

10. La fonctionnalité QuickPress sera disponible à travers une fonction afin de pouvoir afficher facilement un formulaire sur le thème utilisateur.

Le planning

La date de publication ne devrait pas dépasser le 15 décembre pour ne pas interférer avec les vacances.

  • 9 septembre : Confirmation du planning
  • 15 octobre : feature freeze, pas de nouvelles fonctionnalités ajoutés dans le code
  • 1er novembre : primary code freeze, fin de grands changements dans le code PHP
  • 15 novembre :période de béta, plus d’amélioration, uniquement de la correction de bugs.
  • 1 décembre : string freeze, traduction !
  • 15 décembre : publication de WordPress 3.1

16 août 2010
par Amaury
5 Commentaires

Présentation de VaultPress : La sécurité vue par Automattic

Il y a quelque temps, Matt et Automattic ont annoncé le lancement de VaultPress, un plugin permettant de sécuriser une installation WordPress. On me demande régulièrement, la meilleure méthode pour sécuriser un site web fonctionnant avec WordPress, et ma réponse est la suivante : « Backup journalière des fichiers et de la base de données sur 2 points de stockage ». Et oui la meilleure sécurité, c’est la sauvegarde !

Alors, lorsque j’ai appris le lancement de VaultPress, je me suis dit dans un premier temps : chouette un plugin améliorant la sécurité de WordPress, mais après avoir lu et visionner la vidéo de présentation, j’ai compris qu’il ne s’agissait que d’un plugin de backup automatique des données, alors effectivement on peut se poser la question de l’intérêt de ce service pour les personnes ayant un serveur dédié, mais sur un mutualisé milieu/haut de gamme et/ou pour un blog sensible le service peut s’avérer intéressant.

J’ai donc décidé de postuler à l’inscription de la béta, une première fois pour mon blog perso, sans réussite. Et une seconde fois, pour le site WordPress Francophone, et bingo, 5 jours après je reçois la fameuse invitation permettant de s’inscrire au service !

Lors de l’inscription au service, on vous propose 3 niveaux de service, le basique qui comprend toutes les fonctionnalités de backup, le niveau premium qui offre du support technique en plus et enfin un niveau entreprise disponible après contact pour des services plus personnalisés, audit du code, etc. Le service basique est facturé 15$/mois, tandis que le service premium est facturé 40€/mois.

Dans le cadre de WordPress Francophone, j’ai choisi l’abonnement à 15$/mois afin de tester à moindre coût le service.

Le plugin

Une fois payé, on vous propose de télécharger une extension à installer sur le blog WordPress de votre choix. Une fois, le plugin installé et activé, un menu VaulPress apparait dans le menu de la console d’administration et permet de voir l’avancement de la sauvegarde du blog sur les serveurs de VaultPress.

Le backup se fait en arrière-plan, il n’est pas nécessaire de se connecter à WordPress ou de laisser une fenêtre du navigateur pour que le transfert se fasse. Le transfert initial est assez long, tout dépendra du nombre d’articles et de commentaires, mais surtout tout dépendra de la quantité de pièces jointes.

Dans le cadre de WordPress Francophone, j’ai activé le plugin le soir à 21h, le lendemain tous les fichiers avaient été synchronisés.

Une fois les fichiers complètement synchronisés, on peut observer un tableau de bord VaultPress qui nous affiche les informations principales, nombres d’articles, commentaires, termes, révisions, médias, etc. On peut également trouver le nombre de copies du blog. (ici 40)

Le service

Maintenant que nous avons passé en revue les pages du plugin sur l’admin WordPress, nous allons voir les fonctionnalités du site VaultPress.com. La page de connexion, bien que stylé VaultPress nous rappelle que WordPress n’est jamais très loin…

Pour se connecter à VaultPress, il faut posséder un compte WordPress.com, ce dernier vous sera demandé lors de l’inscription initiale, vous devez alors saisir vos identifiants WordPress.com.
Une fois connecté, on tombe sur un tableau de bord qui contient tous les sites protégés par VaultPress, ici il n’y a que WordPress Francophone.

Le statut affiche la dernière mise à jour de la base WordPress avec VaultPress, ici on peut voir qu’il s’agit du plugin du compteur de vues utilisées sur WordPress Francophones. Le menu propose de voir l’intégralité des backups de votre site, le log d’activité des sauvegardes ainsi qu’un formulaire de contact.

La page « Backups » nous propose de compacter, d’archiver et de télécharger l’ensemble des fichiers et la base de données de WordPress pour chaque backup réalisé. Ainsi, il est possible de télécharger n’importe quel backup de votre blog, l’intérêt majeur, c’est qu’en cas de pertes de données sur votre serveur, vous pouvez récupérer les fichiers à toutes les dates, et surtout les dernières données grâce à la synchronisation en temps réel.

La page « logs » retrace toutes les modifications apportées sur votre installation WordPress, ajout d’un article, d’un commentaire, d’un méta via un plugin, etc. bref tout est enregistré !

Conclusion

La conclusion est difficile. Le service est efficace et fonctionne très bien sur un serveur mutualisé comme Infomaniak. Pour les personnes possédant un dédié, un backup automatique et incrémentiel de la base de données et des fichiers sur 2 lieux de stockage me paraissent largement suffisant…

Alors, je ne sais pas trop… Pour qui ?

Les personnes ayant de « gros blogs » sont bien souvent sur des serveurs dédiés et/ou infogérés, dans un tel cas la backup serveur me parait suffisante…
Les personnes sur des hébergements mutualisés seront-elles prêtes à mettre de l’argent pour un service de backup ? Au prix proposé, on n’est pas loin d’un serveur virtualisé de base…

Mon avis est partagé sur l’intérêt d’un tel service… et vous ? pour qui ? quel contexte ?

16 août 2010
par Amaury
19 Commentaires

Relation Post Types : Faire des relations entre les contenus de WordPress !

Depuis WordPress 3.0, il est possible de créer facilement à la volée des types de contenus (en anglais : custom post types), et d’y coupler des taxonomies. On peut par exemple, créer des petites annonces, et ajouter des taxonomies comme la région, un ordre de prix, l’état du bien, etc.

Mais les taxonomies ne sont pas nécessairement suffisantes dans un usage pro pour monter un site avec de nombreuses relations. Parfois, on souhaite relier 2 types de contenu ensemble, par exemple sur un site contenant des petites annonces, on voudra avoir la possibilité de lier des articles d’actualités à des petites annonces. Ainsi, on pourra facilement afficher des blocs de contenus liés sur le thème.

Pour y parvenir, j’ai développé le plugin : Relation Post Types

Relation Post Types - Réglages

Ce dernier offre la possibilité de choisir dans la console d’administration quelles liaisons voulez vous mettre en place. Par exemple, si vous avez des petites annonces et des articles à relier, vous pouvez choisir d’afficher un bloc « articles » sur la page d’édition des petites annonces, et inversement vous pouvez afficher le bloc « petites annonces » sur la page d’édition des articles. Ainsi, vous pouvez créer des relations dans les 2 sens.

Boite de sélection dans la page de rédaction

On peut même pousser le bouchon le plus loin et créer des relations entre contenus d’un même type de données, par exemple relier une petite annonce à d’autres petites annonces. Cela peut être utile pour générer du contenu relatif, mais manuellement.

Le plugin est disponible en téléchargement sur WP.org, dans le référentiel de plugins. Le plugin est réservé à un public de développeur ou d’utilisateurs avertis, il n’existe pas de fonctions prêtes à l’emploi à utiliser dans le thème, il vous faudra coupler les fonctions du plugin et WP_Query.

N’hésitez pas à me contacter pour tout bug ou évolution allant dans le sens du plugin.

Admin d'Advanced Cforms Edit

7 février 2010
par Amaury
22 Commentaires

Advanced Edit Cforms : Et un petit plugin pour WordPress et Cforms !

Cforms est réellement un plugin très bien pensé, avec un nombre de fonctionnalités impressionnantes, mais il possède 2 défauts à mes yeux…

Le premier, c’est qu’il ne se trouve pas dans le référentiel officiel des plugins, ce qui rend handicapantes les mises à jour et son installation. Son deuxième défaut, c’est les problèmes liés au déplacement d’un blog.

Dans de nombreux cas, on développe un blog WordPress avec une adresse de développement et lorsqu’on souhaite migrer, tout se passe bien sauf pour le plugin Cforms, pour 3 raisons :

  1. Il enregistre le chemin complet vers le plugin dans un fichier PHP
  2. Il enregistre l’adresse du blog dans un fichier JavaScript
  3. Il enregistre l’adresse du blog et de destination des fichiers dans une option de WordPress.

L’inconvénient est que lorsqu’on change d’adresse du blog, Cforms conserve les réglages du blog où il a été installé, chose très gênante, car cela implique la modification des 2 fichiers et un bidouillage dans la base de données pour corriger le plugin.

Pour me simplifier la vie, j’ai développé un petit plugin qui permet l’édition depuis la console d’administration de ces différentes informations. Le plugin se présente de la façon suivant :

Admin d'Advanced Cforms Edit

Le plugin est disponible sur le référentiel de WordPress.org et répond au doux nom de « Advanced Edit Cforms » (j’essaie d’être explicite !)

31 janvier 2010
par Amaury
22 Commentaires

Publication de Simple Tags 1.7.4 pour WordPress 2.8, 2.9 !

Petit article pour vous annoncer la sortie de Simple Tags 1.7.4 !

Cette nouvelle version est pleinement compatible avec WordPress 2.8 et 2.9. Elle n’est pas contre plus du tout compatible avec les versions antérieures, pour 2 raisons, alléger l’extension et ne pas faire semblant d’avoir des évolutions pour les anciennes versions de WordPress alors qu’en fait le code utilisé par les anciennes versions n’était plus mis à jour !

Cette version apporte quelques nouveautés dont :

  • Compatibilité à 100% avec l’API taxonomie de WP2.8/2.9
  • Utilisation de la nouvelle API des Widgets
  • Amélioration du code en vue d’avoir 0 notice PHP (à 99%)
  • Correction sur les méthodes de cache WordPress
  • Correction avec le bug de la fausse activation. (rien ne se passer)
  • Compatibilité à 100% avec PHP4
  • Ajout d’un sélecteur de taxonomie pour l’édition de masse (permets de catégoriser massivement)
  • Réaménagement de la page « Gestion des tags »
  • Nouveau script pour l’auto-complétion, utilisation de l’AJAX pour de meilleures performances
  • Correction d’un bug avec les articles très longs et la suggestion de tags de Yahoo/Tag The Net
  • Ajout de 3 connecteurs pour la suggestion : OpenCalais, Alchemy et Zemanta
  • Correction de l’importateur fourni avec l’extension
  • Externalisation du tableau d’options de l’admin pour diminuer la consommation mémoire

Certains d’entre vous ont remarqué que j’avais fermé le projet Google Code, c’est assez simple. L’outil est, je trouve, très mal foutu pour le chef du projet. Les visiteurs peuvent commenter toutes les pages, et les demandes de supports et retours arrivent de partout à la fois.

De plus, la gestion de tickets est difficile à gérer pour une seule personne, un trac est beaucoup plus lisible à ce niveau.

De ce fait, j’ai déplacé le support sur une installation redmine que j’utilise désormais pour publier mes extensions et mini-extensions pour WordPress.

Enfin, beaucoup de personnes m’ont attesté que la version 1.6.x de Simple Tags fonctionnait bien avec WordPress 2.8, et bien il se trouve que non. Elle fonctionnait à peu près, sur certaines installations déjà en place, rien d’apparent. Mais sur une installation from scratch, il y avait de nombreux problèmes, l’ajout des tags sur les pages ne fonctionnait pas par exemple, etc.

26 janvier 2010
par Amaury
36 Commentaires

Drupal vs WordPress : Les modules de base

De mon point de vue, l’une des grandes forces de Drupal est sa modularité. Je développe sous WordPress depuis bientôt 5 ans, et presque 30% des sites réalisés n’utilisent pas les articles de WordPress, mais uniquement les pages. Et je ne vous parle même pas du pourcentage de projets n’utilisant pas les commentaires…

Malheureusement, WordPress ne permet pas la désactivation des fonctionnalités non utilisées, c’est regrettable à plusieurs points. Le premier, c’est les performances, charger en mémoire des lignes de code non utilisé peut s’apparenter à un gâchis de ressources. Le deuxième point, c’est la présence de menus inutiles dans la console d’administration. Cet aspect peut être corrigé via des plugins permettant  la personnalisation la console d’administration, ces derniers proposent de choisir précisément les fonctionnalités que l’on souhaite afficher ou masquer.

Mais revenons à drupal…

Lorsque je discute avec des clients, des développeurs, on me dit, WordPress ce n’est pas vraiment un CMS, Drupal oui !

C’est vrai et faux, en fait techniquement parlant, ces 2 outils sont des CMS. WordPress est un CMS orienté gestion de contenu personnelle (plutôt blog), tandis que Drupal est un CMS « non orienté ». Autrement dit, Drupal est extrêmement générique et on le ressent bien à l’installation. (Comme l’on dit plusieurs blogueurs de la communauté WP, WordPress est beaucoup plus packagé que Drupal, plus « ready to use »).

Cette orientation, publication personnelle/blog, est donc à la fois la plus grande force et faiblesse de WordPress.

Force, car cela lui attire la sympathie d’un très grand nombre de webmestres, développeurs et surtout des utilisateurs. Faiblesse, car comme beaucoup d’outils de masse, on le considère à tort comme un outil d’entrée de gamme peu adapté au monde professionnel et à un usage CMS. Et pourtant…

J’ai installé un drupal en local, et j’ai comparé les modules par défaut de drupal avec ceux de WordPress. Vous trouverez dans un premier le tableau comparatif, puis mon analyse.

Module drupalAlternative WordPressCommentaire
AggregatorPlugin : WP-o-maticAncien, mais plugin très complet
BlogNatif
Blog APINatif
BookNatif + PluginsLes pages de WordPress non ? Couplé à un plugin Séries ou une navigation bien pensée ;)
ColorNatif + ThèmesDans WordPress, le thème peut avoir une page d’administration.
C’est le cas du thème par défaut, il permet à l’utilisateur de modifier le schéma de couleur de certains thèmes.
CommentNatifPermets aux utilisateurs de commenter et de discuter le contenu publié.
ContactPlugins : CformsCforms, what else ?
Content
translation
PluginsQtranslate, WP-ML, il y a pour tous les goûts…
Database loggingPluginsPartiel, pas de plugin générique à ce niveau.
ForumPlugins ou bbPressbbPress se couple facilement à WordPress. La prochaine version devrait être encore plus intégrée à WordPress !
HelpNatifPas besoin d’aide pour utiliser WordPress ! ;)
LocaleNatif
MenuPluginsPar défaut, pas grand chose. (ça devrait changer dans WP 3.0), mais des plugins permettent cela
OpenIDPlugins
PathNatifPar défaut, les permaliens…
PHP filterPlugins
PingNatif
PollPlugin : WP-Polls
ProfilePlugin : BuddyPressDes profils, mais pas seulement…
SearchNatifSans compter les innombrables plugins à ce sujet
StatisticsPlugins : Wassup, StatsPress
SyslogPluginsDes plugins permettent des logs pour l’activité, d’autres pour le développement. Globalement ca existe.
TaxonomyNatif + PluginsL’API le supporte, les plugins apportent la couche utilisateur.
ThrottlePas vraimentÀ ma connaissance, aucun plugin ne permet de désactiver des fonctionnalités selon la charge. Cependant, les plugins de cache permettent ponctuellement d’alléger la charge serveur. Conclusion, pas vraiment ! mais pas très utile !
TrackerNatif + PluginsLes commentaires sont des contributions utilisateurs, sinon des plugins comme TDO Form permettent de créer des formulaires publics.
TriggerNatifSimilaire aux actions/filtres de WordPresss
Update statusNatif
UploadNatifDepuis bien longtemps + La retouche d’image depuis WordPress 2.9

Comme vous pouvez le constater, mis à part 1-2 fonctionnalités mineures qui n’ont pas d’alternative complète sous WordPress, la totalité des fonctionnalités des modules intégrés dans Drupal possède une alternative ou plusieurs alternatives. Parfois nativement, parfois sous la forme de plugins de la communauté !

Lorsque la fonctionnalité est native, elle possède le même niveau de qualité que sa concurrente drupal. Lorsqu’il s’agit d’un plugin, c’est variable. Certains plugins de la communauté sont bien plus évolués que leurs concurrents par défaut de drupal (mais des plugins drupal peuvent équilibrer la balance), tandis que dans certains cas, c’est l’inverse.

Je conclurai en 3 points.

1. WordPress n’a rien à envier aux modules de base de Drupal. La communauté très active remplit parfaitement son rôle en réalisant des plugins de qualité similaire.

2. Le programme de plugins « officiel » de WordPress.org va permettre de constituer une base de plugins sûrs, vérifiés et mis à jour régulièrement. Ces plugins deviendront l’équivalent des modules de drupal.

3. Drupal possède une longueur d’avance concernant la possibilité de créer nativement des types de contenus à la volée. (je ne parle pas de CCK, mais des types de contenus), WordPress supporte depuis très longtemps ce genre d’ajout via des plugins, mais rien de  très propre. La version 3.0 ajoutera une API complète permettant d’ajouter autant de types de contenu que souhaité.

Dans un prochain article, je vous parlerai de Views/CCK et WordPress !

PS: J’ai sûrement oublié certaines fonctionnalités, je pense par exemple aux permissions, je me suis contenté des modules de base pour le moment, mais si vous voyez des fonctionnalités de bases qui n’existe pas dans WordPress, dites-le-moi, j’essaierai de trouver l’alternative si elle existe !