LOGO ou VIGNETTE du fichier d'un formulaire Formidable

me revoilà … dur,dur l’apprentissage

dans un formulaire réponse avec FORMIDABLE, je récupère des valeurs pour afficher une réponse

[(#VOIR_REPONSE{#NOM,label}|formidable_nettoyer_saisie_vue)] => <a href="[(#VAL{#ID_FORMULAIRE}|formidable_generer_url_action_recuperer_fichier{#ID_FORMULAIRES_REPONSE,#NOM,[(#VALEUR|table_valeur{0/nom})]})]">[(#VOIR_REPONSE{#NOM,valeur_uniquement}|formidable_nettoyer_saisie_vue)</a>]

Je souhaiterais afficher une vignette ou logo à la place du nom du fichier qui a été téléchargé lors de la saisie du formulaire

#VOIR_REPONSE{#NOM,valeur_uniquement}|formidable_nettoyer_saisie_vue

le lien vers le fichier est correct

et là encore je sèche …

là tu te heurte à une sécurité de base de formidable : les documents envoyé par le formulaire ne sont pas accessible depuis l’exterieur (car potentiellement confidentielle).

oui, mais c’est pour un admin restreint …

certes, mais cela n’empeche. Ce n’est d’ailleur pas pour rien qu’on passe par une « action » pour recuperer le fichier : il ne faut pas qu’une personne ayant le nom du chemin du fichier puisse y accéder directement. Tu remarquera d’ailleurs que formidable n’affiche jamais directement le fichier lui-même, mais toujours une vignette.

Donc je ne pourrais pas Autoriser un admin restreint à accéder aux fichiers ?
bon…
par contre pour le webmestre je voudrais quand meme avoir la vignette plutot que le nom du fichier ,
si j’utilise #VOIR_REPONSE{#NOM} s’affiche bien la Vignette et le nom du fichier mais avec le formalisme HTML (la vignette, le nom en dessous , div and co) ce qui m’ennuie encore dans mon tableau …

A propos de la boucle BOUCLE_champs (FORMULAIRES_REPONSES_CHAMPS) qu’existe-t-il comme critères ?
notamment pour le parcours des NOM de champ, peut-on déterminer un ordre particulier ?

Il faudrait utiliser le filtre

formidable_generer_url_action_recuperer_fichier qui

  • s’applique sur l’id du formulaire
  • recoit ensuite dans l’ordre les arguments suivants : id de la réponse, nom de la saisie, nom du fichier

ca va te generer une url d’action qui permet de récuperer le fichier en s’assurant que la personne a le droit (je ne sais plus quels droits ont a mis par défaut, il me semble que rédacteur suffit).

Il se peut que ce filtre ne soit pas disponibles par défaut, il faudrait mettre dans ton fichier mes_fonctions.php la ligne suivant

include_spip('inc/formidable_fichiers');

Et pour ton histoire de vignette : a priori si tu a le chemin du fichier, un |image_reduire dessus devrait suffire.

Mais encore une fois si ton but c’est de proposer un tableau de reponse aux gens, bah tu peux utiliser formidable tablesorter, qui fournit un tableau tout bien, filtrable etc…

1 « J'aime »

pour ce qui est du tableau,
Ce tableau n’est pas à destination de visiteurs, mais d’un administrateur(restreint)

je devrais l’inclure dans un squelette et non pas un article (mais à propos pourquoi pas… je vais essayé…),
donc si je continue avec mon squelette (formulaires_reponse.html) <formidable_ts|id_formulaire=xxx> ne fait pas l’affaire …
y aurait-il un modele #FORMIDABLE_TS ? ce n’est pas très clair pour moi , désolé

pour ce qui est de la vignette
voilà le lien que je génère

[(#VOIR_REPONSE{#NOM,label}|formidable_nettoyer_saisie_vue)] => 
<a href="[(#VAL{#ID_FORMULAIRE}|formidable_generer_url_action_recuperer_fichier{#ID_FORMULAIRES_REPONSE,#NOM,[(#VALEUR|table_valeur{0/nom})]})]">[(#VOIR_REPONSE{#NOM,valeur_uniquement}|image_reduire)]</a>]
]

le probleme est que je me retrouve avec la vignette et le nom du fichier, nom_du_fichier que je ne souhaite pas

le code html généré

<p class="afficher afficher_fichiers_1 saisie_fichiers"><a href="https://3w.plandecuques.fr/spip.php?action=formidable_recuperer_fichier&amp;arg=a%3A4%3A%7Bs%3A10%3A%22formulaire%22%3Bs%3A1%3A%226%22%3Bs%3A7%3A%22reponse%22%3Bs%3A3%3A%22229%22%3Bs%3A6%3A%22saisie%22%3Bs%3A10%3A%22fichiers_1%22%3Bs%3A7%3A%22fichier%22%3Bs%3A38%3A%22menu_cantine_scolaire_janvier_2022.pdf%22%3B%7D&amp;hash=7bde9910813e0218a383c197931ce6aaf722943c">

		<img src="local/cache-vignettes/L48xH48/pdf-88056pngf765-188be.png?1651840752" width="48" height="48">
		
		<br class="spip">
		</a><a href="https://3w.plandecuques.fr/spip.php?action=formidable_recuperer_fichier&amp;arg=a%3A4%3A%7Bs%3A10%3A%22formulaire%22%3Bs%3A1%3A%226%22%3Bs%3A7%3A%22reponse%22%3Bs%3A3%3A%22229%22%3Bs%3A6%3A%22saisie%22%3Bs%3A10%3A%22fichiers_1%22%3Bs%3A7%3A%22fichier%22%3Bs%3A38%3A%22menu_cantine_scolaire_janvier_2022.pdf%22%3B%7D&amp;hash=7bde9910813e0218a383c197931ce6aaf722943c" download="download">menu_cantine_scolaire_janvier_2022.pdf (PDF - 128.8&nbsp;ko) </a>
</p>

tous les essais en introduisant le filtre |formidable_nettoyer_saisie_vue fait disparaitre la vignette …

encore merci

bah oui tu peux pas mettre <modele> diretcement dans un squelette, il faut passer par #MODELE (je t’invite à relire la doc générale de SPIP sur les modeles)

Après vérification le tableau tablesorter, dans un article, fait presque l’affaire,
cependant j’ai le meme probleme avec les liens aux fichiers,

  • la colonne contient la vignette et nom du fichier avec leur lien, mais c’est beaucoup trop large,

il ne faudrait que la vignette pour le lien,
Le nom du fichier présente peu d’intèrêt pour le lecteur
y a-t-il un filtre particulier à ajouter ?? est-ce adaptable ??

tu peux toujours copier-coller cvt-upload/saisies-vue/fichiers.html dans squelettes/saisies-vue/fichiers.html et adapter pour rendre plus leger…

super merci ça gaze :slight_smile:

c’est du cours particulier …

hi, durdur …
voilà dans mon formulaires_reponse.html je récupère la vignette du fichier avec
[(#VOIR_REPONSE{#NOM,valeur_uniquement}|image_reduire)]

ensuite dans mon squelette/saisies-vues/fichiers.html

<B_resultats>
-----
	[<pre>(#ENV**|unserialize|print_r{1})</pre>]
-----<br/>
<BOUCLE_resultats(DATA){source tableau, #ENV{valeur}} {"<br class='spip' />"} {valeur!=''}>
		[(#ERREUR|?{
		<span class='erreur'><:cvtupload:erreur{erreur=#ERREUR}:></span>,
		[<a href='(#URL|attribut_html)' [ (#HTML5|oui)download="download"]>]		[(#EXTENSION|strtolower|in_array{#LISTE{jpg,png,gif}}|?{
			[(#VIGNETTE|balise_img|image_reduire{150}|liens_absolus)],
			[(#VIGNETTE|image_reduire{48}|liens_absolus)]
		})][(#URL|oui)</a>]

		})]
            <p>Chemin du fichier:
#EVAL{_DIR_FICHIERS_FORMIDABLE}formulaire_#ID_FORMULAIRE/reponse_#ID_FORMULAIRES_REPONSE/#NOM/[(#VALEUR|table_valeur{nom})]<br/>
            <a
href="[(#VAL{#ID_FORMULAIRE}|formidable_generer_url_action_recuperer_fichier{#ID_FORMULAIRES_REPONSE,#NOM,[(#VALEUR|table_valeur{nom})]})]">
               Lien du fichier</a></p>
</BOUCLE_resultats>
</B_resultats>

j’essaye d’utiliser le filtre formidable_generer_url_action_recuperer_fichier pour le lien mais je rencontre 2 problèmes sur lesquels je bute

  1. il me manque les variables #ID_FORMULAIRE et #ID_FORMULAIRES_REPONSE, je ne sais pas comment les transmettre depuis formulaires_reponse.html

  2. {#ID_FORMULAIRES_REPONSE,#NOM,[(#VALEUR|table_valeur{nom})]} decrit 2 fois le nom du fichier

Chemin du fichier: config/fichiers/formidable/formulaire_/reponse_/menu_cantine_scolaire_janvier_2022.pdf/menu_cantine_scolaire_janvier_2022.pdf

même en essayant de forcer #ID_FORMULAIRE et #ID_FORMULAIRES_REPONSE ça plante …

c’est complexe …
je poursuis cependant, mais ton conseil sera bienvenu

bah je comprend vraiment pas, je t’ai dit TEXTO ce qu’il fallait faire : copier la vue existante, et l’arranger à ta sauce. Elle recoit deja tout les paramètres, vu qu’elle est capable de generer la vignette et le lien. Il te suffit donc de supprimer le superflu, et c’est bon…

ok, mais à quel moment appliquer le filtre formidable_generer_url_action_recuperer_fichier ?

dans le href de fichiers.html ? sur la balise #URL

si tu regarde le code du fichier de base, tu vois qu’en fait l’url a deja été généré, elle est disponible via #URL.

Ok mais comme je ne peix télécharger le doc en tant qu’administrateur local, j’avais pensé qu’il manquait quelque part ce filtre
l’url que j’obtiens est du type
https://xxxxx/spip.php?action=formidable_recuperer_fichier&arg=a%3A4%3A%7Bs%3A10%3A%22formulaire%22%3Bs%3A1%3A%226%22%3Bs%3A7%3A%22reponse%22%3Bs%3A3%3A%22229%22%3Bs%3A6%3A%22saisie%22%3Bs%3A10%3A%22fichiers_1%22%3Bs%3A7%3A%22fichier%22%3Bs%3A38%3A%22menu_cantine_scolaire_janvier_2022.pdf%22%3B%7D&hash=d6a68ef8ca90edae6bff02f80f518cb21e02030b

le DEBUG_AUTORISER true, mais pas de trace de refus dans le log

si …
2022-05-08 14:15:26 2a01:e0a:5c0:5bc0:f2de:f1ff:fedc:a193 (pid 19601) :Pub:info: Rsp-emploi formidable_recuperer_fichier&nbsp;: Accès interdit /spip.php?action=formidable_recuperer_fichier&arg=a%3A4%3A%7Bs%3A10%3A%22formulaire%22%3Bs%3A1%3A%226%22%3Bs%3A7%3A%22reponse%22%3Bs%3A3%3A%22229%22%3Bs%3A6%3A%22saisie%22%3Bs%3A10%3A%22fichiers_1%22%3Bs%3A7%3A%22fichier%22%3Bs%3A38%3A%22menu_cantine_scolaire_janvier_2022.pdf%22%3B%7D&hash=d6a68ef8ca90edae6bff02f80f518cb21e02030b

bah je sais pas : est-ce que deja tu arrive à telecharger les fichiers sans avoir rien touché ???

oui en admin je télécharge bien le fichier

j’ai bien inclus dans mes_fonctions.php la ligne suivant include_spip('inc/formidable_fichiers');

attends, conecté en admin(restreint) je viens de voir que j’ai « accès interdit » dans l’interface privé au tableau des réponses du formulaire
" vous n’avez pas le droit d’accèder à la page formidable_ts"

cette conversation commence à n’avoir plus ni queue ni tete et devient insuivable.

Passe éventuellement sur irc pour faire un point, là je suis paumé, je comprend plus ce que tu fais et où tu coince…

Merci,
je termine cette conversation en meaculpa…
pour les questions de droits d’accès aux fichiers il FAUT penser à la configuration du plugins, c’est un point sur lequel je ne m’étais jamais penché et qui ne m’avait jamais posé de problème avec la conf par défaut et des formulaires classiques.
un grand merci aux apports enrichissants de maîeul :heartbeat: