Advanced search  

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Pages: [1]   Go Down

Author Topic: Remplacer caractères accentués lors de l'upload d'une photo  (Read 6326 times)

0 Members and 1 Guest are viewing this topic.

HollowMac

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 28
    • Fourmis-Passion

Bonjour,

J'aimerais remplacer les caractères accentués de mes photos par leurs homologues non accentués (exemple : remplacer "é" par "e"), car le module Lightbox (que vous devez connaitre) n'arrive pas à afficher mes images avec caractères accentués (qui sont remplacés par des % et compagnie).

J'ai bidouiller $picture_name dans upload.php mais rien à faire : strtr ou str_replace ne marchent pas !

Une idée ?

COrdialement,
Merci.
Logged

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: Remplacer caractères accentués lors de l'upload d'une photo
« Reply #1 on: July 20, 2009, 05:56:34 pm »

si c'est lors de l'upload, il s'agit du nom de fichier ?
Dans ce cas, il suffit de renommer les images AVANT de les télécharger sur la galerie. De toute façon, ce n'est pas une bonne idée de mettre des caractères accentués dans les noms de ficheirs
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

HollowMac

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 28
    • Fourmis-Passion
Re: Remplacer caractères accentués lors de l'upload d'une photo
« Reply #2 on: July 21, 2009, 08:30:40 pm »

Dans ce cas, il suffit de renommer les images AVANT de les télécharger sur la galerie
;D Il suffirait aussi de faire en sorte que Coppermine les renomme.

Cette galerie a pour but de permettre aux membres de mon site d'y mettre leurs photos. Et dans le but de rendre cette tâche la plus simple possible, je ne veux pas qu'ils renomment eux même leurs photos.
Logged

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: Remplacer caractères accentués lors de l'upload d'une photo
« Reply #3 on: July 22, 2009, 05:21:51 pm »

;D Il suffirait aussi de faire en sorte que Coppermine les renomme.
certe, mais il faut bien voir qu'il n'y a pas tant de langues que ça qui utilisent les caractères accentués.
Il y a néanmoins une fonction dans la configuration qui permets de remplacer certains caractères si ils sont présents dans le nom du fichier par un "_" (paramètres avancés des images et des vignettes -> Caractères interdits dans les noms de fichiers)
il faudrait éventuellement aller voir cette fonction et y ajouter un boucle conditionnelle qui gère les accents...
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

HollowMac

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 28
    • Fourmis-Passion
Re: Remplacer caractères accentués lors de l'upload d'une photo
« Reply #4 on: August 02, 2009, 01:35:58 pm »

J'ai réussi à résoudre mon problème en modifiant la fonction qui s'occupe de remplacer les caractères interdits !  :)

Dans le fichier fonctions.inc.php se trouvant dans le répertoire include, chercher la fonction replace_forbiden, et la remplacer par :

Code: [Select]
function replace_forbidden($str)
{
  static $forbidden_chars;
  if (!is_array($forbidden_chars)) {
    global $CONFIG, $mb_utf8_regex;
    if (function_exists('html_entity_decode')) {
      $chars = html_entity_decode($CONFIG['forbiden_fname_char'], ENT_QUOTES, 'UTF-8');
    } else {
      $chars = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;', '&nbsp;', '&#39;'), array('&', '"', '<', '>', ' ', "'"), $CONFIG['forbiden_fname_char']);
    }
    preg_match_all("#$mb_utf8_regex".'|[\x00-\x7F]#', $chars, $forbidden_chars);
  }
  /**
   * $str may also come from $_POST, in this case, all &, ", etc will get replaced with entities.
   * Replace them back to normal chars so that the str_replace below can work.
   */
  $str = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array('&', '"', '<', '>'), $str);
  $return = str_replace($forbidden_chars[0], '_', $str);
 
  /*
  Remplace les caractères accentués par leurs homologues non accentués.
  */ 
  $remplacements = array('à' => 'a', 'â' => 'a', 'Â' => 'A', 'é' => 'e', 'è' => 'e', 'ê' => 'e', 'Ê' => 'E', 'ù' => 'u', 'û' => 'u', 'Û' => 'U', 'ï' => 'i', 'î' => 'i', 'Ï' => 'I', 'Î' => 'I', 'ô' => 'o', 'Ô' => 'O');
  $return = strtr($return,$remplacements);

  /**
  * Fix the obscure, misdocumented "feature" in Apache that causes the server
  * to process the last "valid" extension in the filename (rar exploit): replace all
  * dots in the filename except the last one with an underscore.
  */
  // This could be concatenated into a more efficient string later, keeping it in three
  // lines for better readability for now.
  $extension = ltrim(substr($return,strrpos($return,'.')),'.');
  $filenameWithoutExtension = str_replace('.' . $extension, '', $return);
  $return = str_replace('.', '_', $filenameWithoutExtension) . '.' . $extension;

  return $return;
}
Logged

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: Remplacer caractères accentués lors de l'upload d'une photo
« Reply #5 on: August 02, 2009, 01:59:35 pm »

oui effectivement, mais attention à ne pas remplacer le fichier modifié lors des mises à jour en espérant qu'il n'y aura pas de modifications majeures lors de ces mises à jour. en tout état de cause, il faut garder quelque part les références de ces changements
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog
Pages: [1]   Go Up
 

Page created in 0.019 seconds with 19 queries.