Projet

Général

Profil

Development #16669

Ne pas laisser ckeditor forcer par défaut les dimensions de l'image

Ajouté par Frédéric Péters il y a presque 7 ans. Mis à jour il y a presque 4 ans.

Statut:
Information nécessaire
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
02 juin 2017
Echéance:
29 mars 2018
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

À la sélection d'une image, ckeditor remplit automatiquement ses champs largeur/hauteur et le résultat ensuite une fois l'image insérée c'est un attribut style="width: ...px; height: ...px;".

Dans des environnements "responsives" où la largeur des images est bloquée à la largeur de l'écran (ex: img { max-width: 100% }), le résultat c'est que l'image se trouvera compressée sur sa largeur mais conservera une hauteur identique; vraiment pas terrible.

Il faudrait que par défaut ckeditor ne mette pas en dur ces dimensions.


Fichiers


Demandes liées

Lié à Intégrations graphiques Publik - Development #40417: Toutes les images flexibles par défaultFermé04 mars 2020

Actions

Historique

#1

Mis à jour par Anonyme il y a environ 6 ans

  • Echéance mis à 15 juin 2017
  • Assigné à mis à Anonyme
#2

Mis à jour par Frédéric Péters il y a environ 6 ans

Sur la réalisation, peut-être que ckeditor propose un moyen très facile de contrôler ça et ce serait très bien.

À défaut, si l'impression donnée est que ça nécessite de remuer des trucs internes qui semblent plutôt friables, un plan tout à fait valide serait de refaire cette fenêtre d'ajout d'image, de manière propre à Publik.

Celle-ci serait alors plus légère en options, genre proposer un champ d'upload de fichier, une sélection dans les images existantes et peut-être permettre une URL. Et comme paramètres supplémentaires, l'alignement gauche/droite pour taper le float correspondant, et de quoi remplir l'attribut "alt". Et ça pourrait s'arrêter là il me semble.

#3

Mis à jour par Anonyme il y a environ 6 ans

  • Statut changé de Nouveau à Information nécessaire

Frédéric Péters a écrit :

Sur la réalisation, peut-être que ckeditor propose un moyen très facile de contrôler ça et ce serait très bien.

J'ai trouvé cette solution de configuratoin : https://docs.ckeditor.com/ckeditor4/latest/guide/dev_disallowed_content.html#how-to-allow-everything-except. En mettant disallowedContent: 'img{width, height}'

Mais pour passer la configuration type CKEDITOR.dtd dans les settings django, c'est impossible.
Je cherche un moyen de passer ce bout de config en JS dans manager_base.html, je m'arrête pour le moment : la question d'avoir 2 bouts de configurations à différents endroits me gratte. Ckeditor c'est du JS, sa configuration depuis python est forcément limitée et là je crois qu'on touche les limites.

Est-ce qu'on met toute la configuration dans un config.js et plus dans settings.py ?

#4

Mis à jour par Frédéric Péters il y a environ 6 ans

En mettant disallowedContent: 'img{width, height}'

C'était sans doute pas clair mais le problème ce n'était pas vraiment l'utilisation de width/height, c'est que la boite de dialogue de ckeditor trouve opportun par défaut de les positionner. C'est pour ça qu'en alternative à un paramétrage simple qui pemettrait d'éviter ceci je notais la possibilité de refaire la boite de dialogue avec uniquement les paramètres qu'on souhaiterait. (sans avoir non plus regardé si c'était facile d'ajouter notre propre bouton, ou de modifier le comportement du bouton existant).

~~

Mais pour reprendre sur l'interdiction de width/height, en se disant que ce n'est pas si grave si c'est interdit (je ne sais pas); on peut voir pour que CKEditorWidget ajoute un fichier js supplémentaire (cf CKEditorWidget::Media::js), avec les bouts de config désirés. (mais l'avantage de la config dans les settings django c'est qu'elle profite de toute l'infrastructure multitenant, je crains avec le js qu'on perde tout ça).

#5

Mis à jour par Frédéric Péters il y a environ 6 ans

(et aussi, si tout ça ajoute des trucs trop compliqués, je préfère continuer à vider ces champs préremplis à la main plutôt que complexifier les choses juste pour ça)

#6

Mis à jour par Anonyme il y a environ 6 ans

Frédéric Péters a écrit :

(et aussi, si tout ça ajoute des trucs trop compliqués, je préfère continuer à vider ces champs préremplis à la main plutôt que complexifier les choses juste pour ça)

J'ai trouvé un moyen de modifier une boite de dialogue comme ça : https://docs.ckeditor.com/ckeditor4/latest/guide/dev_howtos_dialog_windows.html
C'est bien ça (enlever les champs du dialog) qu'on cherche à faire ?

Mais pas sûr dans cette solution que la fonction resetSize() qui je crois écrit dans ces champs height/width (https://github.com/ckeditor/ckeditor-dev/blob/master/plugins/image/dialogs/image.js#L154) ne soit neutralisée et qu'on ne se retrouve pas non plus avec un style inline quand même inséré dans l'HTML...

#7

Mis à jour par Frédéric Péters il y a environ 6 ans

C'est bien ça (enlever les champs du dialog) qu'on cherche à faire ?

C'est enlever le préremplissage automatique de ces champs. Si ça passe par leur suppression, so be it.

#8

Mis à jour par Anonyme il y a environ 6 ans

Frédéric Péters a écrit :

C'est enlever le préremplissage automatique de ces champs. Si ça passe par leur suppression, so be it.

J'ai tenté d'enlever les input concernées, sans succès. Le crash JS a lieu lors de l'ajout d'une image :

Uncaught TypeError: Cannot read property 'getValue' of undefined
    at CKEDITOR.dialog.getValueOf (ckeditor.js:574)
    at l (image.js?t=F62B:7)
    at CKEDITOR.dialog.<anonymous> (image.js?t=F62B:10)
    at ckeditor.js:26

Il faudrait modifier le code du plugin image.js pour ignorer les éléments de la dialog 'txtWidth', 'txtHeight' et 'ratio', or ils sont codé dans les fonctions lorsqu'on upload une nouvelle image.
Cela prendra plus de temps et je pense pas possible avant la release du 22 mars.
Je propose de faire ce ticket pour la release suivante, donc.

#9

Mis à jour par Frédéric Péters il y a environ 6 ans

Ou sérieusement le zapper, en se disant que ça ne vaut pas la peine. (vraiment, c'est juste un détail de confort)

#10

Mis à jour par Anonyme il y a environ 6 ans

Frédéric Péters a écrit :

Ou sérieusement le zapper, en se disant que ça ne vaut pas la peine. (vraiment, c'est juste un détail de confort)

Ou bien étudier un changement d'éditeur. Un éditeur si lourd mais qui pose des contraintes non-paramétrables de ce type, c'est pas vraiment ce qu'on veut avec un outil aussi lourd. Par exemple Pell : https://github.com/jaredreich/pell/#readme

#11

Mis à jour par Frédéric Péters il y a environ 4 ans

#12

Mis à jour par Frédéric Péters il y a presque 4 ans

  • Patch proposed changé de Oui à Non

Formats disponibles : Atom PDF