•  » Utilisation
  •  » Utiliser une arborescence existante

#1 2012-11-12 11:14:36

obones
Membre
2012-11-12
21

Utiliser une arborescence existante

Bonjour,

Je stocke nos photos sur le serveur Linux à la maison, dans une arborescence de répertoires, arborescence partagée via Samba pour que les postes Windows puissent y accéder.
C'est très pratique pour décharger les fichiers depuis les différents appareils, mais au fur et à mesure que les photos se multiplient, c'est de plus en plus difficile de s'y retrouver.
J'ai installé la dernière version de Piwigo, recompilé mon module PHP pour y inclure exif et zip, et me voilà en ligne.
Mais voilà, je ne vois pas comment dire à Piwigo d'utiliser cette arborescence sans copier les fichiers ailleurs, puis de se mettre à jour régulièrement.
J'ai bien vu la page "Synchronisation" dans la partie "Admin", mais elle ne parle que de ./galleries avec aucun moyen de dire d'utiliser /files/photos par exemple. Et puis en lisant la doc, les limitations sur les noms de fichier (pas d'espace notamment) sont trop strictes par rapport aux fichiers existants.
En cherchant dans la doc, je suis tombé sur le script "Import tree" : http://piwigo.org/doc/doku.php?id=user_ … mport_tree

Mais là, j'ai du mal à voir comment ça va fonctionner, notamment je ne sais pas si ça laisse les fichiers à leur place, malgré les noms avec espaces, et si ça les ajoute dans le panier pour que je puisse retrouver  les nouvelles photos plus facilement et ainsi les tagguer correctement.

J'espère avoir été assez clair sur mes besoins et je vous remercie par avance pour vos réponses

Hors ligne

#2 2012-11-12 11:29:49

flop25
Équipe Piwigo
2006-07-06
6544

Re: Utiliser une arborescence existante

Bonjour
vous pouvez faire un simlink dans galleries ou utilisez la fonctionnalité Sites Distant

Hors ligne

#3 2012-11-12 11:33:12

rvelices
Équipe Piwigo
2005-12-29
1417

Re: Utiliser une arborescence existante

flop25 a écrit:

ou utilisez la fonctionnalité Sites Distant

flop25, les sites distantes ne marchent plus a partir de la  2.4

Hors ligne

#4 2012-11-12 11:35:18

flop25
Équipe Piwigo
2006-07-06
6544

Re: Utiliser une arborescence existante

rvelices a écrit:

flop25 a écrit:

ou utilisez la fonctionnalité Sites Distant

flop25, les sites distantes ne marchent plus a partir de la  2.4

ma 'langue'  a fourché : je voulais parler du "Gestionnaire des sites" ^^
merci

Hors ligne

#5 2012-11-12 11:42:57

obones
Membre
2012-11-12
21

Re: Utiliser une arborescence existante

Merci pour votre réponse.
J'avais bien pensé au symlink, mais dans ce cas là, que va faire Piwigo des fichiers et répertoires qui ne correspondent pas aux contraintes de nommage ?
Parce qu'à vu de nez, y'a bien 50% des fichiers qui ne respectent pas ces critères (accents et espaces notamment)

Hors ligne

#6 2012-11-12 11:53:05

flop25
Équipe Piwigo
2006-07-06
6544

Re: Utiliser une arborescence existante

obones a écrit:

Merci pour votre réponse.
J'avais bien pensé au symlink, mais dans ce cas là, que va faire Piwigo des fichiers et répertoires qui ne correspondent pas aux contraintes de nommage ?
Parce qu'à vu de nez, y'a bien 50% des fichiers qui ne respectent pas ces critères (accents et espaces notamment)

ha ben là ça ne va pas aller en effet : mais vous pouvez utiliser
// permitted characters for files/directoris during synchronization
$conf['sync_chars_regex'] = '/^[a-zA-Z0-9-_.]+$/';

Peut être qu'Import tree est la solution mais je pense qu'il ne fait qu'utiliser une arborescence : après l'ajout d'images par web upload dupliquera tjrs les images

Je pense perso que sync_chars_regex + une petit nettoyage tout de même des noms de fichiers trop exotiques+symlink est la solution

Hors ligne

#7 2012-11-12 13:35:40

obones
Membre
2012-11-12
21

Re: Utiliser une arborescence existante

Merci pour la suggestion, je suis effectivement passé par sync_chars_regex à qui j'ai donné cette valeur :

/^[a-zA-Z0-9-_. àäéèëêîïôöùûç\&\(\)\',!°]+$/

Bon, ok, ça fait un peu beaucoup, mais là, j'ai tout qui s'importe.
Enfin, au détail près que j'ai du rajouter des appels à mysql_real_escape_string dans le fichier des fonctions DB pour que les noms avec apostrophe (Surfer's Paradise par exemple) ne provoquent pas de plantage dans les requêtes.

Hors ligne

#8 2012-12-19 16:25:54

flop25
Équipe Piwigo
2006-07-06
6544

Re: Utiliser une arborescence existante

je reviens sur le sujet : normalement Piwigo échappe les caractères spéciaux
Dans quel cas cela posait problème ?

Hors ligne

#9 2012-12-22 11:26:12

obones
Membre
2012-11-12
21

Re: Utiliser une arborescence existante

Bonjour,

Le problème se situait dans /include/dblayer/functions_mysql.inc.php, voici le fichier diff au format unified:

--- functions_mysql.inc.php~    2012-11-12 13:08:24.000000000 +0100
+++ functions_mysql.inc.php    2012-11-12 13:08:24.000000000 +0100
@@ -235,7 +235,7 @@

         if (isset($data[$key]) and $data[$key] != '')
         {
-          $query.= $separator.$key.' = \''.$data[$key].'\'';
+          $query.= $separator.$key.' = \''.mysql_real_escape_string($data[$key]).'\'';
         }
         else
         {
@@ -258,7 +258,7 @@
           }
           if ( isset($data[$key]) )
           {
-            $query.= $key.' = \''.$data[$key].'\'';
+            $query.= $key.' = \''.mysql_real_escape_string($data[$key]).'\'';
           }
           else
           {
@@ -372,7 +372,7 @@

     if (isset($value) and $value !== '')
     {
-      $query.= $separator.$key.' = \''.$value.'\'';
+      $query.= $separator.$key.' = \''.mysql_real_escape_string($value).'\'';
     }
     else
     {
@@ -395,7 +395,7 @@
       }
       if ( isset($value) )
       {
-        $query.= $key.' = \''.$value.'\'';
+        $query.= $key.' = \''.mysql_real_escape_string($value).'\'';
       }
       else
       {
@@ -514,7 +514,7 @@
       }
       else
       {
-        $query .= "'".$value."'";
+        $query .= "'".mysql_real_escape_string($value)."'";
       }
     }
     $query .= ')';


J'ai fait les changements partout où j'ai pu même si dans mon cas précis, il n'y avait que deux endroit vraiment utiles pour l'import en masse. Mais comme je fais des mises à jour plus tard, j'ai décidé de changer partout où c'était possible.

Hors ligne

#10 2013-10-09 22:41:34

obones
Membre
2012-11-12
21

Re: Utiliser une arborescence existante

Bonjour,

Je viens de faire la MAJ en 2.5 et paf, mes modifs ont été écrasées. Ca aurait été vraiment sympa si elles avaient été incluses, et prises en considération pour la suite.
En effet, une nouvelle fonction est apparue (mass_inserts) et doit elle aussi être patché.

Par ailleurs, en poursuivant plus loin, je me suis aperçu de deux choses :

1.
i.php doit lui aussi être patché, il fait un select sans appel à mysql_real_escape_string

2.
Mettre l'esperluette dans les caractères autorisés est une très mauvaise idée, ce caractère étant réservé pour les URLs. A ce titre, sa présence dans le chemin d'un fichier provoque divers plantages et comportements erratiques, notamment dans i.php
Il faut donc le retirer de la regex et renommer les répertoires/fichiers incriminés, c'est bien plus sûr.

Hors ligne

#11 2013-10-10 08:07:55

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12672

Re: Utiliser une arborescence existante

Bonjour obones,

Peux tu ouvrir un ticket dans le bugtracker http://piwigo.org/bugs et proposer ton patch ?


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#12 2013-10-10 10:11:34

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: Utiliser une arborescence existante

est-ce que ça ne va pas poser des soucis ? dans certains cas real_escape_string sera appliquée deux fois sur les données (une fois fois par le script/plugin une fois par la fonction SQLà

Hors ligne

#13 2013-10-10 11:45:39

obones
Membre
2012-11-12
21

Re: Utiliser une arborescence existante

Bah pour autant que j'ai pu le tester, mysql_real_escape_string n'est pas appelé et les valeurs sont filées tel quel aux fonctions de functions_mysql.inc.php, d'où les plantages.
Ca fait presqu'un an que je tourne avec ce patch et hormis le soucis des miniatures que j'ai aussi résolu par un appel à mysql_real_escape_string, je n'ai rencontré aucun autre problème.
Après, peut être que les modifs ne sont nécessaires que pour les insertions en masse (je ne fait que ça) mais je ne peux pas en dire plus.

Hors ligne

#14 2013-10-10 11:52:09

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: Utiliser une arborescence existante

je parle des nombreux plugins qui échappent déjà les données avant

ce que je veux dire c'est que la correction n'est pas forcement à faire dans le fichier de fonctions SQL mais en amont

Hors ligne

#15 2013-10-10 13:06:21

obones
Membre
2012-11-12
21

Re: Utiliser une arborescence existante

Ah bah ça, je n'en sais rien, je pense que l'équipe en saura plus que moi.
Mais visiblement, les fonctions d'import de masse ne sont utilisés que par piwigo et clairement, les chaînes ne sont pas traitées...
Et i.php ne traite pas non plus comme il faut.

Hors ligne

  •  » Utilisation
  •  » Utiliser une arborescence existante

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact