balise #FICHIER mal formatée si la boucle n'est pas DOCUMENTS #3108

Closed
opened 9 years ago by fabrice · 5 comments
fabrice commented 9 years ago

Lorsque l'on cherche a atteindre un fichier dans ue boucle de ce type :


   [(#FICHIER|image_reduire{200})]
 

Le fitre ne passe pas car le path est incorrect, il manque IMG/

On peut contourner le problème en passant par un #SET / #GET ou bien avec #URL_DOCUMENT comme le fait remarquer b_b :

#SET{monfichier,IMG/#FICHIER}
  [(#GET{monfichier}|image_reduire{200})]
ou
[(#URL_DOCUMENT|image_reduire{200})]

Evidemment la seconde est plus pérenne que la 1ère dans le cas où il s'agit d'un bug résoluble.

Lorsque l'on cherche a atteindre un fichier dans ue boucle de ce type : <pre> <BOUCLE_exemple(ARTICLES documents){documents.extension IN jpg,gif,png}{0,1}> [(#FICHIER|image_reduire{200})] </BOUCLE_exemple> </pre> Le fitre ne passe pas car le path est incorrect, il manque *IMG/* On peut contourner le problème en passant par un #SET / #GET ou bien avec #URL_DOCUMENT comme le fait remarquer b_b : <pre> #SET{monfichier,IMG/#FICHIER} [(#GET{monfichier}|image_reduire{200})] ou [(#URL_DOCUMENT|image_reduire{200})] </pre> Evidemment la seconde est plus pérenne que la 1ère dans le cas où il s'agit d'un bug résoluble.
b_b commented 9 years ago
Owner

Alors, après réflexion... je ne suis pas certain que ça soit un bug :p

La balise #FICHIER bénéficie d'un traitement spécifique lorsqu'elle est utilisée dans une boucle DOCUMENTS cf (merci à denisb pour l'info) :

http://zone.spip.org/trac/spip-zone/browser/core/plugins/medias/base/medias.php#L40

Mais dans ton cas on est dans une boucle ARTICLES, et il faudrait donc utiliser la balise #LOGO_DOCUMENT comme ce ci :

[(#LOGO_DOCUMENT**|image_reduire{500,0}|image_recadre{280,177,center})]

Deux solutions :

  • soit on précise dans la doc que la balise #FICHIER est "obsolète" (sauf dans une boucle DOCUMENTS), et qu'il faut passer par #LOGO_DOCUMENT**
  • soit on généralise le traitement sur la balise #FICHIER à toutes les boucles (au risque de péter les champs FICHIER sur d'autres tables).
Alors, après réflexion... je ne suis pas certain que ça soit un bug :p La balise #FICHIER bénéficie d'un traitement spécifique lorsqu'elle est utilisée dans une boucle DOCUMENTS cf (merci à denisb pour l'info) : http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/medias/base/medias.php#L40 Mais dans ton cas on est dans une boucle ARTICLES, et il faudrait donc utiliser la balise #LOGO_DOCUMENT comme ce ci : [(#LOGO_DOCUMENT**|image_reduire{500,0}|image_recadre{280,177,center})] Deux solutions : - soit on précise dans la doc que la balise #FICHIER est "obsolète" (sauf dans une boucle DOCUMENTS), et qu'il faut passer par #LOGO_DOCUMENT** - soit on généralise le traitement sur la balise #FICHIER à toutes les boucles (au risque de péter les champs FICHIER sur d'autres tables).
Owner

Autrement dit:


   [(#FICHIER|image_reduire{200})]


retourne ce qu'on attend. En fait IMG est défini par ailleurs et rajouté sur le path de #FICHIER dans la boucle DOCUMENTS, si j'ai bien compris, mais pas sur les autres boucles.

Pour moi c'est pas un bug, mais un effet de la jointure. Faut "jointoyer" autrement... Et documenter probablement.

Autrement dit: <pre> <BOUCLE_exemple(DOCUMENTS articles){documents.extension IN jpg,gif,png}{0,1}> [(#FICHIER|image_reduire{200})] </BOUCLE_exemple> </pre> retourne ce qu'on attend. En fait IMG est défini par ailleurs et rajouté sur le path de #FICHIER dans la boucle DOCUMENTS, si j'ai bien compris, mais pas sur les autres boucles. Pour moi c'est pas un bug, mais un effet de la jointure. Faut "jointoyer" autrement... Et documenter probablement.
b_b commented 9 years ago
Owner

Petite mise à jour, je pense qu'il faut opter pour la première solution que je proposais (la deuxième solution pourraient générer des effets de bord non souhaités).

Il faut donc préciser dans la doc que la balise #FICHIER utilisable uniquement dans une boucle DOCUMENTS, et qu'il faut passer par #LOGO_DOCUMENT** dans les autres boucles.

Petite mise à jour, je pense qu'il faut opter pour la première solution que je proposais (la deuxième solution pourraient générer des effets de bord non souhaités). Il faut donc préciser dans la doc que la balise #FICHIER utilisable uniquement dans une boucle DOCUMENTS, et qu'il faut passer par #LOGO_DOCUMENT** dans les autres boucles.
Owner
There is no content yet.
Owner

Résolu par http://zone.spip.org/trac/spip-zone/changeset/85444
Version cible mise à 3.1
Statut changé à Fermé

Résolu par http://zone.spip.org/trac/spip-zone/changeset/85444 **Version cible mise à 3.1** **Statut changé à Fermé**
Sign in to join this conversation.
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.