Annonce

  •  » Utilisation
  •  » Synchronisation et format de nommage

#1 2021-03-02 08:52:36

JMMO59
Membre
2021-01-30
28

Synchronisation et format de nommage

Bonjour,

Ayant tout perdu lors d'une montée de version piwigo, je suis donc contraint de tout re-uploader dans mon serveur propre (j'ai purgé toutes les tables sauf celles des users).
Cherchant à me simplifier la vie (22000 photos et plus de 150 répertoires/sous-repertoires), j'ai envisagé de faire cela par une synchro (ftp pour mettre les répertoires/sous-repertoires dans ./galleries puis synchro totale).
Oui mais voilà... mes répertoires sur PC sont nommés en utilisant des accents, des " ", etc... c'est quand même bien plus élégant pour regarder les photos sur PC ou sur un autre média d'avoir des labellisation en français...
Mais ça, piwigo ne l'accepte pas et refuse donc de créer des répertoires identiques à ceux du PC.
Or, si je crée un répertoire directement à la main dans piwigo, avec des " " et des accents, rien ne le gêne et je suis même allé voir dans la base de données, ces labels sont bien intégrés tels quels...
Alors pourquoi ce blocage lors de la synchro (et aussi avec les outils upload externes, car j'ai tenté le coup avec piwigoRemoteSynch et c'est pareil). C'est vraiment un gros souci car en cas de casse, cette possibilité de reconstruire rapidement et à moindre effort une base neuve est impossible. Ça fait réfléchir quand même quant à l'usage moyen ou long terme de piwigo...
A moins qu'il existe une astuce, un outil, un plugin, ou une manip qui permette de s'affranchir de cette contrainte?
Merci pour vos avis et conseils.

Piwigo 11.3.0
Système d'exploitation: Linux
PHP: 7.3.19-1~deb10u1
MySQL: 5.5.5-10.3.27-MariaDB-0+deb10u1
Bibliothèque graphique: GD 2.2.5

Dernière modification par JMMO59 (2021-03-02 09:07:05)

Hors ligne

#2 2021-03-02 09:06:37

k5
Équipe Piwigo
La reppe
2014-01-26
805

Re: Synchronisation et format de nommage

Bonjour,
dans "localfiles editor", essayer le code : (voici le mien en partage)

Code:

$conf['sync_chars_regex'] = '/^[a-zA-Z0-9é\'\è~à%&êñ!ëçïÁÂÀô`‘’()-_. ]+$/';

Cordialement
k5


Essayez d'Avoir comme premier réflexe de lire les documentations s'il y a des réponses à votre question. merci
Piwigo documentation

Hors ligne

#3 2021-03-02 09:39:04

JMMO59
Membre
2021-01-30
28

Re: Synchronisation et format de nommage

Génial!!!
Ca fonctionne. Un grand merci.
Mais encore une fois, pourquoi la documentation piwigo au chapitre synchronisation ne fait-elle pas mention de ce sujet?
C'est dommage. ca ferait gagner du temps à tout le monde...
Merci encore pour cette information cruciale et qui va me faire gagner tant de temps.

Hors ligne

#4 2021-03-02 09:43:42

TOnin
Membre
2010-08-10
60

Re: Synchronisation et format de nommage

Bonjour,
je partage cet envie d'avoir une plus large palette de caractères disponibles dans l'arborescence de Piwigo. J'ai essayé, creusé, bidouillé et ça a fini par être stable... En fait, la configuration proposée par k5 risque de ne pas suffire. En effet, les caractères accentués peuvent poser des problèmes quand l'encodage des caractères n'est pas le même entre le système de fichier, la base de données, les champs de données, les pages web. Si aujourd'hui la plupart des systèmes informatiques sont presque tous passé à UTF-8, il y a quelques années, assurer les conversions dans le code pouvait s'avérer difficile. Je ne parle même pas de la gestion du passage de l'ancien au nouvel encodage (Si ce n'est pas si difficile, ça ne s'improvise pas).
Si c'est stable chez moi, c'est que j'ai dû modifier un peu le code, notamment pour faire évoluer la façon dont les chaînes de caractères sont parfois comparées.

Si je parvenais à énoncer les quelques modifications effectuées, je reviendrai les poster par ici, ou proposer un pull request sur le code source du projet.

Ce n'est pas anodin de prendre en charge davantage de caractères, car cela pourrait aussi impacter le fonctionnement de certaines extensions. C'est davantage une interrogation qu'une certitude.

Hors ligne

#5 2021-03-02 10:02:48

TOnin
Membre
2010-08-10
60

Re: Synchronisation et format de nommage

Un écueil rencontré était les répertoires dont le nom commence par un 'é', par une lettre accentuée. À tester ?

Hors ligne

#6 2021-03-02 10:21:33

JMMO59
Membre
2021-01-30
28

Re: Synchronisation et format de nommage

Merci TOnin pour ces précisions.
Je resterai à l'écoute de tes retours pour la suite.

Hors ligne

#7 2021-03-02 11:07:24

TOnin
Membre
2010-08-10
60

Re: Synchronisation et format de nommage

Le problème est maintenant recensé ici [Github] Piwigo issue #1353
Je viens de -//:---\spam quelques tests, et cela affecte aussi l'affichage des noms de fichiers commençant par une lettre accentuée. Cela dit les répercutions ne sont pas les mêmes, au contraire des répertoires commençant par une lettre accentuée, ces fichiers ne sont pas réimportés à chaque synchronisation.
Le problème rapporté dans l''issue est donc livré avec ma rustine, mais elle mériterait d'être améliorée, et répétée en d'autres endroits du code.

Le code de Piwigo devrait sans doute se doter d'une fonction mb_basename() de manière à pouvoir gérer les caractères multi-octets.

Hors ligne

#8 2021-03-02 11:13:04

k5
Équipe Piwigo
La reppe
2014-01-26
805

Re: Synchronisation et format de nommage

Bonjour,

JMM059 a écrit:

Mais encore une fois, pourquoi la documentation piwigo au chapitre synchronisation ne fait-elle pas mention de ce sujet?

Pour la documentation, donnez moi un conseil sur quelle page je pourrai ajouter la documentation sur le regex, je peux le faire :)

dans mon code perso regex, on peut insérer des minuscules, majuscules et chiffres de l'alphabet francais sans les accents et j'ai rajouté les alphabets à accent un par un suivant mes catégories, il se peut qu'un caractère n'existe pas par exemple î on ne pourra pas synchronoser tout comme les guillemets ... anglais etc... simples ... double

l'idéal serait d'ajouter tout les caractères internationaux mais faut que le moteur de la base de donnée suivent leur évolution aussi bien que les codes en php, js etc...

la fonction mb_basename, je vais regarder ça, le seul truc c'est que bientôt faudra passer php 8 un jour :)

Cordialement
k5


Essayez d'Avoir comme premier réflexe de lire les documentations s'il y a des réponses à votre question. merci
Piwigo documentation

Hors ligne

#9 2021-03-03 08:21:08

JMMO59
Membre
2021-01-30
28

Re: Synchronisation et format de nommage

Je suis en train de restaurer l'ensemble de ma collection de photo par la synchro. Avec la manip de k5, tout semble fonctionner à peu près normalement sauf la présence de l'apostrophe ( ' ) dans le nom des répertoires.
Pourtant ce caractère est bien dans la liste de k5 mais il buggue malgré tout systématiquement sur les répertoires qui ont un ' dans leur nom. Par contre, pour les accents, a priori, jusque là, pas de problème.

Le â posait aussi problème ... Je l'ai ajouté et ça fonctionne... mais pas pour l'apostrophe...

Dernière modification par JMMO59 (2021-03-03 10:26:36)

Hors ligne

#10 2021-03-03 11:14:02

TOnin
Membre
2010-08-10
60

Re: Synchronisation et format de nommage

L'apostrophe serait possible, mais en reprenant la façon dont sont préparées la plupart des requêtes SQL, aucune idée du nombre de modifications à prévoir... Je m'inquièterais alors du risque d'ouvrir la porte aux injections SQL. A-t-on déjà vu une attaque par le nom de fichier ou de répertoire ? Manuel PHP > Sécurité > Sécurité des bases de données > Injection SQL

Pour ma part, j'autorise les caractères suivants. À noter les intervalles pour les lettres accentuées, et quelques caractères piochés hors de ces intervalles (œ, Œ, Ÿ). Les intervalles ont été devinés à partir d'une table de caractères couvrant les portions 0000−007F Latin de base, 0080−00FF Supplément latin-1 et 0100−017F Latin étendu A Wikipédia > Unicode > Plan multilingue de base. (Je m'interroge sur la variabilité des définitions d'intervalles en fonction des paramètres régionaux propres à chacun, cela dit entre francophones utilisant des systèmes gérant l'unicode ça devrait aller)

Code:

// '’' Unicode recommande l’utilisation du guillemet-apostrophe (U+2019) pour représenter l’apostrophe
$conf['sync_chars_regex'] = '/^[a-zA-Z0-9-_.à-öø-ýœÿÀ-ÖØ-ÝŒŸ’%=,:;§)( ]+$/';

Édition du message pour ajouter le caractère ÿ, en effet les séquences des intervalles minuscules et majuscules n'ont pas forcément le même arrangement... (De toute façon, en tant que francophone, je n'utilise jamais d'y accentué !)

Dernière modification par TOnin (2021-03-03 14:23:27)

Hors ligne

  •  » Utilisation
  •  » Synchronisation et format de nommage

Pied de page des forums

Propulsé par FluxBB

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