Carnet Wiki

Nouvel article N° 4856

Version 6 — Décembre 2019 — Nicolas Hoizey

Où je raconte ma vie et partage aussi un peu de lumière.

Hello
comme vous peut être, j’ai regardé la démo du travail de marcimat
> http://medias.spip.net/medias/demonstrations/article/presentation-de-minidoc

Dans cette vidéo, j’intuitais que l’image exemple téléversée
irait rejoindre le groupe « Portfolio »
puisqu’elle n’est pas inclue en tant qu’illustration dans le texte
et qu’elle ne sera affichée, a priori, que via le « portfolio »
qui existe par exemple dans les squelettes-dist en dessous du texte.

Ça aurait été d’une certaine logique, non ?
Ben non, elle va dans les « Illustrations »
et elle n’est affichée nulle part dans la page publique.

J’imaginais alors plusieurs hypothèses et voulais les tester...

En essayant sur demo.spip.net, toutes mes images ont été dans Illustrations,
qu’elles soient téléversées via la page de visu (où on « Ajoute un document »)
ou d’édit (où on « Ajoute une Image ou un document »)
et qu’elles soient inclues ou non dans le corps du texte avec <img...><doc...><emb...>
(ça aurait pu être en rapport avec le champ « vu »).

Finalement, je n’arrivais plus à imaginer ce que peut être ce « Portfolio »,
et la doc sur spip.net ne m’a jamais éclairé à ce sujet.
C’est finalement le bouton « déposer dans le Portfolio » qui m’a fait comprendre :
effectivement, dans le privé il fait apparaître l’image dans la liste « Portfolio »,
et dans le public l’image apparaît dans le diaporama en dessous de l’article.

Donc le portfolio, c’est un sous ensemble des documents associés à un objet éditorial,
défini par le choix de l’utilisateur au moyen des boutons « déposer dans le Portfolio »,
et cette sélection permet dans spip-dist de faire un diaporama en dessous de l’article.

En fait, il y a plusieurs plugins dans SPIP pour faire des sélections éditoriales,
des grappes ou des listes.
Le portfolio est donc une manière standard dans SPIP de faire ça,
uniquement pour les documents.

Ayant compris cela je comprend mieux (l’intérêt) d’autres parties de la doc.
Par exemple la doc précise que l’interface d’insertion des documents
est différente pour les documents du portfolio :

<blockquote class="spip">

Lorsque vous éditez votre article, l’ensemble des médias est listé sur le côté.
Les icônes permettent de distinguer les médias :

icône type d’image code d’insertion proposé
Carte postale Illustration <img>
Pièce jointe Portfolio <doc>,<emb>
</blockquote>

Ah.
Cette seconde fonctionnalité me semble n’avoir aucun rapport avec la première
et je me demande un peu pourquoi elles sont combinées.
Une justification fournie par la doc est que le porfolio contient des documents plus gros, qui nécessiteraient un diaporama.
Un peu comme une distinction entre image css de déco et image porteuse de sens ?
Hmm.
« Gros » / « Pas gros », ça ne me parle pas vraiment vu que les squelettes réduisent automatiquement à la taille désirée, que ce soit dans un diaporama a part ou dans le corps du texte.
Et d’ailleurs, même si l’interface ne le propose pas,
les raccourcis <emb> et <doc> fonctionnent toujours,
même pour des documents qui ne sont pas dans le portfolio.
Comme si cette distinction était assez floue.

Par ailleurs, continuant à explorer j’ai découvert qu’un document présent dans le portfolio
n’apparaissait PAS dans le diaporama en bas de l’article s’il était inclu
dans le corps de l’article.
Ça se compliquait mais en allant voire squelette-dist/inclure/documents.html
j’ai vu que l’affichage public dans le portfolio résultait de la combinaison
de 2 critères : {mode=document} et {vu=non}
J’en ai déduit que
-  les documents du portfolio apparaissent grâce à {mode=document},
qu’ils soient insérés ou non dans le corps du texte
-  on exclu ceux qui sont dans le texte avec {vu=non}
Ouf, c’est plus simple comme ça.

Puis j’ai cherché à savoir comment ça se passait lorsqu’un document
est associé à plusieurs articles
et j’ai trouvé que si un document est mis dans le portfolio pour un article,
il est dans le portfolio « partout ».
Le portfolio n’est donc pas une sélection relative à un article,
car c’est un objet global à tout le site.
OK.

Alors peut être y aurait il moyen d’indiquer, dans ces bandeaux qu’on voit sur la vidéo,
ce que signifient « Illustration » et « Portfolio » par un title malin sur le titre
voire par un lien « i » vers une aide plus conséquente ?

Mais je me suis dit que la priorité était de partager mes trouvailles.
Voilà.

Je crois aussi que la doc sur cette notion de « portfolio » est éclatée
entre doc sur l’interface privée et doc sur les boucles DOCUMENT
mais si cette notion est vouée à perdurer (mais il y aurait une refonte en vue ?)
ce serait bien de rassembler comme ici dans un même article
ou d’ajouter des liens des uns vers les autres

SPIP c’est fouuuuu !

====
====

La notion de Portfolio, ça part d’une bonne intention (calquer l’UI sur une notion de la vie courante),
mais l’implémentation et la documentation sont trompeuses.
Pour mettre à plat le truc, voici des explications qui semblent complètes
et plus clairement structurées :

====
Le portfolio c’est 2 trucs différents qu’il ne faut pas confondre :

## 1) « Être dans le portfolio » c’est une propriété booléenne des documents.
Au lieu de cocher une checkbox comme on fait normalement pour un champ booléen,
l’interface propose de « Déposer dans le portfolio » ou de les en « Retirer »

Dans l’absolu du code SPIP hors squelettes-dist, « Etre dans le portfolio » a 3 conséquences :

-  Dans une boucle d’un squelette, on peut sélectionner ces documents avec le critère {mode=document}
et on peut sélectionner ceux qui ne sont pas dans le portfolio avec {mode=image}

-  Dans la page d’édition d’un objet éditorial, ces document apparaissent dans une liste séparée,
les documents « pas dans le portfolio » apparaissant, eux, dans une liste titrée « Illustration »

-  Lors de l’édition d’un article ou d’un objet éditorial, seuls certains raccourcis sont proposés
dans la colonne de gauche de la page d’édition, selon que le document soit ou non dans le portfolio.
* Dans le portfolio -> emb, doc (et img ?)
* Pas dans le portfolio -> img
Cependant, même si pas proposés, tous ces raccourcis sont toujours utilisables.

## 2) « Le Portfolio », c’est aussi un diaporama présenté, sur les pages publiques d’un objet éditorial,
sous le contenu principal de cet objet, par l’inclusion « documents » de squelettes-dist
C’est donc relatif uniquement à squelettes-dist et aux squelettes qui reproduisent ce comportement

Les documents présentés dans ce diaporama sont ceux qui vérifient
{mode=document} ET {vu=non}
Là où c’est trompeur, c’est que ce ne sont donc que certains documents du portfolio au sens 1)
qui apparaissent : ceux qui ne sont pas déjà insérés dans l’objet éditorial.

====

Suivent quelques réflexion sur des améliorations possibles :

-  Doc :

Si la notion de portfolio perdure, rassembler dans un même doc
et expliciter cette notion de portfolio (au moins comme ci dessus)
Surtout : arrêter de confondre l’absolu de spip et le relatif de squelettes-dist
(bien le préciser quand on parle du portfolio de squelettes-dist)
Ne pas trop faire de supposition sur les cas d’usages et ce que les gens veulent faire
ou en tout cas ne pas se reposer là dessus dans la doc pour exposer un concept
(mais seulement en exemple)

-  Nomenklatura :

Pour la cohérence entre code squelette et interface, et facilité de documenter,
il serait préférable que les critères soient mode=portfolio et mode=illustration
au lieu de {mode=document} et {mode=image}

Ou bien abandonner dans l’interface privée ces termes ambigus de « portfolio » et « illustration »
et avoir des titres simplement « mode : document » et « mode : image »

-  Inclusion dans le portfolio (UI) :

Si le portfolio c’est une propriété booléenne, peut être une checkbox serait plus claire ?

Ou si au contraire c’est une sélection éditoriale comme l’interface actuelle le laisse penser,
alors une évolution serait de permettre à l’utilisateur d’en définir d’autres :
« Schémas » et « Photos » par exemple, dont les documents seraient sélectionnables par
{mode=schémas} ou {mode=photos}

-  Insertion dans un contenu

Je me demande s’il est utile de distinguer les modèles proposés,
alors qu’ils sont tous utilisables (selon l’extension tout de même).
Dans la mesure où c’est l’utilisateur qui définit si un document est « document » ou non,
il peut aussi bien définir s’il utilise « emb » ou « doc » ou « img ».

======
======
Cédric écrit ensuite :

Pour complèter la discussion en essayant de pas la noyer :

-  le portfolio a un défaut technique historique, il porte sur le document et pas sur le lien — c’est du à l’époque où on ne pouvait pas associer un même document à plusieurs articles.
Du coup si on passe un document en portfolio sur un article, il y est aussi pour tous les autres articles auxquels il est attaché. C’est un bug historique à corriger

-  le « portfolio » n’est ambigu que pour les images : tous les documents non visuels sont de facto dans le portfolio. Ce sont les documents joints à l’article.

-  le portfolio actuel du core, dans son usage tant que dans son esprit s’apparente à un album de documents du plugin albums

Pour le futur :

A ce titre je pense que ça devrait disparaitre du core et que cette fonctionnalité devrait être émulée/proposée par le plugin albums pour les afficionados de cette feature
« Déposer dans le portfolio » créerait automatiquement un album « Portfolio » associé à l’article
De même l’association d’un pdf a un article créerait automatiquement un album portfolio

-  le champ ’mode’ serait supprimé de la table des documents

-  le compilateur introduirait une compilation dérogatoire pour traduire ’mode=document’ en ’document qui est dans un album de type portfolio’
(ou alors on déplace le champ mode sur la table spip_documents_liens, et on laisse le plugin album gérer ce champ de façon à ce qu’on retrouve nos petits dans les boucles)