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
Bonjour
vous pouvez faire un simlink dans galleries ou utilisez la fonctionnalité Sites Distant
Hors ligne
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
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
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
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
je reviens sur le sujet : normalement Piwigo échappe les caractères spéciaux
Dans quel cas cela posait problème ?
Hors ligne
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
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
Bonjour obones,
Peux tu ouvrir un ticket dans le bugtracker http://piwigo.org/bugs et proposer ton patch ?
Hors ligne
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
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