Dotclear

Ticket #2250 (closed defect: fixed)

Opened 8 years ago

Last modified 8 years ago

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:1 Changed 8 years ago by Gvx

Solution beaucoup moins intrusive:

Remplacer dans le fichier /admin/media.php la ligne

$new_file_id = $core->media->uploadFile($upfile['tmp_name'], $upfile['name']);

par

$new_file_id = $core->media->uploadFile($upfile['tmp_name'], $upfile['name'],preg_replace('/_{2,}/u','_',$upfile['name']));

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' => $_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"

Version 0, edited 8 years ago by Gvx (next)

comment:3 Changed 8 years ago by franck

  • Milestone A definir deleted

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

Note: See TracTickets for help on using tickets.

Sites map