[SPIP Zone] [Saisies] complément à 2 saisies

Hello,

Avec les saisies radio et checkbox, dans certains cas je me disais qu’il pourrait être utile de pouvoir afficher une image pour chaque option possible.
Concrètement, quelque chose comme ci-dessous : (si l’image n’est pas visible : )

eoamjfndejiflaii.png

Ce serait possible en acceptant un tableau augmenté pour l’option « data ».
C’est à dire, en plus de pouvoir faire ça :

data=#ARRAY{
pomme,Pomme,
kiwi,Kiwi,
poire,Poire
}

Pouvoir aussi faire quelque chose comme ça :

data=#ARRAY{
pomme, #ARRAY{
label, Pomme,
image, images/pomme.png
},
kiwi, #ARRAY{
label, Kiwi,
image, images/kiwi.png
},
poire, #ARRAY{
label, Poire,
image, images/poire.png
}
}

En principe ça ne demande pas de grosses adaptations dans les squelettes de ces 2 saisies, changer ça :

<label …>#VALEUR

En quelque chose comme ça :

<label …>
[#VALEUR{image}|oui)[(#CHEMIN{#VALEUR{image}|trim}|balise_img)]]
[(#VALEUR{label}|sinon{#VALEUR})]

Et adapter les fonctions qui vérifient les valeurs acceptables aussi.
Il y a d’autres choses que j’oublie ?

Des avis, utile, pas utile ?

Hop,

Le 16/10/2019 à 10:32, Charles Razack a écrit :

Hello,

Avec les saisies radio et checkbox, dans certains cas je me disais qu'il pourrait être utile de pouvoir afficher une image pour chaque option possible.
Concrètement, quelque chose comme ci-dessous : (si l'image n'est pas visible : https://pic.infini.fr/UJmrUvZA/GpWpHMK2.png)

J'ai justement eu à le faire dernièrement et j'avais fourbé en utilisant des chaînes de langues dans lesquels je générais le markup de l'image, exemple :

'smiley_1' => image_reduire(find_in_path('images/smiley1.png')),

Mais j'ai abandonné l'idée puisqu'on a basculé sur des emojis au final.

Bref, l'idée me semble intéressante, mais pourquoi ajouter un paramètre image alors qu'on peut passer directement par le label pour le faire ?

++
b_b

Le 16/10/2019 à 10:48, Bruno Bergot a écrit :

J'ai justement eu à le faire dernièrement et j'avais fourbé en utilisant des chaînes de langues dans lesquels je générais le markup de l'image, exemple :

'smiley_1' => image_reduire(find_in_path('images/smiley1.png')),

Mais j'ai abandonné l'idée puisqu'on a basculé sur des emojis au final.

Bref, l'idée me semble intéressante, mais pourquoi ajouter un paramètre image alors qu'on peut passer directement par le label pour le faire ?

++
b_b

Ah ok, bien vu, j'étais pas sûr qu'on puisse passer l'image directement dans le label.
Mais ça n'est pas très pratique, dans un squelette ça oblige à faire des choses comme ça :

data=#ARRAY{pomme,#VAL{Pomme}|concat{#CHEMIN{images/pomme.png}|balise_img}}

Pas très propre ni très lisible.
Avec des clés nommées, dans la saisie ça permet de distinguer le label et l'image en leur mettant des classes, et donc de styler plus facilement.
Éventuellement, ça laisse aussi le champ libre pour ajouter d'autres clés : title, attributs libres... à voir.

On doit déjà pouvoir faire ce genre de chose il me semble, qui ne fait
pas plus de caractères qu'avec un tableau, sans nécessiter de
complexifier le code en gérant plusieurs cas de data.

data = #ARRAY{
  pomme, #CHEMIN{images/pomme.png}|balise_img|concat{" Pomme"},
  kiwi, #CHEMIN{images/kiwi.png}|balise_img|concat{" Kiwi"},
  poire, #CHEMIN{images/poire.png}|balise_img|concat{" Poire"},
}

On peut aussi ne pas vouloir de label à côté du tout, mais rester
accessible quand même (alt) :

data = #ARRAY{
  pomme, #CHEMIN{images/pomme.png}|balise_img{Pomme},
  kiwi, #CHEMIN{images/kiwi.png}|balise_img{Kiwi},
  poire, #CHEMIN{images/poire.png}|balise_img{Poire},
}

Et même dans le constructeur de formulaire (donc les users par interface) :

pomme| <img123> Pomme
kiwi| <img456> Kiwi
poire| <img789> Poire

--
RastaPopoulos

Oui pour moi ça relève du markup spécifique à chaque intégration.
Chacun voudra intégrer l’image d’une façon ou une autre et je pense pas que ça soit utile et nécessaire de complexifier le fonctionnement de la saisie à partir du moment où le label peut contenir du html et donc une balise img

--
Cédric
Le 16 oct. 2019 à 11:08 +0200, RastaPopoulos <rastapopoulos@spip.org>, a écrit :

On doit déjà pouvoir faire ce genre de chose il me semble, qui ne fait
pas plus de caractères qu'avec un tableau, sans nécessiter de
complexifier le code en gérant plusieurs cas de data.

data = #ARRAY{
pomme, #CHEMIN{images/pomme.png}|balise_img|concat{" Pomme"},
kiwi, #CHEMIN{images/kiwi.png}|balise_img|concat{" Kiwi"},
poire, #CHEMIN{images/poire.png}|balise_img|concat{" Poire"},
}

On peut aussi ne pas vouloir de label à côté du tout, mais rester
accessible quand même (alt) :

data = #ARRAY{
pomme, #CHEMIN{images/pomme.png}|balise_img{Pomme},
kiwi, #CHEMIN{images/kiwi.png}|balise_img{Kiwi},
poire, #CHEMIN{images/poire.png}|balise_img{Poire},
}

Et même dans le constructeur de formulaire (donc les users par interface) :

pomme| <img123> Pomme
kiwi| <img456> Kiwi
poire| <img789> Poire

--
RastaPopoulos

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

Oui finalement ça fait l'affaire de cette façon.
Je remise la proposition !

Le 16/10/2019 à 11:35, Cerdic a écrit :

Oui pour moi ça relève du markup spécifique à chaque intégration.
Chacun voudra intégrer l’image d’une façon ou une autre et je pense pas que ça soit utile et nécessaire de complexifier le fonctionnement de la saisie à partir du moment où le label peut contenir du html et donc une balise img