[spip-dev] Les types de documents

Hello

Actuellement, on a 4 modes de documents dans spip_documents :
-* les images;
-* les documents;
-* les vignettes;
-* les distants;

Lorsque l'on ajoute des documents par les fonctions de SPIP et que
l'on souhaite avoir un mode différent, SPIP force soit image ou
document en fonction du type de fichier.

Je suis en train de refaire le plugin doc2img
(http://www.spip-contrib.net/doc2img) afin qu'il mette ses conversions
de PDF ou autres documents dans la table spip_documents plutôt que
dans une table dédiée pour bénéficier de la gestion basique des
documents (informations sur les pages converties) ou moins
(modification des ces pages converties via un autre plugin comme
photospip par exemple).

Or on ne peut pas donner un type du genre "doc2img" ou "conversion" par exemple.

Serait il imaginable d'avoir cette possibilité assez facilement? qu'en
pensez vous?

Hello,

Peut être est ce dû au fait que je suis en 2.1 encore...

Je vais refaire des tests demain... mais il me semble bien qu'il y ait
un truc genre if (in_array($mode , array('image','document'))

Je check demain et reviens avec excuses si c'est de ma faute :wink:

sans la mediatheque, c'est bien possible que ça coince.
Avec la mediatheque pas de problème y compris en 2.1 (le plugin video accessible fonctionne aussi en 2.1 avec mediatheque)

Cédric

Bon le problème (sans médiathèque en tout cas) viens de là :

http://core.spip.org/projects/spip/repository/entry/branches/spip-2.1/ecrire/inc/ajouter_documents.php#L245

On force bien le mode de document à un des 4 acceptés par SPIP

Du coup sur ton plugin videos accessibles (qui "utilise" seulement
mediathèque, j'ai bien du mal à comprendre comment cela peut
fonctionner sans en 2.1 au moins cf :
https://github.com/Cerdic/video_accessible/blob/master/plugin.xml)

Je vais tester avec mediathèque

Ah oui en fait la subtilité c'est que si tu as pas mediatheque, tu as pas toute la partie upload soustitre/transcript/audiodesc, mais uniquement la partie player.
Donc oui, cette partie là ne fonctionne qu'avec mediatheque, au temps pour moi de ne pas l'avoir précisé

Cédric

Ok donc cela nécessite réellement la mediathèque...

J'ai mis un peu de doc là
http://zone.spip.org/trac/spip-zone/changeset/62016 car le format
n'est pas le même que dans SPIP

Donc ton plugin video accessible nécessite bien la mediathèque...

Merci

kent1

Ok...

Donc en gros avec mediathèque ou SPIP 3.0 on peut ajouter des modes de
documents différents, c'est cool...

Reste un truc que je ne comprends pas...

On offre la possibilité d'ajouter des modes de documents mais on
empêche leur affichage par défaut ici :
-* pour SPIP 3.0 :
http://zone.spip.org/trac/spip-zone/browser/core/plugins/medias/medias_fonctions.php#L62;
-* pour SPIP 2.x + médiathèque :
http://zone.spip.org/trac/spip-zone/browser/plugins/mediatheque/medias_fonctions.php#L53

Alors que dans SPIP 2.1 de base on n'empèche l'affichage uniquement
des vignettes, ce qui est normal car ce sont des types de documents
qui on un usage ultra spécifique ici :
-* http://core.spip.org/projects/spip/repository/entry/branches/spip-2.1/ecrire/public/boucles.php#L174

Ne peut on pas remettre par défaut le fait que l'on n'affiche pas les
vignettes et c'est au plugin ajoutant des modes de documents de
définir via le pipeline pre_boucle s'il affiche ou pas ses nouveaux
modes?

Ce serait plus "logique" et permettrait d'avoir les documents de ces
nouveaux modes dans la galerie de la médiathèque et de pouvoir
travailler dessus...

Mes 2 voir 3 sous

Je relace ce dernier mail...

En général chez SPIP on dit gogogo et on s'enguelera après...

Donc je laisse un court temps de réflexion et si aucun avis contraire,
je supprimerais la restriction d'affichage des documents non typés
"document" ou "image", chaque plugin utilisant des modes différents
souhaitant éviter de les afficher devra le stipuler en utiliser un
pipeline pre_boucle par exemple...

Je relace ce dernier mail...

En général chez SPIP on dit gogogo et on s'enguelera après...

Donc je laisse un court temps de réflexion et si aucun avis contraire,
je supprimerais la restriction d'affichage des documents non typés
"document" ou "image", chaque plugin utilisant des modes différents
souhaitant éviter de les afficher devra le stipuler en utiliser un
pipeline pre_boucle par exemple...

Ah pardon, j'ai pas répondu plus tôt.
En fait ça touche la gestion des mode de document de façon assez profonde.

C'est vrai que j'avais inversé la logique car introduit des modes de documents par le plugin Video accessible qui s'apparentent à des vignettes : ce sont des documents complémentaires à un document, et ils n'ont pas vocation à être listé dans les boucles documents, comme les vignettes.
On va avoir la même chose en passant les logo en document en mode logo.

Cela dit si tu as maintenant des modes supplémentaires qui eux nécessitent d'être affiché, cela vaut le coup de revoir cela.

Je ne sais pas ce qui est le mieux :
- un pipeline pour déclarer les modes visibles
- un pipeline pour déclarer les modes cachés
- ou la déclaration de statut dans l'api declarer_table_objet_sql
      array(
        'champ' => 'mode',
        'publie' => 'image,document',
        'exception' => array('mode')
      )
(pas testé, mais du coup permettrait d'étendre les modes publiés)

Il faut avoir en plus en tête le fait qu'à moyen terme on va passer le mode sur les liens et non plus sur les documents.
Du coup je ne sais pas si il ne faudrait pas un flag "visible" en base qui servirait à ce filtrage.

Ce serait donc bien d'éviter de devoir triturer la boucle document, car c'est du code qui cassera à un moment ou à un autre.

Peut-être qu'un pipeline "medias_lister_modes_visibles" (ou le contraire?) serait le mieux alors, car il permettra de modifier dans medias l'endroit où l'on prend ces modes en compte sans casser les plugins.

Reste à définir si il vaut mieux qu'un document avec un mode inconnu soit affiché par défaut ou masqué par défaut. J'aurais tendance à dire masqué par défaut, car si on vient à désactiver le plugin qui a ajouté ces modes cela évitera de se retrouver avec plein de documents qui apparaissent.

Donc je concluerai bien sur le pipeline "medias_lister_modes_visibles"

Cédric

Je relace ce dernier mail...

En général chez SPIP on dit gogogo et on s'enguelera après...

Donc je laisse un court temps de réflexion et si aucun avis contraire,
je supprimerais la restriction d'affichage des documents non typés
"document" ou "image", chaque plugin utilisant des modes différents
souhaitant éviter de les afficher devra le stipuler en utiliser un
pipeline pre_boucle par exemple...

Ah pardon, j'ai pas répondu plus tôt.
En fait ça touche la gestion des mode de document de façon assez profonde.

C'est vrai que j'avais inversé la logique car introduit des modes de documents par le plugin Video accessible qui s'apparentent à des vignettes : ce sont des documents complémentaires à un document, et ils n'ont pas vocation à être listé dans les boucles documents, comme les vignettes.
On va avoir la même chose en passant les logo en document en mode logo.

Cela dit si tu as maintenant des modes supplémentaires qui eux nécessitent d'être affiché, cela vaut le coup de revoir cela.

Je ne sais pas ce qui est le mieux :
- un pipeline pour déclarer les modes visibles
- un pipeline pour déclarer les modes cachés
- ou la déclaration de statut dans l'api declarer_table_objet_sql
array(
'champ' => 'mode',
'publie' => 'image,document',
'exception' => array('mode')
)
(pas testé, mais du coup permettrait d'étendre les modes publiés)

Il faut avoir en plus en tête le fait qu'à moyen terme on va passer le mode sur les liens et non plus sur les documents.
Du coup je ne sais pas si il ne faudrait pas un flag "visible" en base qui servirait à ce filtrage.

Ce serait donc bien d'éviter de devoir triturer la boucle document, car c'est du code qui cassera à un moment ou à un autre.

Peut-être qu'un pipeline "medias_lister_modes_visibles" (ou le contraire?) serait le mieux alors, car il permettra de modifier dans medias l'endroit où l'on prend ces modes en compte sans casser les plugins.

Reste à définir si il vaut mieux qu'un document avec un mode inconnu soit affiché par défaut ou masqué par défaut. J'aurais tendance à dire masqué par défaut, car si on vient à désactiver le plugin qui a ajouté ces modes cela évitera de se retrouver avec plein de documents qui apparaissent.

Donc je concluerai bien sur le pipeline "medias_lister_modes_visibles"

En gros je pensais ajouter effectivement un pipeline qui remplacerait
la sélection manuelle faite des types affichés...

qu'il faudra déplacer du coup le jour ou on passe le mode dans
spip_documents_liens (ce qui me semble une très bonne chose) dans la
jointure adéquate...

Je vais faire un premier jet demain...