Ticket #2250 (closed defect: fixed)
Erreur de parsing wiki des liens de la mediateque
Reported by: | Gvx | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | module:core | Version: | 2.11.2 |
Severity: | normal | Keywords: | |
Cc: |
Description
Lors de l'upload d'un media, dotclear remplace les caractères "interdits" dans le nom de fichier par le caractère "_". Hors en mode wiki ce caractère doublé est utilisé pour l'emphase forte (<strong>).
Dans le cas ou un media à 2 caractères interdits consécutifs, le remplacement est interprété par le parsing wiki comme emphase forte.
Exemple avec le nom original du fichier suivant:
image (2).jpg
donne en syntaxe wiki ceci:
[((/dotclear/public/.image__2__m.jpg|image__2_.jpg|C))|/dotclear/public/image__2_.jpg||image__2_.jpg]
et le parsing wiki de dotclear donne ceci
<a href="/dotclear/public/image<strong>2_.jpg" title="image</strong>2_.jpg"><img src="/dotclear/public/.image__2__m.jpg" alt="image__2_.jpg" style="display:block; margin:0 auto;" /></a>
Je suis conscient qu'il s'agit d'un cas un peu particulier, mais mieux faut le connaitre.
Un solution possible serait de réduire les "_" multiples du nom de fichier par un seul dans la fonction tidyFileName du fichier /inc/libs/clearbricks/common/lib.files.php
Change History
comment:2 Changed 8 years ago by Gvx
Un peu plus propre que la solution précédente (on utilse le nom de fichier original sans filtrage pour le titre)
# Adding a file if ($dir && !empty($_FILES['upfile'])) { // only one file per request : @see option singleFileUploads in admin/js/jsUpload/jquery.fileupload $upfile = array('name' => $_FILES['upfile']['name'][0], 'type' => $_FILES['upfile']['type'][0], 'tmp_name' => $_FILES['upfile']['tmp_name'][0], 'error' => $_FILES['upfile']['error'][0], 'size' => $_FILES['upfile']['size'][0], 'title' => html::escapeHTML($_FILES['upfile']['name'][0]) // new item ); if (!empty($_SERVER['HTTP_X_REQUESTED_WITH'])) { header('Content-type: application/json'); $message = array(); try { files::uploadStatus($upfile); $new_file_id = $core->media->uploadFile($upfile['tmp_name'], $upfile['name'],$upfile['title']); // use new item "title"
comment:4 Changed 8 years ago by Franck Paul <carnet.franck.paul@…>
- Status changed from new to closed
- Resolution set to fixed
(In [943d901d2c76]) Merged in Gvx_/dotclear/Ticket_2250 (pull request #112). Title of the image without filtering, fixes #2250
Solution beaucoup moins intrusive:
Remplacer dans le fichier /admin/media.php la ligne
par