[spip-dev] Fancybox pour une mise a jour de la mediabox ?

Hello,

je (re)découvre la fancybox qui dans sa v3 gère bien tous les types de contenu
https://fancyapps.com/fancybox/3/

Et je me disais que ce serait peut-être un bon plan de l’utiliser comme base dans le plugin mediabox de SPIP,
pour remplacer la colorbox qui n’est plus maintenue depuis plusieurs années https://github.com/jackmoore/colorbox et a encore des bugs sur les mobiles et petits écrans

Des avis, des retour d’expérience ?

Ha ouè, cool de redécouvrir cette box qui était bien choubidou. En plus, la v3 propose la fonction qui permet de zoomer à fond dans les images à la photoswipe, c'est top !

Et la licence semble ne pas poser de problème pour qu'on l'embarque dans SPIP, cf "fancybox is licensed under the GPLv3 license for all open source applications. ".

+1
Pas de retour d'expérience de mon côté, mais elle a l'air d'avoir tout ce qu'il faut pour remplacer colorbox, moderne, facile à utiliser et à personnaliser.

La phrase suivante sur la licence m'interroge quand même :
« A commercial license is required for all commercial applications (including sites, themes and apps you plan to sell). »

Spip lui même n'est pas commercial, mais si on développe et vend un site basé sur Spip et donc avec fancybox, est-ce qu'on rentre pas dans cette case ?

Hop,

Ok oui, ça semble logique.
Pareil, une confirmation de l'auteur oterait le doute.

Hello,

Placido avait continué le découpage de mediabox en api dans une V2 afin
d'y greffer facilement différente modalbox en plugin, tout en conservant le
markup d'origine (colorbox, featherlight)
Il vient de s'inscrire à spip-dev, je relance la discussion pour qu'il
puisse répondre rapidement.

J'ai planché il y a quelques temps sur la mise en place d'une mediabox
alternative, car je trouvais moi aussi la colorbox un peu trop "rigide"
sur mobile.

Du coup, je suis allé un peu plus loin dans la tentative de faire de
mediabox une API, sur laquelle on pourrait brancher indifferement
plusieurs libs.

Du coup on a un découpage comme ceci:
[core]
https://framagit.org/cantal-tech/cantal-tech-spip/mediabox

[colorbox]
https://framagit.org/cantal-tech/cantal-tech-spip/colorbox

[featherlight]
https://framagit.org/cantal-tech/cantal-tech-spip/featherlight

Les briques sont en place pour connecter d'autres lib, j'avais même fait
un test avec fancybox (pas publié cependant).

Ç'est fonctionnel en partie privé et publique, et même en prod sur
quelques sites, mais reste quelques soucis ;

A) la méthode de déploiement est un peu alambiquée, car il faut
surcharger un plugin-dist, et, sur ce point, SVP est un peu retord. De
plus, dans la gestion de dépendances actuelle, on ne peut pas spécifier
que mediabox a besoin d'AU MOINS UNE lib tierce pour fonctionner (mais
c'est un problème propre à mediabox).

B) Quelques problèmes d'appels à colorbox en dur dans le core
(https://core.spip.net/issues/4183), ou code js/CSS trop spécifiques sur
d'autres plugins (inserer_modeles de mémoire).

C) L'organisation du formulaire de configuration de la modale box ; les
sous-plugins peuvent y insèrer leur propres préférences, (ex: une
couleur de fond et une opacité pour featherlight) ; Faut-il garder une
seule configuration générale, ou bien cloisonner chaque configuration
par en fonction de la lib choisie ?)

Avec le recul, assurer un comportement consistant avec plusieurs libs,
pour l'ensemble de l'eco-système de plugins SPIP me parait illusoir.

Mais adopter un nouvelle lib par défaut, j'acquièce.
Fancybox est vraiment jolie, quoique un peu gloutone ; et l'ambiguité
sur la licence associée m'avait finalement reporté sur featherlight.

Merci Placido,

je vais regarder en détail, car c’était vraiment l’esprit du plugin mediabox d’avoir une surcouche api pour permettre de changer de box dans le futur sans casser tous les plugins et squelettes.

Je pense qu’il faut sans doute faire quelque chose d’intermédiaire :
- avoir le plugin mediabox dans le core avec une api claire, comme tu as fait
- mais qu’il intègre par défaut une box dans un sous dossier ; du coup peut-être pas fancybox en effet, le choix d’une box très light pour le core est peut-être pas idiot
- et qu’on puisse choisir ensuite une autre box facilement en activant un plugin qui necessitera mediabox et viendra prendre la place de la box par defaut

Mais on peut sans doute faire quelques choix de simplification :
- Je pense pas qu’il faille trop compliquer en essayant d’avoir plusieurs boxs qui s'activent d’un coup. Amha il faut que le mecanisme permette d’activer une box ou une autre, mais une seule sera dispo à la fois, et donc configurable etc
- sur la possibilité d’avoir des js et css dynamiques en squelette, je suis un peu réservé, j’aime vraiment pas trop ça et en terme de perf c’est vraiment pas génial

Et les plugins qui ont utilisé directement l’api colorbox au lieu de mediabox devront de débrouiller pour s’adapter, c’est une erreur de leur part :slight_smile:
(y compris SVP !)

(peut-être que pour éviter trop de casse on ajoutera quelques classes historiques issues de colorbox ?)

En tout cas la version 3.3 de SPIP parait le bon moment pour changer : il faut faire ça sur une montée de version car il y aura un peu de casse quand même, et je pense pas qu’il soit une bonne idée d’embarquer colorbox quelques années de plus

Non, je pense que la mention en question est pour éviter à l'auteur de voir des chacals empaqueter la lib dans un plugin WP (au hasard) et de vendre le plugin en question.

Je pense qu'il n' a pas de problème pour l'inclure dans SPIP, mais quand on vend un site SPIP à un client, il me semble qu'on est redevable de la licence dans ce cas.

Mais le plus simple amha est de contacter l'auteur pour lui poser la question.

Effectivement, en précisant la question que je me pose.

Quelqu'un l'a contacté ?

Beaucoup plus élégante et fonctionnelle, effectivement.

Niveau accessibilité, en navigation clavier on récupère bien le focus dans la box à l'ouverture, et on peut tabuler sur les différents éléments interactifs qui sont bien des boutons avec un title, donc ça semble plutôt pas mal.

Il faudrait tester avec une assistance technologique (lecteur d'écran), je vais essayer de voir ce que ça donne.

Je pense pas qu’il faille trop compliquer en essayant d’avoir plusieurs boxs qui s'activent d’un coup. Amha il faut que le mecanisme permette d’activer une box ou une autre, mais une seule sera dispo à la fois, et donc configurable etc

Alors je comprends ta remarque, et la valide en partie.

Je précise un peu ce que fait le plugin avec ma modification :

Le formulaire de configuration ne propose pas de choisir une lib, mais
seulement un skin (comme fait actuellement).
A la selection d'un skin, on recharge une partie du formulaire pour
charger les options propres à la lib parente (et masquer les autres
options).

Le choix de lib est donc implicite, ce qui simplifie la compréhension
pour l'utilisateur peu averti.

On ne charge évidemment que les fichiers nécessaires à la seule lib
sélectionnée.

- sur la possibilité d’avoir des js et css dynamiques en squelette, je

suis un peu réservé, j’aime vraiment pas trop ça et en terme de perf
c’est vraiment pas génial

Je comprends. Je trouve malgré tout que ça ouvre des perspectives de
personnalisation interessantes. On pourrait garder cette fonctionnalité,
mais livrer un thème statique par defaut, puisque les deux sont gérés.

Niveau accessibilité, en navigation clavier on récupère bien le focus dans la box à l'ouverture, et on peut tabuler sur les différents éléments interactifs qui sont bien des boutons avec un title, donc ça semble plutôt pas mal.

J'ai posé la question, ça semble bon niveau accessibilité :

Non, je pense que la mention en question est pour éviter à l'auteur de voir des chacals empaqueter la lib dans un plugin WP (au hasard) et de vendre le plugin en question.

Je pense qu'il n' a pas de problème pour l'inclure dans SPIP, mais quand on vend un site SPIP à un client, il me semble qu'on est redevable de la licence dans ce cas.

Ça semble être une possibilité.
Est-ce que c'est rédhibitoire ?

Il décrit aussi :
Q : Can I use fancybox in product sold for multiple clients (for example, in theme sold on Themeforest)?
premium theme, plugin or template) for sale. Customers and users of your product do not need to purchase their own license — as long as they are not developing their own commercial products with fancybox.

Ça laisse donc ouvert la possibilité que quelqu'un ou quelque chose achète la licence "extended" pour un plugin spip
et que cela concéderait le droit de distribuer ce plugin (de manière payante et sans doute aussi de manière gratuite).

Mais le plus simple amha est de contacter l'auteur pour lui poser la question.

Effectivement, en précisant la question que je me pose.
Quelqu'un l'a contacté ?

Je veux bien le contacter mais quelle est la question à poser au juste ?

JLuc

Elle me semble claire, mais tu n'es peut être pas toi même dans la situation de vendre des sites sous SPIP.
Je mets ça en todo list, j'essaie de le contacter, hésitez pas à me relancer.

Mais si entre temps on trouve une chouette lightbox accessible et pure GPL, zéro aspect commerical, c'est la fête.