Installer PECL uploadprogress pour le module filefield de Drupal sous Debian
Depuis la version 3 du module filefield de Drupal qui permet de lier des fichiers aux contenus, nous avons droit à une barre de progression lors de l'upload de fichier dans Drupal.
Ce genre de fonctionnalité n'était disponible jusqu'à maintenant qu'en implémentant des modules Ajax, Flash de type swfupload ou fancyupload et exigeait le plugin Flash dans sa dernière version pour le contributeur, ce qui pouvait provoquer bien des soucis chez des clients dont le service informatique n'autorise pas la mise à jour de plugin ...
Désormais grâce au module filefield et l'extension PECL uploadprogress, nous avons droit aux mêmes fonctionnalités (barre de progression, pas de timout sur les gros fichiers, etc) et tout ça juste avec un peu de JS, de PHP et quelques manipulations ...
Voici un rapide descriptif des manipulations à faire sur un serveur Debian (lenny) pour installer uploadprogress, il existe sous Debian un paquetage nommé dh-make-php qui permet de créer des paquetages Debian à partir des extensions PECL et PEAR de PHP, c'est celui-ci que nous allons utiliser.
1. Installer les packages nécessaires.
On lance donc une console SSH sur notre serveur, on se logue en root, on update nos sources et on télécharge les packages suivant :
apt-get update
apt-get install php5-dev dh-make-php
2. Télécharger uploadprogress via PECL
On se déplace dans un répertoire dédié à la compilation de nos sources et on télécharge uploadprogress.
cd compilation/
mkdir pecl/
cd pecl/
pecl download uploadprogress
3. Construire le paquetage Debian pour uploadprogress
On initialise les variables pour les informations 'maintener' du paquetage avant de lancer dh-make-php.
export DEBEMAIL=your@email
export DEBFULLNAME='Your Name'
On construit notre *.deb de la manière suivante :
dh-make-pecl --only 5 uploadprogress-1.0.1.tgz
cd php-uploadprogress-1.0.1/
dpkg-buildpackage -b
Une fois la compilation effectuée, dans le répertoire parent vous devez avoir un *.deb tout neuf ...
cd ../
ls | grep *.deb
php5-uploadprogress_1.0.1-1_amd64.deb
4. Installer le paquetage Debian pour uploadprogress
On installe notre extension et on relance Apache.
dpkg -i php5-uploadprogress_1.0.1-1_amd64.deb
/etc/init.d/apache2 restart
On vérifie via un phpinfo que l'extension 'uploadprogress' est bien installée ou directement dans le tableau de bord de Drupal si vous avez déjà le module 'filefield' activé.
Enjoy!

Poster un nouveau commentaire