Dans l'admin, toujours lier explicitement le fichier et non pas #URL_DOCUMENT #4645

Open
opened 2 years ago by rastapopoulos · 6 comments
Owner

Dans tous les squelettes d'admin de Médias (la médiathèque complète et dans les objets), chaque vignette de document (icône ou miniature) a un lien vers #URL_DOCUMENT.

Or comme pour tous les objets SPIP, les webmestres peuvent choisir, il y a un par défaut, mais c'est fait pour être personnalisable. Pour les documents, par défaut ils n'ont pas de page publique et la balise #URL pointe vers le fichier MAIS on peut parfaitement décider d'avoir des vraies pages côté publique pour les documents (par exemple pour faire le site d'un photographe, ou genre Flickr, etc : chaque document a bien sa page dédié).

Or bis, dans l'admin, ce sont des liens de visionnage dans une box quand ce sont des images, et sinon vers le fichier PDF ou autre. Les squelettes et l'interface sont prévus pour ça, pas autre chose. Donc ça ne doit jamais pointer vers une page web ! Et on doit être sûr et certain de ça.

Tous les squelettes d'admin devraient être corrigés pour toujours pointer explicitement vers le fichier source, avec #FICHIER, et non pas avec une balise #URL qui est conçue pour être personnalisable donc sans permanence de ce qu'on va trouver derrière.

Dans tous les squelettes d'admin de Médias (la médiathèque complète et dans les objets), chaque vignette de document (icône ou miniature) a un lien vers #URL_DOCUMENT. Or comme pour tous les objets SPIP, les webmestres peuvent choisir, il y a un par défaut, mais c'est fait pour être personnalisable. Pour les documents, par défaut ils n'ont pas de page publique et la balise #URL pointe vers le fichier MAIS on peut parfaitement décider d'avoir des vraies pages côté publique pour les documents (par exemple pour faire le site d'un photographe, ou genre Flickr, etc : chaque document a bien sa page dédié). Or bis, dans l'admin, ce sont des liens *de visionnage dans une box* quand ce sont des images, et sinon vers le fichier PDF ou autre. Les squelettes et l'interface sont prévus pour ça, pas autre chose. Donc ça ne doit *jamais* pointer vers une page web ! Et on doit être sûr et certain de ça. Tous les squelettes d'admin devraient être corrigés pour toujours pointer explicitement vers le fichier source, avec #FICHIER, et non pas avec une balise #URL qui est conçue pour être personnalisable donc sans permanence de ce qu'on va trouver derrière.
Poster
Owner
There is no content yet.
Poster
Owner

Et d'ailleurs à cause de ça, ça casse complètement le plugin Centre Image, car il est basé sur le "href" des liens, et utilise l'image que ça pointe. Sauf que comme expliqué #URL_DOCUMENT peut pointer sur une vraie page web HTML si on veut, et donc le plugin ne fait plus rien.

Donc ça casse la vue en box + ça casse au moins un plugin.

Et d'ailleurs à cause de ça, ça casse complètement le plugin Centre Image, car il est basé sur le "href" des liens, et utilise l'image que ça pointe. Sauf que comme expliqué #URL_DOCUMENT peut pointer sur une vraie page web HTML si on veut, et donc le plugin ne fait plus rien. Donc ça casse la vue en box + ça casse au moins un plugin.
Poster
Owner

Exemple j'ai fait cette correction dans le plugin Rôles de documents qui pour l'instant surcharge un morceau de Médias, et paf tout remarche :
ab9b530be1

Il faudrait donc à priori faire la même chose dans l'originel (et pas que ce squelette, ya d'autres inclure, comme la médiathèque complète, etc).

Exemple j'ai fait cette correction dans le plugin Rôles de documents qui pour l'instant surcharge un morceau de Médias, et paf tout remarche : https://git.spip.net/spip-contrib-extensions/roles_documents/commit/ab9b530be1f78168f14432020b624e41e79f2bd7 Il faudrait donc à priori faire la même chose dans l'originel (et pas que ce squelette, ya d'autres inclure, comme la médiathèque complète, etc).
b_b commented 2 years ago
Owner

Un peu HS, mais est-ce que tu ne pourrais simplement faire que ta fonction perso d'url de document pointe vers le fichier dans l'espace privé et vers ta page publique dans l'espace public ?

Un peu HS, mais est-ce que tu ne pourrais simplement faire que ta fonction perso d'url de document pointe vers le fichier dans l'espace privé et vers ta page publique dans l'espace public ?
Poster
Owner

Alors quand on surcharge encore plus oui effectivement on peut. Mais cela dit le comportement connu c'est que les balises d'#URL_TRUC, dans les cas où ya de l'éditorial, quand on est dans le privé, ça amène vers l'édition de contenu de cet objet…

Quoiqu'il en soit, ces fonctions sont prévues pour être surchargeables et que les gens les personnalisent suivant leur site, tandis que là pour les vignettes, on attend explicitement une URL de "fichier sur le disque" afin d'ouvrir une box quand ce sont des images, et donc le code de chaque endroit où ya une vignette de ce genre devrait s'assurer que c'est bien ça qui sort, ce qui est le but de la balise #FICHIER.

Alors quand on surcharge encore plus oui effectivement on peut. Mais cela dit le comportement connu c'est que les balises d'#URL_TRUC, dans les cas où ya de l'éditorial, quand on est dans le privé, ça amène vers l'édition de contenu de cet objet… Quoiqu'il en soit, ces fonctions sont prévues pour être surchargeables et que les gens les personnalisent suivant leur site, tandis que là pour les vignettes, on attend explicitement une URL de "fichier sur le disque" afin d'ouvrir une box quand ce sont des images, et donc le code de chaque endroit où ya une vignette de ce genre devrait s'assurer que c'est bien ça qui sort, ce qui est le but de la balise #FICHIER.
Poster
Owner

J'ai fait une branche pour ça, qui est très simple :
https://git.spip.net/spip/medias/commit/f8ce6360

Cependant, comme dit dans le commit, en lisant le code en fait à priori ça devrait être aussi pour TOUS les modèles, qui valent partout, non ? Ce n'est pas du tout une histoire d'admin vs public.

Car dès lors qu'on a des vraies pages HTML pour les documents (et le plugin prévoit lui-même le cas, en fournissant un exemple dans squelettes/ à la racine !) et bien toutes les insertions seront pétées puisque scr=#URL_DOCUMENT ou data=#URL_DOCUMENT ne voudront plus RIEN dire.

Ce sont seulement les liens, les href, qui doivent contenir #URL_DOCUMENT, et dans ce cas soit ça pointera sur le document lui-même (cas par défaut), soit une page de présentation du document (cas déclarable facilement), en testant l'autorisation si accès restreint etc. Mais en revanche, les insertions directes, là ça devrait toujours utiliser #FICHIER puisque c'est ce qu'on attend explicitement à ces endroits : être certain d'avoir le chemin du fichier physique.

Du coup je fais un deuxième commits pour tous les modèles ?
Statut changé à En cours

J'ai fait une branche pour ça, qui est très simple : https://git.spip.net/spip/medias/commit/f8ce6360 Cependant, comme dit dans le commit, en lisant le code en fait à priori ça devrait être aussi pour TOUS les modèles, qui valent partout, non ? Ce n'est pas du tout une histoire d'admin vs public. Car dès lors qu'on a des vraies pages HTML pour les documents (et le plugin prévoit *lui-même* le cas, en fournissant un exemple dans squelettes/ à la racine !) et bien toutes les insertions seront pétées puisque scr=#URL_DOCUMENT ou data=#URL_DOCUMENT ne voudront plus RIEN dire. Ce sont seulement les *liens*, les href, qui doivent contenir #URL_DOCUMENT, et dans ce cas soit ça pointera sur le document lui-même (cas par défaut), soit une page de présentation du document (cas déclarable facilement), en testant l'autorisation si accès restreint etc. Mais en revanche, les insertions directes, là ça devrait *toujours* utiliser #FICHIER puisque c'est ce qu'on attend explicitement à ces endroits : être certain d'avoir le chemin du fichier physique. Du coup je fais un deuxième commits pour tous les modèles ? **Statut changé à En cours**
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.