This is an old revision of the document!


La FAQ est en cours d'élaboration et pour première conséquence, elle est loin d'être structurée. Elle est même insuffisante à ce jour. Merci d'avance aux visiteurs de leur compréhension.

Foire aux questions de PhpWebGallery (PWG)

Avant d'installer

Je n'ai pas encore installé PWG et je me pose bien des questions, peut-être vais-je trouver des réponses ici.

Installation / Migration

Je suis décidé, mais voilà, c'est bien la première fois que je vais faire ça. Ce ne sont pas les questions qui manquent, mais les réponses.

Premiers réglages

Comment changer le titre de la Galerie ?

Admin + Configuration + Général .

Comment ne pas développer les sous-categories dans le menu?

Admin + Configuration + Affichage par défaut
Développer toutes les catégories Oui / Non

La base de Données

Où se trouvent les paramètres de connexion à la base de données?

Dans le fichier include/mysql.inc.php.

Mais si vous vous posez cette question, c'est que vous n'avez pas encore démarré le processus d'installation et votre fichier include/mysql.inc.php est encore vide.

Les miniatures (ou vignettes)

Pourquoi éviter d'utiliser la génération automatique des vignettes ?

  • Avant tout, la qualité ne sera pas au rendez-vous (surtout si l'original est très grand).
  • Car vous de ne disposez pas du règlage du taux de compression.
  • De plus, le dispositif est plus ou moins performant en fonction de l'hébergeur.

En serveur mutualisé (fournisseur d'accès par exemple): un processeur sera monopolisé dans la limite de 30 secondes en général. Votre site apparaitra en rouge dans le suivi de votre site (monitoring), inutile d'en dire plus.

  • Pour une image, ou une quantité réduite d'images: cela peut encore s'imaginer (une solution de dépannage temporaire).
  • Pour une grande quantité d'images livrées via FTP, autant utiliser avant un programme externe approprié, contrôler le résultat, puis transférer des miniatures correctes.
  • Seuls les fichiers .jpg ou .png sont supportés en entrée du processus. Les autres formats d'image du web nécessiteront une préparation / conversion externe et éventuellement le renommage, si le nom de miniatures existantes ne commencent pas par le préfixe TN-

En serveur dédié (ou sur votre propre serveur): cela reste un problème et devra être apprécié en fonction du nombre de processeurs du serveur et des accès externes.

Cependant, si vous avez besoin d'un créateur automatique de miniatures, vous pouvez essayer de télécharger http://ahao.free.fr/Photo/SiteDistant.zip . Modifiez les paramètres du fichier config_create_miniature.php, puis uploadez-le à la racine du site concerné avec les autres fichiers. Lancez ce fichier depuis votre navigateur, et voilà les miniatures sont crées :p Reste plus qu'à synchroniser PWG.

Paramètres pour utiliser un créateur automatique de miniatures

  • PWG s'exécute sur votre ordinateur en local, sans accès vers l'extérieur. Dans ce cas, il serait judicieux d'augmenter le paramètre 'max_execution_time' dans php.ini à valeur telle que 1000.

En fonction de la vitesse de votre ordinateur, ce réglage permettra en moyenne de créer 300 à 600 miniatures avant la fin du l'exécution du script. Si cela se produit, cliquer simplement sur le lien “Miniatures”, sélectionner “Tout” pour le “Nombre de miniatures à créer,” puis cliquer sur Envoyer.

Installation des catégories

Pour obtenir des explications détaillées, connectez-vous à PWG et rendez-vous à la rubrique :

Admin → General → Instructions

Les catégories réelles...

Les catégories réelles (identiques à des albums photos) doivent être créés directement dans le fichier système du serveur, dans le sous-dossier galleries. Il y a deux façons de procéder :

  • Si vous avez un accès local à l'ordinateur où se trouve PWG, créez simplement un sous-dossier dans le dossier galleries. Le nom que vous donnerez à ce sous-dossier sera celui affiché dans PWG. Si le système d'exploitation est de type Unix / Linux, ce sous-dossier DOIT être accessible en écriture par les utilisateurs.
  • Si votre serveur est distant, créez un sous-dossier local, puis transférez-le en utilisant un client FTP. Vérifiez également que le nouveau sous-dossier du serveur Web est accessible en écriture.
  • Les noms de dossiers peuvent UNIQUEMENT comporter des caractères alphanumériques, ainsi que les caractères entre les guillements, ci après : ”-”, “_” ou ”.”. PAS d'espace, ni de caractères accentués !

Les catégories virtuelles...

Evidentes à créer, mais l'association d'éléments avec les catégories est parfois plus complexe.

  • Création de catégories virtuelles : [Panneau d’administration » Catégories » Gérer].
  • Les catégories virtuelles de premier niveau peuvent être créées dans le panneau Administration, (au même endroit que les catégories réelles).
  • Pour créer une catégorie virtuelle dans une catégorie réelle, vous devez sélectionner celle-ci, en cliquant sur son nom, puis cliquez sur l'icône représentant un dossier :“Gérer les sous-catégories”.
  • Pour associer des éléments (des images) aux catégories virtuelles, sélectionnez une catégorie virtuelle et cliquez sur l'icône en forme de dossier avec un engrenage. Vous avez alors 2 choix de mode :
    • Mode global : permet la sélection d'images par lots qui seront associées à une catégorie virtuelle. Tout mot-clé ou méta-donnée ajouté(e) dans cette page, sera associé(e) à tous les éléments
      (rappel : dans une catégorie virtuelle, les images n'y sont pas copiées; seuls les liens vers les images sont stockés dans la base de données).
    • Mode unitaire : permet d'éditer les mots-clé et méta-données pour chaque élément à associer à la catégorie virtuelle.

L'Upload en général

J'aurais voulu savoir comment augmenter les limites de l'upload ou encore savoir (…) : réponses.

Les sites distants...

Rapidement les images prennent de la place, et l'hébergement est engorgé, alors la solution proposée par PhpWebGallery : La mise en oeuvre de sites distants.

Les extensions

La liste des extensions est disponible dans sa rubrique. De même il existe un forum français et anglais. Une recherche répondra sans doute aux questions les plus courantes.

Les mods

Concernant les mods, je préconise la lecture du ”Comment installer un MOD? ” lorsqu'on a récupéré l'archive désirée. Cela évitera sans doute quelques mauvaises surprises.

MOD expliqués

Les bêtises à éviter...

Certaines actions doivent être évitées, lesquelles?

  • Oublier de faire des sauvegardes
  • Renommer un répertoire d'images
  • Déplacer un répertoire dans un autre répertoire
  • Déplacer des images d'un répertoire à un autre

En savoir+

Règle d'or: Je ne synchronise pas si je n'ai pas réellement de nouvelles images.

Les erreurs fréquentes à éviter...

1 - “Je n'ai pas trouvé de fichier config_local.inc.php alors j'ai modifié config_default.inc.php…” Bien sûr que vous n'avez pas trouvé ce fichier local, puisque que c'est à vous de le créer. Il n'est pas distribué: c'est votre fichier.

'default' est livré avec de nouveaux paramètres à chaque version. Si vous faites des modifs dans ce fichier, lors de la prochaine mise à jour vos modifications seront perdues et peut être que votre galerie ne fonctionnera plus. Donc, on ne modifie pas le fichier config_default.inc.php. On crée son config_local.inc.php.

2 - “J'ai recopié le fichier config_default.inc.php dans config_local.inc.php comme ça, je peux les changer tout à ma guise.”
Dans la version n+2 vous aurez peut être 200 paramètres en plus, pouvez-vous dire lesquels vous aurez déjà, ceux qui seront modifiés, ceux qui ne le seront pas.

Dans config_local.inc.php on ne mentionne que les $conf qu'on souhaite vraiment modifier.

3 - “Quand j'accède à ma galerie j'ai un message :”

Warning: Cannot modify header information - headers already sent by (output started at /.../include/config_**local**.inc.php:???) ...

PhpWebGallery tente de créer l'entête de bloc IP (ce n'est qu'un warning) mais cet entête (en principe unique) a déjà été créé.
“Par qui?” output started at… config_local.inc.php
“Oui, mais vous avez dit ci-dessus de le créer… Alors, je ne comprends plus rien.”
Nous avons dit de le créer mais pas de faire des erreurs quand même. Il se trouve qu'un module php comme config_local.inc.php doit suivre des règles strictes d'écriture entre autres, il doit commencer par:
<?php
et il doit se terminer par:
?>

De plus, aucun espace ou ligne vide ne doit être après cette dernière ligne !!! C'est en général ces dernières erreurs qui génèrent l'entête IP. D'ailleurs, dans ”(output started at /…/include/config_local.inc.php:???)” les ??? correspondent au numéro de ligne où se trouve l'erreur. Soit très souvent 10 ou plus.

4 - “J'ai fait un config_local.inc.php mais le paramètre n'est pas pris en compte. (Pire, parfois, mes anciens paramètres ne sont plus reconnus).” Il y a une erreur de syntaxe dans le config_local.inc.php:

  • un ' dans un libellé peut être… ( essayez de l'écrire comme ceci : 'L\'album d\'André' ou “L'album d'André” ),
  • une parenthèse n'est pas fermée,
  • une virgule manque dans une liste,
  • un ; manque en fin d'instruction…

dans votre navigateur lancer http://monsite/magalerie/include/config_local.inc.php, cela peut vous aider à comprendre (l'erreur est sur la ligne ou sur la ligne précédente).

Les Web Services ou comment externaliser des données de PWG

[En cours par Eric]

  • Dans un premier temps, il faut prendre en compte que les Web Services (WS) sont plus complexes à mettre en oeuvre dans la branche 1.7 que “external_random” existant dans les branches précédentes. Plus complexe mais aussi beaucoup plus puissant.
  • Le but de WS : Pouvoir externaliser (présenter sur une page / un site distant de PWG lui-même) des données et informations de la galerie PWG. Exemple : Afficher tout ou partie des dernières images ajoutées à la galerie dans un blog, un échantillon aléatoire d'images sur une page d'index de site, les derniers commentaires déposés avec les images concernées, etc…
  • La description d'emploi de WS ci-dessous est basée sur un exemple permettant d'afficher aléatoirement des images ou leur version miniature dans une page web externe à la galerie (page d'index de site par exemple) selon différents critères.

Génération des requêtes

  • Pour parvenir au résultat désiré, la première étape consiste à trouver la bonne requête à appeler dans la page externalisée. Pour cela, on utilisera un outil spécifique, livré en standard dans la distribution de PWG sous 'http:\\www.monsite.com\magalerie\tools\ws.htm'.

1 - Lancer la page ws.htm dans votre navigateur préféré.

2 - Une page vous demande de préciser la position du script WS (ws.php). Normalement, il doit se trouver sous 'http:\\www.monsite.com\magalerie\ws.php'.

3 - Cliquez alors sur “GO!”

4 - Il s'agit maintenant de choisir la bonne méthode en fonction du résultat désiré. Voici une traduction des termes :

  • pwg.categories.getImages → Méthode pour récupérer des images à partir des catégories
  • pwg.categories.getList → Méthode pour récupérer une liste de catégories
  • pwg.getVersion → Méthode pour récupérer la version utilisée de PWG
  • pwg.images.addComment → Méthode pour ajouter des commentaires
  • pwg.images.getInfo → Méthode pour récupérer des informations sur des images
  • pwg.images.search → Méthode pour effectuer une recherche d'images
  • pwg.session.getStatus → Méthode pour connaître l'identité et le profil en cours
  • pwg.session.login → Méthode pour s'identifier (se connecter)
  • pwg.session.logout → Méthode pour retourner en simple visiteur
  • pwg.tags.getImages → Méthode pour récupérer des images via des Tags
  • pwg.tags.getList → Méthode pour récupérer des Tags

Pour information:

  • reflection.getMethodDetails → Méthode pour obtenir des détails sur les méthodes employées
  • reflection.getMethodList → Méthode pour obtenir la liste des méthodes

5 - Votre choix fait, il suffit de cliquer sur la méthode pour obtenir le panneau de requêtes associé. Il serait trop long et fastidieux de détailler chaque méthode. Aussi, pour notre exemple, nous choisirons ici la méthode “pwg.categories.getImages” qui nous permettra de d'afficher aléatoirement des images ou leur version miniature selon différents critères.

6 - En utilisant la méthode “pwg.categories.getImages”, nous avons tout d'abord 2 paramètres à renseigner : Le format de la requête (Request format) et le format de la réponse (Response format):

  • Le premier concerne la fonction (POST ou GET) à employer avec la méthode. Typiquement, POST serait utilisé pour envoyer le résultat de la requète *vers* un formulaire et GET pour recevoir le résultat. On choisira ici la fonction GET.

FIXME : Je n'ai pas encore trouvé de cadre d'emploi pour POST…

  • Le second concerne la manière de formater les données issues de la requête. Nous avons le choix entre REST (xml), JSON, PHP serial et XML (RPC). Le choix du formatage de sortie dépend de la destination des informations extraites. Par exemple, pour générer un flux RSS spécifique, on utilisera REST (xml) car les lecteurs de flux comprennent ce format. Toujours dans le cadre de notre exemple, nous choisiront PHP serial car nous souhaitons afficher les informations dans une page web et un script PHP fera très bien l'affaire.

FIXME : S'il y en a qui se sentent pour traiter le sujet des XML et autres… ;-)

7 - Dans la partie de droite, nous avons un tableau récapitulant tous les paramètres utilisables pour la méthode sélectionnée. Chaque méthode a un tableau de paramètre différent. Il serait trop long de tout détailler ici. Dans le cadre de notre exemple (méthode “pwg.categories.getImages”), voici les explications des différents filtres :

  • cat_id → Filtre de type numérique sur les identifiants de catégories (peut être unique ou multiple dans le cadre d'un tableau - Array)
  • recursive → Paramètre booléen (vrai / faux) précisant si la requête doit récursive (recherche dans les sous-dossiers) - Attention ! Ne concerne que les catégories publiques !
  • per_page → Nombre d'éléments maximum à remonter par page
  • page → Nombre de pages maximum
  • order → Paramètre de tri des informations.
  • f_min_rate → Valeur de note minimale attribuée aux éléments
  • f_max_rate → Valeur de note maximale attribuée aux éléments
  • f_min_hit → Nombre de visualisation minimum des éléments
  • f_max_hit → Nombre de visualisation maximum des éléments
  • f_min_date_available → Date d'ajout minimale
  • f_max_date_available → Date d'ajout maximale
  • f_min_date_created → Date de création minimale
  • f_max_date_created → Date de création maximale
  • f_min_ratio → Note moyenne minimale
  • f_max_ratio → Note moyenne maximale
  • f_with_thumbnail → Paramètres booléen (vrai / faux) précisant si la requête ne concerne que les images avec miniatures.

8 - Avec tous ces élements, il nous est maintenant possible de “jouer” avec l'outil pour tenter d'obtenir le résultat souhaité. La vérification du résultat produit se fait en cliquant sur les liens “Invoke” ou “Invoke (New window)”. Le premier lien affiche le résultat dans le cadre en dessous du tableau de paramètres quant au second, affiche dans une nouvelle fenêtre du navigateur. En poursuivant notre exemple, nous utiliseront les paramètres suivants :

  • cat_id → vide
  • recursive → True
  • per_page → 5
  • page → 0 (car nous ne souhaitons pas gérer l'affichage de plusieurs pages de résultats dans la page web de destination)
  • order → Random (aléatoire)
  • f_min_rate → vide
  • f_max_rate → vide
  • f_min_hit → vide
  • f_max_hit → vide
  • f_min_date_available → vide
  • f_max_date_available → vide
  • f_min_date_created → vide
  • f_max_date_created → vide
  • f_min_ratio → 1.2
  • f_max_ratio → vide
  • f_with_thumbnail → True

Traduction : “Récupérer, sur une page, 5 images au hasard dans toutes les catégories et sous catégories dont la note moyenne est d'au moins 1.2.”

Autre exemple :

  • cat_id → vide
  • recursive → True
  • per_page → 5
  • page → 0 (car nous ne souhaitons pas gérer l'affichage de plusieurs pages de résultats dans la page web de destination)
  • order → Random (aléatoire)
  • f_min_rate → vide
  • f_max_rate → vide
  • f_min_hit → 500
  • f_max_hit → vide
  • f_min_date_available → vide
  • f_max_date_available → vide
  • f_min_date_created → vide
  • f_max_date_created → vide
  • f_min_ratio → vide
  • f_max_ratio → vide
  • f_with_thumbnail → True

Traduction : “Récupérer, sur une page, 5 images au hasard, vues au moins 500 fois, dans toutes les catégories et sous catégories.”

9 - Un clic sur “Invoke” et on obtient un tableau sérialisé des données trouvées par la requête. Comme on a spécifié “Random” dans le paramètre “order”, on ne devrait pas retrouver deux fois le même résultat. Sauf, bien entendu, s'il n'y a pas assez d'images répondant aux critères. Le tableau est représenté sous la forme :

a:2:{s:4:"stat";s:2:"ok";s:6:"result";a:1:{s:6:"images";
(...)
"page_url";s:72:"http://www.monsite.com/magalerie/picture.php?/[id]/category/[id]";}}}}}}}

10 - Pas très évident de vérifier le bon fonctionnement de la requête sous cette forme, je vous l'accorde. Mais vous pouvez faire des essais en réduisant, par exemple, le nombre d'images à retourner.

11- Lorsque la requête est au point, notez les paramètres pour qu'ils puissent être appelés par un script PHP dans la page externe destinée à recevoir le résultat de la requête. Pour notre exemple, nous aurons :

http://www.monsite.com/magalerie/ws.php?method=pwg.categories.getImages&format=php&recursive=true&order=random&f_min_ratio=1.2&f_with_thumbnail=true&per_page=5&page=0
  • Explications :
Lien vers ws.php -> http://www.monsite.com/magalerie/ws.php
Passage en paramètre de la méthode ->                      ?method=pwg.categories.getImages

Définition du format de sortie ->                          &format=php

Paramètres de la requête ->                                &recursive=true
                                                           &order=random
                                                           &f_min_ratio=1.2
                                                           &f_with_thumbnail=true
                                                           &per_page=5
                                                           &page=0

Intégration dans une page externe

  • Il s'agit maintenant d'intégrer la requête WS dans une page externe à PWG et de n'afficher que les informations nécessaires. Ce qui suit nécessite un minimum de connaissances en PHP mais je vais tenter de faire au plus simple pour que chacun, quelque soit son niveau en PHP, puisse réaliser son propre service web.
  • Pour rappel, nous partons d'une requête WS élaborée dans le paragraphe précédent, destinée à afficher des 5 images aléatoires ou leur version miniature avec un critère de note moyenne minimum de 1.2.

1 - Je passe sur la position d'insertion du code PHP dans la page ou du script devant accueillir le résultat de la requête WS. Chacun trouvera l'endroit idéal qui lui conviendra selon ses besoins. Pour notre exemple, nous envisagerons le cas simple d'une page HTML formatée ou non avec des CSS et accueillant dans une partie x l'affichage de nos 5 images.

2 - Voici un exemple de code utilisable. Il sera documenté et expliqué à la suite. Ce code est modulable et n'est en aucune façon une référence en soit. Ce n'est que pour illustrer l'exemple WS considéré (merci à VDigital pour cette solution dont il est l'auteur):

<?php
// initialisation de la session
$session = curl_init();
 
// configuration des options
curl_setopt($session, CURLOPT_URL,
"http://www.monsite.com/magalerie/ws.php?method=pwg.categories.getImages&format=php&recursive=true&order=random&f_min_ratio=1.2&f_with_thumbnail=true&per_page=5&page=0");
curl_setopt($session, CURLOPT_HEADER, 0);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
 
// exécution de la session
$response = curl_exec($session); /* Ici nous réceptionnons le tableau sérialisé de la requête */
$thumbc = unserialize($response);/* que nous "désérialisons" */
 
// fermeture des ressources
curl_close($session);
 
// Réponse correcte ?
if ($thumbc["stat"]=='ok')
 {
  for ($i=0;$i<$thumbc["result"]["images"]["count"];$i++)
   {
    $picture = $thumbc["result"]["images"]["_content"][$i];
    // dans picture nous avons :  id, width, height, hit, file, name, comment, tn_url, element_url
    $HTML_txt = '<a href="http://www.monsite.com/magalerie/picture.php?/'.$picture['id'].'" title="'.$picture['name'].'">'.'<img src="'.$picture['tn_url'].'" alt="'.$picture['name'].'" /></a><span class="caption">['.$picture['width'].'x'.$picture['height'].'] &nbsp; - &nbsp;'.'Hits : '.$picture['hit'].'</span><br/>';
    echo $HTML_txt;
    }
  }
?>

3 - Explications du code ci-dessus :

A suivre…

 
Back to top
fr/faq.1183465823.txt.gz · Last modified: 2009/03/07 22:13 (external edit)
 
 
github twitter newsletter Donate Piwigo.org © 2002-2024 · Contact