WordPress 2.5 RC1 et bbPress en français !

19 mars 2008 § 8

WordPress 2.5 RC1

Ce matin, Xavier et moi-même avons publié la version francophone de WordPress 2.5 RC1.

Vous pouvez lire 2 articles consacrés à son sujet:

Cette version est une RC… Autrement dit c’est loin d’être parfait :) C’est également valable pour la traduction :) (bien qu’elle soit plutôt en progrès comparé aux versions précédentes !)

Je vous conseille de patienter pour la version finale.

bbPress 0.8.3.1

bbpress-large J’ai lancé dans la soirée, le site francophone dédié à bbPress, j’ai nommé: bbPress en français ! Original n’es-ce pas ?

Le blog contient pour le moment, le pack français de la version 0.8.3.1, et il pose surtout les bases de la *potentielle future* communauté autour de ce super moteur de forums.

Je suis entrain de préparer la version française de bbPress 0.9 qui ne devrait plus tarder. Il restera ensuite quelques pages de documentation à traduire !

Si vous ne faites rien de vos weekends, et que vous voulez participer à une communauté, une page de contact est dispo pour ça !

Petite précision, WordPress Francophone n’a aucun rapport direct avec bbPress en français, c’est une initiative personnelle !

Dis papa, ça coûte combien un site internet ?

18 mars 2008 § 3

argent En lisant le blog de WordPress Tuto, je suis tombé sur un article très intéressant, mais un peu perdu entre toutes ses traductions de thèmes… Et c’est bien dommage soit dit en passant !!!

Libretto y fait une analyse des derniers rachats de sites Web tels que Doctissimo, Auféminin.com. Et c’est vrai qu’en suivant son raisonnement, mon blog me rapporterai beaucoup :D

Et donc la question, c’est quand que la bulle pète ?!

Bonne lecture !

Faire des requêtes sécurisées sous WordPress 2.5 ! Utilisation de la méthode $wpdb->prepare !

16 mars 2008 § 4

959811_88673421 Parlons un peu sécurité !

WordPress, comme tout logiciel informatique, est de plus en plus soumis a des attaques diverses et variées... Pour contrer ce genre de désagrément, WP utilise plusieurs mécanismes:

  • Gestion des droits
  • Un nouvel algorithme de cryptage des mots de passe pour WordPress 2.5
  • La gestion de "nonce" permettant de vérifier la provenance lors d'une action dans l'administration.

La grande nouveauté de cette version 2.5, c'est l'ajout d'une méthode permettant de protéger rapidement et efficacement les requêtes SQL d'une technique très remployées, j'ai nommé les injections SQL.

Avant WordPress 2.5, c'était un peu l'anarchie. En effet, chaque plugin dispose de son propre mécanisme de protection, plus ou moins efficace et plus ou moins testé...

Afin de remettre les choses a plats, les développeurs ont ajouté la méthode "prepare" à la classe d'accès a la base de données "wpdb".

Cette méthode bouscule les habitudes sur plusieurs aspects, pour bien comprendre le fonctionnement, je vais décortiquer une requête SQL de WordPress avec l'ancienne et la nouvelle méthode !

Ancienne méthode

Dans cet exemple, je vais prendre la requête SQL utilise lors de l'insertion d'un article dans la base de donnes. Cette requête permet de vérifier que l'identifiant de l'article (ou slug) est bien unique, le cas échéant WP rajoutera un suffixe mais peu importe... Le sens de la requête n'a aucun intérêt dans cette démonstration !

Voici la requête:

$post_name_check = $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$post_name' AND post_type = '$post_type' AND ID != '$post_ID' AND post_parent = '$post_parent' LIMIT 1");

Note: vous pouvez trouver la requête dans le fichier "wp-includes/post.php", à la ligne 701.

Comme vous pouvez le constater, la requête fait appel à 4 variables dynamiques:

  • $post_name
  • $post_type
  • $post_ID
  • $post_parent

Ces variables sont des sources potentielles d'injections SQL... Pour être sûr de leur contenu, il est impératif de les sécuriser une par une... Cela implique plus de code... et surtout un code répétitif à souhait qui perd en lisibilité !

La nouvelle méthode !

Voici la même requête sous WP 2.5:

$post_name_check = $wpdb->get_var($wpdb->prepare("SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type = %s AND ID != %d AND post_parent = %d LIMIT 1", $post_name, $post_type, $post_ID, $post_parent));

Note: vous pouvez trouver la requête dans le fichier "wp-includes/post.php", à la ligne 1267.

Que remarquons-nous ?

  1. Avant d'effectuer la requête SQL (méthode "get_var"), nous utilisons la méthode "prepare"
  2. Nous n'avons plus de variables directement dans la requête SQL
  3. La méthode "prepare" fonctionne de la même façon que les fonctions PHP "sprintf" ou "printf" (chaînes formatées)
  4. Le nombre de paramètre de la méthode "prepare" est infini.
  5. Le code de la requête SQL est plus lisible

Comment ça marche ?

Dans le code de la requête SQL, à la place des variables PHP, nous plaçons des marqueurs. Ces marqueurs débutent toujours par un pourcentage.

  • %s pour une chaîne de caractère
  • %d pour un nombre entier
  • La suite des marqueurs sur php.net.

A ce moment de l'article, pour ceux qui ont tout compris, vous vous dites: "Quelles différences avec l'ancienne méthode, les marqueurs ont les mêmes inconvénients que les variables PHP..." et "Pourquoi faire une méthode prepare alors qu'il existe déjà la fonction PHP sprintf..."

C'est précisément ici que la méthode agit... Contrairement à la fonction sprintf, qui ne fait que remplacer bêtement les variables.

La méthode "prepare" passe par une étape intermédiaire, la sécurisation des variables:

  1. Suppression des quotes simples et doubles de la requête
  2. Ajout des guillemets entre les variables PHP pour respecter la syntaxe SQL
  3. Utilisation de la méthode "escape" pour protéger les variables des injections SQL

Conclusion

Vous l'aurez bien compris... L'intérêt majeur de cette fonction est de gagner du temps lors de la création des requêtes SQL ! (tout en les sécurisant)

Grâce à son fonctionnement "à la printf", le code de vos extensions gagnera en lisibilité, en légèreté, et la sécurité sera assurée...

Il ne reste plus qu'à attendre les nouvelles versions de vos extensions préférées pour WordPress 2.5 !

(Extensions = Plugins, préparez vous mentalement... C'est la nouvelle traduction française dans WordPress 2.5)

Les nouveautés développeurs de WordPress 2.5 !

16 mars 2008 § 5

Quoi de neuf dans WordPress 2.5 pour les développeurs ? Pas mal de petites choses… présentation !

TinyMCE passe en version 3.x

Cette nouvelle version de l’éditeur visuel apporte plusieurs choses

  • Compatibilité à 100% avec Safari 3
  • Cœur de l’éditeur complètement réécrit, optimisé et plus léger
  • API revu et corrigé, beaucoup plus flexible pour les plugins
  • Le code produit est beaucoup plus sémantique et respecte les standards web du W3C.

Elle corrige également un grand nombre de bugs. Le site de l’éditeur : Moxiecode Systems AB pour davantage d’informations.

jQuery passe en version 1.2.x et se généralise

jQuery-logo Depuis la version 2.1, l’équipe de WordPress migre progressivement tous les JavaScripts de WordPress sous la librairie jQuery. Cette dernière passe par la même occasion à la version 1.2.x (plus performante et plus légère).

jQuery est désormais utilisé pour:

  • Les alertes de manipulation dans les listes d’articles, de pages.
  • Les alertes WordPress avec dégradés
  • Enfin jQuery remplace Prototype dans la page de rédaction (page plus rapide !)

Les librairies Prototype et script.aculo.us sont également mise à jour, respectivement aux versions 1.6.0 et 1.8.0.

Cela permettra probablement à la console d’administration d’être un peu plus légère pour les navigateurs web !

L’API XML-RPC évolue…

Quelques nouveautés… et des corrections !atom-logo75px

  • Ajout d’une méthode pour la suppression des catégories, récupération du nombre de commentaires
  • Support des champs personnalisés
  • L’API AtomPub peut désormais être découvrable automatiquement via les clients tels que Windows Live Writer, etc.
  • Support des différents statuts de publication des articles
  • L’API est extensible grâce aux filtres et actions des plugins WordPress
  • Les articles programmés dans le futur avec Windows Live Writer fonctionnent correctement
  • Etc.

Vous trouverez le détail des modifications sur le trac de WordPress.

Une nouvelle méthode pour sécuriser les requêtes SQL $wpdb->prepare !

Et pour en savoir plus… il faudra lire le prochain article entièrement consacré à cette nouvelle méthode :)

Edit: Lire Faire des requêtes sécurisées sous WordPress 2.5 ! Utilisation de la méthode $wpdb->prepare !

WordPress 2.5 n’est pas en retard…

12 mars 2008 § 0

… sa sortie est simplement décalé d’une semaine !

Pour info, vous pouvez suivre l’avancement du développement depuis la "roadmap" du trac de WordPress.org

Si vous souhaitez connaître les nouveautés utilisateurs de cette nouvelle version, consultez l’article de Fran6 sur le blog MonetiWeb.

Enfin, vous pouvez débattre de la traduction sur le blog de WordPress Francophone.

WordPress sous IIS7

9 mars 2008 § 0

IIS7LogoPour ceux qui souhaitent héberger WordPress sous IIS7, et oui ça existe…

Mon collègue Sébastien Warin, met à disposition un article très complet sur l’URL Rewriting de WordPress et IIS7.

A quand la partie 2 ?

Here With Me sous WordPress 2.5

9 mars 2008 § 1

Pour l’anecdote, mon blog fonctionne sous la dernière version de développement de WordPress 2.5.
Et pas de doute, l’interface casse les habitudes…

La compatibilité plugin d’un point de vue fonctionnelle pose aucun problème (ou presque), c’est juste le coté visuel qui fait mal !

Ca bug !

Je retourne au développement de Simple Tags 1.5 sur ces quelques mots…

WordPress 2.3 et WordPress 2.5 : Quelques chiffres…

8 mars 2008 § 4

Les chiffres sont basés sur une installation propre de WordPress 2.3 et 2.5, le thème par défaut, aucun plugin actif, sans traduction, et sur le même serveur bien entendu !

Résultat sur la page d’accueil du blog

  WordPress 2.3 WordPress 2.5
Nombre de fichiers PHP lus 52 55
Nombre de lignes PHP lues 4691 4930
Nombres de requêtes SQL 23 22
Temps moyen de génération (en secondes) (moyenne sur 100 essais) 0.306 0.243
Variables globales 44 47
Consommation mémoire (en ko) 8762,064 9644.776

Pas grand chose à conclure au final…

Where Am I?

You are currently browsing entries tagged with WordPress at Here With Me.