[spip-dev] _IMG_MAX_WIDTH et _IMG_MAX_HEIGHT ne marchent pas

Bonjour,

en mettant dans le fichier mes_options.php

define('_IMG_MAX_WIDTH',500);
define('_IMG_MAX_HEIGHT',500);

...aucun warning n'est affiché dans le back-office lorsque je charge une image e, 2000 x 1500.

En regardant le fichier plugins-dist/medias/action/renseigner_documents.php ligne 92, le foreach() écrase la valeur infos["type_image"] car type_image n'est pas dans la liste des champs éditables. En fait, si j'ai bien compris type_image est l'extension de l'image.

Sous la ligne 94, j'ai rajouté la ligne...

$infos["type_image"] = $meta["type_image"];

et cela prend bien en compte les defines ci-dessus.

Peetdu

Rhaaa... pardon, je me suis trompé de ligne. Dans SPIP 3.0.5, il faut regarder les lignes suivantes :

plugins-dist/medias/action/renseigner_documents.php ligne 104, le foreach() écrase la valeur infos["type_image"] car type_image n'est pas dans la liste des champs éditables.

Sous la ligne 106, j'ai rajouté la ligne...

$infos["type_image"] = $meta["type_image"];

salut,
merci pour l’info, mais je trouve pas ce fichier renseigner_documents.php…
ce serait pas le fichier ajouter_documents.php ?
quelle version du plugin medias ?

Ayant le même souci, j'ai cherché mais n'ai trouvé un foreach (en fait 2) que dans
plugins-dist/medias/inc/joindre_documents.php

comme je n'y connais rien en php, je n'ai rien touché

Décidement....il y avait encore une erreur dans mon mail.

Pour SPIP 3.0.5, plugin Média 2.7.34
le fichier où faire la correction est celui-ci :
plugins-dist/medias/inc/joindre_documents.php (c'était pas dans /action mais dans inc/)

ligne 107, rajouter

$infos["type_image"] = $meta["type_image"];

désolé pour la confusion...

P.

Essai en local avec spip 3.0.5 et plugin Média 2.7.34

dans plugins-dist/medias/inc/joindre_documents.php lignes 105 et suivantes
         else {
           // on upload tout un repertoire
           $infos["type_image"] = $meta["type_image"];
           $files = array();
           foreach (preg_files($upload) as $fichier) {
                 $files[]= array (
                     'name' => basename($fichier),
                     'tmp_name' => $fichier
                 );
           }
           return $files;
         }
     }

dans mes_options :
define('_IMG_MAX_WIDTH', 500) ;
define('_IMG_MAX_HEIGHT', 500) ;
define('_IMG_MAX_SIZE', 350);

Résultat :
une image de 1.3Mo et de 3872px par 2592px passe sans que spip bronche

je dois donc me planter quelque part mais où ?

Ok. je refais un essai :

Dans le fichier plugins-dist/medias/inc/renseigner_documents.php ligne 103, on trouve le code suivant :

include_spip('inc/filtres');
# pour objet_info()
  foreach($meta as $m=>$v)
    if (in_array($m,objet_info('document','champs_editables')))
      $infos[$m] = $v;

return $infos;

il faut le remplacer par le code suivant

include_spip('inc/filtres');
# pour objet_info()
  foreach($meta as $m=>$v)
    if (in_array($m,objet_info('document','champs_editables')))
      $infos[$m] = $v;
    $infos["type_image"] = $meta["type_image"];

return $infos;

dis moi si cela marche chez toi...

P.
ps : désolé pour toutes ces confusions.

dans le fichier

Ah ben oui, dans le bon fichier, ça marche mieux !! :-[
Merci.

Il s'agit donc d'un petit bug de spip

Un moyen de faire la même chose sans toucher au plugin de spip ?
J'ai essayé de rajouter ce fichier modifié dans /plugins/auto/escal/inc/
mais ça ne fonctionne plus

Un moyen de faire la même chose sans toucher au plugin de spip ?

Ce n'est pas une fonction avec l'extension _dist, donc non surchargeable.

Il faudrait probablement déposer un ticket dans la zone.
Je vais me renseigner....

P.

ok je te laisse faire et j'attends des nouvelles
Merci

de mon côté je vous confirme que ça marche très bien, dans mes_options :
if (!defined(’_LOGO_MAX_SIZE’)) define(’_LOGO_MAX_SIZE’,50);
est enfin pris en compte…
;o)
pour les tickets je sais pas, ils sont faits pour le core de SPIP, et là comme il s’agit d’un plugin, la liste SPIP-zone est-elle à privilédier ?
d’ailleurs cette discussion devrait déjà pas être sur spip-dev elle-même…

pour faire des trous dans les tickets des plugins-dist, c'est là :

http://core.spip.org/projects/spip/issues/report/subproject

oui ça marche avec la modif du plugin media
à la prochaine mise à jour de spip, la modif sera effacée
ce serait donc bien que la modif soit intégrée au plugin

un ticket est ouvert