ID d'un élément Write Pro

Bonjour,

Si je veux retrouver un élément particulier dans mon document Write Pro (une image en l’occurence), je peux utiliser WP Get element by ID. Ça me semble correspondre exactement à mon besoin. Sauf que tous les éléments n’ont pas d’ID et notamment les images en ligne.
Y’a une raison particulière à ça ?
Je peux affecter moi-même un ID à cette image et je n’aurai pas de problème pour la retrouver ?
Ou alors un autre moyen d’identifier un élément ?

Bonjour Éric,

Oui bien sûr tu peux le faire par programmation au moment ou l’insères par exemple.
Si les images “inline” n’ont pas d’ID c’est que la plupart du temps on n’en a pas besoin et il est donc inutile d’alourdir les documents “pour rien”.

L’autre façon de faire, sans ajouter d’ID c’est de partir d’un range donné (via un signet par exemple) et de faire un WP Get elements (… wk type image); Ca te renverra une collection contenant une seule image (si le range n’en contient qu’une bien sûr)

À voir donc, selon les besoins, quelle est la meilleure façon de procéder.

Cordialement,

Roland

Bonjour Roland,

C’est parfait, je vais donc rajouter un ID sans m’inquiéter :slightly_smiling_face:

Merci de ton retour et à bientôt,

Eric

Bonjour
j’essaye désespérément de mettre un ID a une image importé “inline”, mais j’ai toujours un message
“L’attribut ID n’est pas autorisé dans ce contexte”.
Voici mon code

C_OBJET($range)
$range:=WP Plage selection(*;$WP_Area)
WP INSÉRER IMAGE($range;varImage;wk replace)
WP SÉLECTIONNER(*;$WP_Area;$range)
WP FIXER ATTRIBUTS($range;wk id;"test")

Merci d’avance pour votre aide
Cordialement
Jean-Paul RAMOINO

4D DOC : Les attributs suivants sont disponibles pour les images ancrées uniquement

Bonjour

Les images ancrées ont un id par defaut… (que vous pouvez toutefois modifier) alors que les images “inline” n’ont pas d’id par défaut parce que la plupart du temps ça ne sert à rien. Mais là aussi, vous pouvez leur en donner un, ce n’est pas interdit !

Dans votre exemple, c’est normal que ça ne marche pas : Vous tentez de donner un ID à un range. Ce n’est pas au range qu’il faut donner un id mais à l’image…!

Attention, les id doivent être uniques sinon 4DWP va lever une erreur.
C’est la raison pour laquelle, dans l’exemple ci-dessous, qui “numérote” les images, on commence d’abord par retirer les IDs !

$collection:= WP Get elements ([doc]WP;wk type image inline)

For each ($element;$collection)
  OB REMOVE ($element;"id")
End for each

$i:=1000
For each ($element;$collection)
  $i:=$i+1
  WP SET ATTRIBUTES ($element;"id";"floatPict"+ String ($i))
End for each

Si vous ne voulez pas tout renuméroter mais que vous voulez ajouter un ID unique (sans connaitre d’avance ceux déjà utilisés) alors utilisez les fonctions de filtrage des collection pour ne garder que les id, triez votre collection et partez du dernier pour trouver un nouvel id inutilisé.

Cordialement

Roland Lannuzel

1 Like