PHP Optimisateur

Discutions : Forum FR
Téléchargement : PEM
Dépôt : SVN
Suivi : Trac
Version de Piwigo : Toutes versions !

PHP Optimisateur (PO) est un programme développé en PHP permettant de préparer les photos à une mise en ligne via FTP sur Piwigo. L'algorithme principal a été créé par Gotcha pour Batch Optimisateur, il en reprend toutes les fonctions mais son intérêt principal est une plus grande flexibilité vis à vis des plugins. PHP Optimisateur utilise le logiciel NConvert pour le traitement des images.

Les atouts sont… les mêmes que Batch Optimisateur !

  • Aucune connaissance en programmation n'est requise.
  • Possibilité d’incruster un texte du genre © Votre_Copyright avec de nombreux paramètres.
  • Les images générées peuvent être personnalisées en taille et en qualité de compression.
  • Choix de l’emploi d’un répertoire pwg_high pour les images HD.
  • Choix sur le redimensionnement ou non des images HD.
  • Choix du préfixe pour le nom des vignettes.
  • Correction des noms de fichiers/dossiers (correction des caractères spéciaux).
  • Efface les méta-données pour les vignettes (gain de poids).
  • Conserve les méta-données pour toutes les autres vues.
  • Gestion des erreurs en cas de mauvais paramétrage.
  • Ajout possible de fichiers index.php dans tous les répertoires pour éviter le listing.
  • Choix de la résolution (dpi) pour les images haute-définition.
  • La possibilité d’utiliser des plugins en début, fin de traitement et même pendant.
  • Fonctionnement réduit à une seule intervention de la part de l’utilisateur.

Les plus par rapport à Batch Optimisateur :

  • Configuration via formulaire (depuis la version 1.2).
  • Création de plugins plus aisée et plus complète, PHP oblige.
  • Copyright sur fond transparent, possibilité de choisir le couleur, la police, la taille et la position, de l’activer ou non sur les images HD et/ou normales.

Pré-requis

Installation

Pour utiliser PHP Optimisateur il vous faut un serveur web Apache+PHP5. Étant donné les ressources nécessaires au traitement des images il fortement déconseillé de l'utiliser sur un hébergement mutualisé. Préférez plutôt un serveur local tel que WAMP.

Pour installer PO copiez simplement le contenu dans ou sous-dossier du dossier www, htdocs ou assimilé de votre serveur local. Rendez-vous ensuite à l'adresse localhost/nom_du_sousdossier (après avoir lancé le serveur local) puis passez à la configuration.

Utilisateurs de systèmes Unix: Il faut installer le package qui vous convient et remplacer la ligne 273 du fichier include/functions.php de PO par :

exec('nconvert '. $param .' 2>&1', $out);

Utilisateurs de MacOS: Il faut télécharger la version pour MacOS, à placer dans le dossier include et remplacer la ligne 273 du fichier include/functions.php de PO par :

exec('include/' . './nconvert '. $param .' 2>&1', $out);

(merci à ngoc).

Configuration

La configuration de PO se fait via un formulaire composé de deux parties principales :

  • A gauche la configuration des fonctions de base
  • A droite la configuration des plugins (nous y reviendrons plus tard)

Ce formulaire est clair je ne pense qu'il soit nécessaire de détailler, mais n'hésitez pas à poser vos question sur le forum.

Utilisation

Pour utiliser PO il vous suffit de placer vos fichiers et/ou dossiers dans le dossier de sortie que vous avez indiqué dans la configuration, et de cliquer sur Exécuter sur la page principale, les fichiers traités seront bien sur dans le dossier de sortie.

Note : Les dossiers de travail peuvent sans problème se trouver ailleurs que dans le dossier de PO, et même sur un autre disque, veillez simplement à entrer dans références absolues dans la configuration.

Performances

PO est globalement aussi rapide que Batch Optimisateur, tout deux fonctionnant avec NConvert, qui prend en charge la majeur partie du processus.

Par exemple sur un Intel Core 2 Quad Q9650 (3GHZ) avec 4Go de mémoire vive et sous WAMP je traite une trentaine d'images en moins d'une minute. Et 4847 fichiers en exactement 5903 secondes (1h38) ^_^

Plugins

PHP Optimisateur permet d'ajouter des plugins pour étendre ses fonctionnalités, chaque plugins peut se lancer avant traitement des images (mais après renommage si la fonction est activée), pendant le traitement (le plugin est appelé à chaque image) ou à la fin du traitement.

Configuration

La configuration des plugins se fait sur la zone de droite de la page de configuration.

  • Les plugins marqués Nouveau ! ne sont pas encore installés, il faut valider la configuration pour ce faire.
  • Les plugins marqués Manquant ! sont installés mais inexistants, ils seront supprimés si vous validez la configuration en laissant cochée la case de suppression.

Les plugins pré-installés

PHP Optimisateur est fourni avec 6 plugins :

Charlies' Content

Ceci est pour ceux qui mettent autre chose que des images sur leur site. Le plugin utilise FFmpeg pour générer une miniature pour un certains nombre de formats vidéos. Les autres types de fichiers sont simplement copiés, à vous de gérer les mmimetypes dans votre thème.

A cause du poids du fichier, ffmpeg.exe n'est pas fournit avec PO. Veuillez le télécharger sur le site officiel et le déposer dans le dossier include de PO.

CreateFoldersAlpha

Comme son nom de l’indique peut-être pas très bien ce plugin est chargé de créer une arborescence alphabétique dans le dossier source. Explication par l’exemple. Si j’ai dans mon répertoire source ces trois fichiers :

  • John_56.jpg
  • raphy_12.jpg
  • Mistic_102_PhotoKontest.jpg

J’aurais dans le répertoire de sortie :

  • J/John/John_56.jpg
  • R/raphy/raphy_12.jpg
  • M/Mistic/Mistic_102_PhotoKontest.jpg

Le caractère ‘_’ est utilisé comme délimiteur ; ne fonctionne qu’avec les fichiers directement dans le répertoire source (l'arborescence préexistante n'est pas prise en compte).

Watermark

Ce plugin est une évolution de la fonction copyright de base, il permet de remplacer le texte par une image de votre choix. Le plugin utilise les paramètres de base “Sur les images HD”, “Sur les images normales” et le positionnement.

ConvertPan

Ce plugin permet de préparer les panoramas différemment des images normales. Ne touche pas à la version HD

  • Réglage de la hauteur de l’image normale pour une utilisation confortable de plugins Piwigo tels que paMOOramics
  • Recadrage de la miniature pour de ne pas avoir de miniatures minuscules sur la galerie
  • Détection des panoramas grâce à un suffixe dans les noms de fichiers
Front2Back Support

Ce plugin est destiné aux utilisateurs du plugin Piwigo Front2Back qui permet d’avoir des versions alternatives pour les images.

  • Détection des images alternatives par suffixe (NAMEverso)
  • Déplacement de l’image taille normale dans le dossier ‘thumbnail/verso’ et suppression du suffixe
  • Déplacement de l’image HD dans le dossier ‘pwg_high/verso’ et suppression du suffixe
  • Pas de miniature
  • Déplacement du fichier original dans un dossier ‘verso’ (désactivable)
CreateCustomThumbs

Ce plugin effectue quelques traitements sur les miniatures

  • Création de miniature de taille fixe avec sélection de la hauteur, le paramètre de base est utilisé pour la largeur
  • Ajout d'une bordure bi-colore avec sélection de la couleur est la taille
  • Ce plugin a l’ascendant sur ConvertPan pour les miniatures

Créer un plugin

Organisation des fichiers

Chaque plugin se présente sous la forme d'un sous dossier dans le dossier plugins, le nom de ce sous-dossier est utilisé comme identifiant du plugin, donc évitez les caractères spéciaux. Voici la liste des fichiers de bases, ils seront détaillés plus bas :

  • main.php (requis) : c'est le fichier principal du plugin, qui est inclus dans le processus principal, il peut bien sur appeler d'autres fichiers
  • config.xml (requis) : contient la configuration par défaut du plugin, elle sera ajoutée au fichier de configuration principal à l'activation du plugin
  • setup.php (facultatif) : est inclus sur la page de configuration
  • language (facultatif) : contient les fichiers de langue spécifiques à votre plugin
Fichier de configuration

Voici l'architecture basique du fichier de configuration. Les paramètre name et mode sont obligatoires.

<plugin>
	<name>Nom du plugin</name>
	<mode>Mode de fonctionnement</mode>
</plugin>

Le mode définit à quel endroit du processus est inclut le fichier main.php du plugin, les modes sont au nombre de quatre :

  • Before : le plugin sera inclut une seule fois au début du traitement, juste après le renommage des fichiers sources (si activé)
  • Process : le plugin sera inclut à chaque image traitée
  • ProcessHigh : identique à Process, mais réservé au traitements qui doivent impérativement se dérouler avant les autres plugins potentiels, utiliser de préférence le mode Process
  • After : le plugin sera inclut à la toute fin du processus, juste avant l'affichage des résultats.

Note : Vous pouvez ajouter autant de paramètres que vous le voulez.

<plugin>
	...
	<mon_param>
		<sous_param>valeur</sous_param>
	</mon_param>
</plugin>

La valeur de sous_param sera accessible dans le plugin via la variable $CONF['Plugins']['mon_plugin']['mon_param']['sous_param'].

Fichier principal

Le fichier main.php constitue le cœur de votre plugin.

  • Vous pouvez accéder à la configuration via la variable $CONF, en particulier la configuration de votre plugin via $CONF['Plugins']['mon_plugin']
  • Si vous êtes en mode Process ou ProcessHigh plusieurs autres variables sont disponibles :
    • $FilesSource[$i] contient la le chemin complet vers le fichier source en cours de traitement
    • $file['folder_src'] contient le dossier source du fichier en cours
    • $file['folder_out'] contient le dossier de sortie du fichier en cours
    • $file['name'] contient le nom du fichier en cours sans extension
    • $file['ext'] contient l'extension du fichier en cours
    • $FileInfos contient des informations sur le fichier en cours (Width, Height, entre autres)
  • Toujours en mode Process vous pouvez bloquer la génération des images (par exemple si votre le plugin le fait d'une autre manière), pour cela vous devez assigner les variables $BlockNormal, $BlockThumbnail ou $BlockHigh
  • Enfin le programme nConvert est disponibles dans le dossier include ainsi que sa documentation. Appellez la fonction nconvert(string $parametre) pour l'utiliser.
Fichier setup.php

La page de configuration de PO tente d'inclure ce fichier pour chaque plugin, il permet d'ajouter des champs aux formulaire de configuration.

La structure de base est la suivante :

switch ($PLUGIN_ACTION) {
	// Affichage simple de la configuration
	case 'read_config':
		/* ... */
		break;
		
	// Actions avant enregistrement
	case 'save_config':
		/* ... */
		break;
		
	// Formulaire d'édition
	case 'edit_config':
		/* ... */
		break;
}

La variable $PLUGIN_ACTION correspond à l'endroit ou est inclut le fichier, sur la page principale, pendant l'enregistrement de la configuration ou sur la formulaire. Consultez les plugins existants pour voir comment l'utiliser.

Langues

Votre plugin peut avoir besoin d'afficher du texte, en particulier sur la page de configuration, pour pouvoir afficher les textes en plusieurs langues utilisez le dossier lang dans le dossier de votre plugin. Il doit contenir des fichier php nommé ainsi : [identifiants de la langue].php. Regardez dans le dossier principal des langues pour connaitre les identifiants de langue. Chaque chaine de texte doit être inscrite dans la variable tabulaire $Lang avec un identifiant unique.

Exemple :

<?php
$Lang['tag_size.legend'] = "Write '0' to unactive features";
$Lang['tag_size.formats'] = "Formats";
$Lang['tag_size.sizes'] = "Resolutions";
?>

Enfin pour utiliser vos textes vous devez commencer par charger le fichier de langue avec la fonction load_plugin_lang('mon_plugin');, puis afficher le texte avec l10n('mon_identifiant_de_texte')

Pour aller plus loin...

 
Haut de page
tools/php_o.txt · Dernière modification: 2012/07/11 16:02 par gotcha
 
 
À propos de ce site web · Faire un don · Contact projet Piwigo © 2002-2014