Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

tools:php_o [2010/12/29 14:36]
gotcha créée
tools:php_o [2012/07/11 14:02] (Version actuelle)
gotcha
Ligne 1: Ligne 1:
-<WRAP todo 410px center> +====== PHP Optimisateur ======
-Cette page est actuellement non finalisée. Vous ne trouverez donc pas tout son contenu. Nous sommes désolé pour la gène occasionnée.\\ +
-__Raisons :__ +
-  - Page nouvelle +
-  - Page à compléter de préférence par l'auteur de l'extension (Mistic100) +
-\\ +
-//Pour nous aider à compléter la documentation, consulter cette [[projet:communaute:contribuer#la_documentation|page]].//</WRAP>+
  
 +^Discutions :| [[http://fr.piwigo.org/forum/viewtopic.php?id=19117|Forum FR]]|
 +^Téléchargement :| [[http://fr.piwigo.org/ext/extension_view.php?eid=476|PEM]]|
 +^Dépôt :| [[http://piwigo.org/svn/extensions/PHP_Optimisateur/|SVN]]|
 +^Suivi :| [[http://piwigo.org/dev/browser/extensions/PHP_Optimisateur|Trac]]|
 +^Version de Piwigo :| Toutes versions ! |
  
-====== PHP Optimisateur ======+<WRAP box>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 [[tools:b_o]], 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 [[http://www.xnview.com/en/nconvert.html|NConvert]] pour le traitement des images.</WRAP> 
 + 
 +**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 ==== 
 +  * Avoir au moins lu la page [[pwg21:apprendre:facile:photos_web]]. 
 +  * Savoir envoyer ses photos via FTP. 
 +  * Comprendre le mécanisme de [[pwg21:apprendre:facile:preparation]]. 
 + 
 +==== 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 [[http://www.wampserver.com|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 [[http://localhost|localhost/nom_du_sousdossier]] (après avoir lancé le serveur local) puis passez à la configuration. 
 + 
 +**Utilisateurs de systèmes Unix:** 
 +Il faut installer le [[http://www.xnview.com/fr/download_nc.html|package qui vous convient]] et remplacer la ligne 273 du fichier //include/functions.php// de PO par : 
 +<file>exec('nconvert '. $param .' 2>&1', $out);</file> 
 + 
 +**Utilisateurs de MacOS:** 
 +Il faut télécharger la [[http://www.xnview.com/fr/download_nc.html|version pour MacOS]], à placer dans le dossier //include// et remplacer la ligne 273 du fichier //include/functions.php// de PO par : 
 +<file>exec('include/' . './nconvert '. $param .' 2>&1', $out);</file> 
 +(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. 
 + 
 +<wrap alert>A cause du poids du fichier, ffmpeg.exe n'est pas fournit avec PO. Veuillez le télécharger sur le [[http://www.ffmpeg.org/download.html|site officiel]] et le déposer dans le dossier **include** de PO.</wrap> 
 + 
 + 
 +== 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 [[http://fr.piwigo.org/ext/extension_view.php?eid=213|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 [[http://fr.piwigo.org/ext/extension_view.php?eid=183|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 
 +  * <wrap info>Ce plugin a l’ascendant sur ConvertPan pour les miniatures</wrap> 
 + 
 + 
 +==== 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. 
 +<file> 
 +<plugin> 
 + <name>Nom du plugin</name> 
 + <mode>Mode de fonctionnement</mode> 
 +</plugin> 
 +</file> 
 + 
 +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. 
 +<file> 
 +<plugin> 
 + ... 
 + <mon_param> 
 + <sous_param>valeur</sous_param> 
 + </mon_param> 
 +</plugin> 
 +</file> 
 +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 : 
 +<file> 
 +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; 
 +
 +</file> 
 + 
 +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 :
 +<file>
 +<?php
 +$Lang['tag_size.legend'] = "Write '0' to unactive features";
 +$Lang['tag_size.formats'] = "Formats";
 +$Lang['tag_size.sizes'] = "Resolutions";
 +?>
 +</file>
  
 +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... ====== ====== Pour aller plus loin... ======
  
Ligne 26: Ligne 228:
 ~~META: ~~META:
 mother = tools mother = tools
-&order = 30+&order = 60
 ~~ ~~
 
Haut de page
tools/php_o.1293633377.txt.gz · Dernière modification: 2010/12/29 14:36 par gotcha
 
 
github twitter newsletter Faire un don Piwigo.org © 2002-2022 · Contact