content top

Timthumb, wordpress multisite et domain mapping

La dernière version de Timthumb (2.8.9 au moment ou j’écris ces lignes) est désormais réutilisée massivement par de nombreux thèmes pour l’affichage des vignettes en différents endroits d’un site. Magnifique !

OUI MAIS !

En wordpress multisite, sur un site avec un domaine personnalisé (avec les plugins de domain mapping), plus rien ne marche et plus de vignettes !

 

Au secours !

Ne paniquez pas, cela est prévu par Timthumb. Voila l’astuce pour faire fonctionner correctement votre thème dans un environnement multisite :

1 – mettez a jour le script timthumb en 2.8.9 (corrigée de la fameuse faille de sécurité identifiée il y a un moment)  ici :

http://timthumb.googlecode.com/svn/trunk/timthumb.php

(clic bouton droit/enregistrer la source sous)

2 – veillez aux droits sur les fichiers / dossiers : 775 pour le dossier /cache/ et 755 pour le fichier timthumb.php lui même.

3 – Ouvrez le fichier avec votre notepad ++ préféré :

et portez les modifications suivantes :

Ligne 32 : if(! defined(‘ALLOW_EXTERNAL’) )            define (‘ALLOW_EXTERNAL’, TRUE);

=> vérifiez que la valuer est bien « true »

Ligne 34 : if(! defined(‘FETCH_LOCAL_URLS’) )          define (‘FETCH_LOCAL_URLS’, false);

=> remplacez false par true

Lignes 124 et suivantes : il s’agit de la liste des sites autorisés pour l’exécution du script (c’est la fameuse correction de sécurité)

- ajoutez votre site dans la liste en respectant la syntaxe. Ex pour ce site :  ‘wpmu-blogs.net’,

- ajoutez également le domaine ORIGINEL (non mappé). Ex pour ce site : ‘wpmu.mgr-artagency.com’ ,

Et le tour est joué !

Si ca ne marche pas (sur certains serveurs un peu tatillons c’est possible), cherchez avec notepad ++ toutes les occurrences dans tous les fichiers du thème de l’expression

bloginfo(‘url’)

et remplacez la par

site_url()

La cause du problème vient de la manière de gérer les fichiers dans WordPress multisite, qui par défaut va chercher dans /uploads/ ses images, alors que le multisite va dans /blogs.dir/id du blog/files/

Ce paramétrage de timthumb va permettre tout simplement d’utiliser l’url exacte de l’image (en http) et non plus le chemin de l’image sur le disque, source de l’erreur.

Et vous voila avec un joli thème thumbnailisé sur votre site wordpress, en multisite, avec un domain mapping !

Note :

Accessoirement vous pouvez modifier certains autres paramètres du script :

Ligne 28 : ajustez la memory limit a celle réellement disponible sur votre serveur

Lignes 51 et 52 : ajustez la taille max. des images à traiter, par défaut 1500 Px







4 réponses à “Timthumb, wordpress multisite et domain mapping”

  1. Luc dit :

    Bonjour,

    Malheureusement, dans la version 2.8.10, ils ont supprimés FETCH_LOCAL_URLS.

    J’ai donc fait une toute petite modif dans le code :
    Ligne ~212 : commenter $this->src = preg_replace(‘/https?://(?:www.)?’ . $this->myHost . ‘/i’,  », $this->src);

    Ça évite qu’il supprime le nom de domaine de la source de l’image passé en paramètre.

    Juste en dessous, ajouter : $ALLOWED_SITES[] = $this->myHost; afin d’autoriser automatiquement la récupération des images pour le site courant (l’ajouter à la main est un peu fastidieux si vous avez beaucoup de site héberger sur votre plateforme MU)

  2. Alors cet article m’arrange bien parce que j’ai acheté un thème sur themeforest qui ne fonctionne pas sans le thimthumb, mais en fait je voulais surtout réagir sur l’article qui parle de Peerapong (mais les commentaires sont fermés ..) et je trouve que cet artiste (auteur ?) n’est pas super sympa quand on achète un thème, j’ai acheté un thème et je me suis fait litteralement envoyer boulet !

    • aphrodite dit :

      La toute deniere version de timthumb regle le problème. Ne pas hésiter a mettre a jour le fichier, cet article est un peu ancien déjà :)

      Quand a peerapong c’est clair ! non seulement ses thèmes sont codés à l’arrache mais il est simplement insupportable au support. Faire passer le mot, une telle attitude est inacceptable !!!

Trackbacks/Pingbacks

  1. Timthumb « bookmarks - [...] Fix Timthumb en multisite : source [...]

Laisser une réponse !

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>