• Create HTML5 Canvas documents in Animate CC
    https://helpx.adobe.com/mena_ar/animate/using/creating-publishing-html5-canvas-document.html

    Animate CC est un outil interessant pour la création d’images au format HTML 5 / <canvas> mais il requiert que Javascript soit actif dans le client http . Avec les fonctions graphiques de #SPIP par contre on peut produire du contenu interactiv (au niveau de la création de pages web) sans créer une charge supplémentaire pour les clients web.

    Adding interactivity in HTML5 Canvas document

    Animate CC publishes HTML5 content using the CreateJS libraries. CreateJS is a suite of modular libraries and tools which enable rich interactive content on open web technologies via HTML5. The CreateJS suite comprises of: EaselJS, TweenJS, SoundJS, and PreloadJS. CreateJS converts content created on stage to HTML5 using these individual libraries to produce HTML and JavaScript output files. You can also manipulate this JavaScript file to enhance your content.

    However, Animate CC allows you to add interactivity to objects on stage created for HTML5 Canvas from within. It means that you can actually add JavaScript code to individual objects on stage from within Animate and preview at author-time. In turn, Animate provides native support for JavaScript with useful features within the code-editor to help improve workflow efficiency of programmers.

    P.S. Animate CC est payant et ne marche que sous MS windows.

    #SPIPCMS

  • Démarrer rapidement et facilement un projet avec un script

    Et si vous aviez un #script pour faire le boulot ? Un script qui pourrait vous générer un projet prêt à démarrer, et ce en quelques instants, avec uniquement des interventions de votre part au début pour répondre à des questions basiques ?

    https://darklg.me/demarrer-rapidement-et-facilement-un-projet-avec-un-script

    Mes 1ers tests par ici avec mon boilerplate #SPIP : https://gitlab.com/jmoupah/zcm-installer

    Couplé à #SPIP-CLI / #Checkout, ça commence à causer :)

    SPIP-CLI : https://contrib.spip.net/SPIP-Cli
    Checkout : https://git.spip.net/spip-contrib-outils/checkout

    #git #developpement #bash #outil

    • c’est en gros ce que fait l’installeur de IntéGraal qui est uniquement en spip-cli :
      https://git.spip.net/spip-contrib-outils/spip-cli/src/branch/master/src/Command/IntegraalGenerer.php

      Sachant qu’en spip-cli, enfin avec le module Console de Sf quoi, une fois qu’on a fait des commandes unitaires pour ci ou ça, on peut aussi faire des commandes qui appelle d’autres commandes.

      Moi je fais donc tout en PHP/spip-cli/Console, vu que c’est bien plus simple à coder, propre, beau avec des couleurs, tableaux, barre de défilement, etc, sans avoir à coder en Bash.

      Pour spip-cli, par contre, hors commandes de base, ça va chercher que les commandes qui sont dans des plugins activés, d’où le fait que pour l’instant celle pour IntéGraal est dans le socle commun, sinon on peut pas l’utiliser.

      Ce qu’on pourrait imaginer c’est que spip-cli cherche aussi au moins les commandes placées dans un dossier « spip-cli » à la racine du dossier où on le lance et/ou à la racine du spip (pas juste les plugins activés).

    • Pour l’instant, mes besoins sont rudimentaires, donc bash me va bien :)

      Ce que ça fait :

      – crée la base mySQL pour installer SPIP via spip-cli
      – crée les dossiers plugins et auto (désactivable)
      – clone ZCM
      – édite paquet.xml avec le préfixe du plugin
      – renomme les fichiers options/fonctions/zcm-xx.svg avec le préfixe du plugin
      – commit le tout dans un repo du nom du préfixe préalablement créé (désactivable)

      Et donc les commandes :

      – télécharger SPIP spip dl --branche master
      – initialiser ZCM Intaller zcminstaller (créer à minima la base de données)
      – installer SPIP spip core:installer --db-server "mysql" --db-login "login" --db-pass "motdepasse" --db-database "nomdelabase" --admin-nom "nom" --admin-login "login" --admin-email "mail@domaine.net" --admin-pass "motdepasse"
      – ajouter le dépôt des plugins spip plugins:svp:depoter https://plugins.spip.net/depots/principal.xml

      La seule chose que je n’arrive pas à faire via SPIP Cli, c’est installer mon plugin car ça ne gère pas les dépendances (téléchargement et installation). Ou alors, je rate une commande ?

  • Modif de mon script de détection de la compatibilité #WebP du navigateur dans mon #plugin #SPIP image_responsive :
    https://git.spip.net/spip-contrib-extensions/image_responsive

    Jusqu’à présent, je me contentais d’un test synchrone en Javascript, avec un code assez simple. Le hic : Firefox compatible avec WebP n’était pas détecté comme compatible. Et re-hic avec les mises à jour récentes de MacOs et iOS, Safari a le même souci.

    La nouvelle méthode : je fais le teste synchrone. Si le test synchrone dit que le navigateur est compatible, tant mieux, on s’arrête là, c’est oui.

    Si le test synchrone échoue (peut-être Safari ou Firefox), alors je balance un test asynchrone. En attendant, pour cette première page, tant pis, les scripts considèrent que le navigateur n’est pas compatible, et on travaille avec JPEG ou PNG à la place de WebP.

    Mais à la fin du teste asynchrone, je stocke le résultat (oui/non) en LocalStorage. Et ainsi, à la page suivante, je récupère directement le résultat du localstorage, et j’affiche ou non le WebP sans refaire de test de compatibilité. Et ça fonctionne nickel avec Safari et Firefox (à partir de la seconde page donc).

    Et au passage, j’introduis exactement la même méthode pour le format #Avif (pour le coup, ça détecte bien Chrome, qui pourtant ne passe pas non plus le test synchrone – même bug bizarre sur le MimeType de image/avif qui est détecté comme image/png).

  • J’avais déjà mis en ligne un support de visite pour l’exposition Le Canada et l’impressionnisme du Musée Fabre de #Montpellier, reprenant des présentations textuelles, une sélection d’œuvres et l’intégralité des audioguides.

    Avec le second confinement (l’exposition sera terminée avant que le musée puisse rouvrir ses portes au public), on nous a demandé de réaliser une véritable visite virtuelle à 360, et le musée a obtenu les droits pour qu’on puisse présenter en ligne la plupart des tableaux.

    On a donc transformé les « formes longues » en véritable visite virtuelle :
    https://fabre.montpellier3m.fr/Le-Canada-et-l-impressionnisme

    En règle générale, je ne conçois pas ces visites virtuelles pour « remplacer » une visite au musée, mais essentiellement comme un support de visite (on se promène en salle avec son smartphone, et on bénéficie notamment des audioguides gratuitement sur son propre appareil) et une façon de préparer une visite au musée, mais pour le coup, malheureusement, celle-ci a réellement pour but de remplacer la visite in situ.

    C’est d’autant plus dommage que c’est une très belle expo (les impressionnistes, ça plaît toujours…), les gens qui ont pu la voir en septembre ont tous été impressionnés de découvrir ces artistes peu connus en France, et chacun sortait de l’expo frigorifié, les dernières salles étant emplies de scènes de neige et de glace au Canada. À moins que ce soit l’air conditionné du musée…

    Pour l’aspect technique, il s’agit toujours de ma plateforme sous #SPIP, qui me permet facilement de monter les images en back-office et de placer des hotpsots (les œuvres) dans le panoramique 360°.

    Pour l’affichage des 360, c’est le script Pannellum. Pour la création des tuiles (utilisées par Pannellum), j’utilise les scripts (en ligne de commande donc) fournis par Pannellum (qui, désormais, tournent sur mon Mac avec processeur M1, on peut donc bien faire tourner des logiciels avec Brew et la ligne de commande sur les nouveaux processeurs).

    #shameless_autopromo

    • Je vais peut-être détailler ma méthode pour prendre les images 360°…

      – Pour la prise de vue, j’ai investi dans un appareil Ricoh Z1. C’est un appareil photo très spécifique, qui permet de prendre une photo à 360° en une seule prise de vue. Ça n’est pas (du tout) la qualité d’image qu’on obtient en assemblant des dizaines de photos réalisées avec un appareil reflex, comme on le faisait habituellement, mais en revanche ce n’est pas la même lourdeur pour prendre les photos. Là, je positionne l’appareil sur un pied, je me cache dans un coin, clic, c’est fait j’ai mon image à 360°. Je fais les photos de toute l’expo en une demi-heure maximum.

      Les photos de réflex assemblées, c’est un processus certes extrêmement qualitatif, mais c’est également long (et cher). C’est plutôt adapté aux lieux permanents, qui n’évoluent pas dans le temps.

      Ma version avec un appareil 360, moins qualitative mais infiniment plus rapide, c’est adapté aux expositions temporaires, notamment au fait qu’il y a un délai très court entre la préparation des salles et l’ouverture au public, et c’est aussi adapté à un musée qui « bouge » énormément (au Musée Fabre, même les collections permanentes ne sont pas du tout permanentes, ça « bouge » tout le temps).

      – Dans le cas où je prévois toute une visite avec passage d’une salle à l’autre, je prends soin à toujours orienter l’appareil dans la même direction. De façon à pouvoir toujours « regarder » dans la même direction quand on passe d’une salle à l’autre.

      – En revanche, le capteur est petit, on est donc loin de qualité des images obtenues par un photographe armé d’un reflex. Pour limiter ce (gros) défaut, la première chose est l’utilisation de ce modèle, le Z1, doté d’un capteur deux fois plus gros que les modèles grand public et que son prix réserve à un usage professionnel.

      – Je prends les photos avec le plugin « Dual Fisheye Plugin » :
      https://pluginstore.theta360.com/plugins/com.hirota41.dualfisheye_plugin
      Ainsi au lieu de prendre une photo, l’appareil prend 9 photos successives (avec des temps d’exposition de plus en plus longs), assemblés en une seule photo HDR sauvegardée en RAW.

      Dans tous les cas, cette technique me donne des bien meilleurs résultats que la prise de vue « de base » de l’appareil ; mais dans le cas de salles très sombres, la différence est spectaculaire. Avec l’automatisme de base de l’appareil, j’obtiens des images inutilisables (beaucoup de bruit, disparition des détails…), avec l’empilement de 9 vues dans une image HDR Raw, c’est pas mal du tout :
      https://fabre.montpellier3m.fr/Salle-3-296

      – Cette image est très particulière : il faut l’ouvrir dans Lightroom, et elle est composée de deux images lenticulaires.

      Il faut transformer cela en une image équirectangulaire avec Ricoh Stitcher. Cela fait, j’ajuste encore les niveaux de l’image dans Lightroom.

      – Ensuite je reprends ces images dans Afinity Photo, qui me permet de passer dans une vue panoramique à 360°, de façon à supprimer le pied dans le bas de l’appareil (sur l’image equirectangulaire ci-dessus, le pied, pourtant minuscule, c’estest l’espèce d’Antarctique noire qui parcourt tout le bas de l’image).

      Éventuellement, je corrige d’autres éléments dans l’image (par exemple, faire disparaître un extincteur trop visible).

      – Enfin j’ouvre l’image dans Pixelmator Pro, qui a une impressionnante fonction d’agrandissement des images, à base de Machine Learning, qui permet d’obtenir des images 3 fois plus grandes (donc 9 fois plus de pixels), en limitant les effets pénibles des agrandissements habituels. Disons que le résultat est pas trop mauvais (encore une fois : ça n’a rigoureusement rien à voir avec un assemblage de photos sorties d’un appareil reflex), et ça me donne des images equirectangulaires de 21 000 pixels de large.

      – Ce sont ces images que je fais ensuite passer par le script de Pannellum, pour obtenir des dossiers contenant les tuiles utilisées pour l’affichage des panoramiques.

      J’ai légèrement patché le script pour me fabriquer non seulement les versions JPEG, mais aussi les versions WebP des tuiles. (Il va falloir que je vois si je peux déjà fabriquer des versions AVIF.)

    • Félicitations et merci BEAUCOUP pour les détails :)

      Petite remarque concernant la lisibilité / UX : il me semble que les raccourcis représentant la salle vue du dessus pour accéder à son image 360° n’est pas immédiatement compréhensible pour le visiteur. On peut concevoir que ce soit normal, vu puisqu’aucun visiteur n’a jamais cette vision « aérienne » et donc ne peut rattacher l’image à une expérience personnelle.

      Il me semble que présenter le plan complet et cliquer sur les salles est plus adapté.

    • Montpellier : Partez à la découverte virtuelle de l’exposition « Le Canada & l’Impressionnisme, Nouveaux horizons » - Le Mouvement
      https://lemouvement.info/2020/12/20/montpellier-partez-a-la-decouverte-virtuelle-de-lexposition-le-canada-

      À la suite des mesures gouvernementales liées à la Covid-19, l’exposition « Le Canada & l’Impressionnisme, Nouveaux horizons » au musée Fabre de Montpellier Méditerranée Métropole est actuellement fermée.

      Malgré, cette fermeture et pour permettre au grand public de profiter de cette exposition, le musée Fabre propose une visite virtuelle afin d’explorer le détail des peintures, de profiter des audioguides et des contenus écrits par le service des expositions du musée.

    • Impressionnisme canadien : une brillante visite virtuelle au musée Fabre
      https://www.lokko.fr/2020/12/19/impressionnisme-canadien-une-brillante-visite-virtuelle-au-musee-fabre

      Avec « Fabre dans mon canapé », le musée Fabre fait une offre numérique pointue, qui n’a rien à envier aux grands musées français. La visite virtuelle de son exposition « Le Canada et l’impressionnisme, nouveaux horizons » traduit l’ambition digitale de l’honorable institution montpelliéraine.

    • #respect !

      Le dispositif numérique du musée Fabre a du coup pris tout son sens et permis heureusement de découvrir cette centaine d’œuvres de 35 artistes canadiens de la fin du XIXe et du début du XXe siècle présentée par le Musée national des Beaux-arts du Canada.
      […]
      Le musée d’Orsay quant à lui ne propose pas de visite à 360 degrés comme le font le Louvre ou le musée Fabre.

    • Des visites virtuelles pour terminer les vacances - Le Journal Toulousain
      https://www.lejournaltoulousain.fr/lifestyle/visites-virtuelles-vacances-111641

      Les équipes du musée Fabre ont imaginé des galeries virtuelles pour continuer de faire vivre les œuvres durant le confinement mais aussi pour se rendre accessible aux visiteurs et scolaires qui n’ont pas la possibilité de venir à Montpellier. Visites (complètes !) des collections et des expositions, documentaires, podcats, ressources pédagogiques et jeux pour les plus jeunes : une expérience artistique hors les murs… depuis chez soi. L’occasion de découvrir une exposition inédite, organisée en collaboration avec le Musée des beaux-arts du Canada à Ottawa. Après Munich et Lausanne, l’exposition “Le Canada et l’impressionnisme. Nouveaux horizons” a choisi Montpellier pour son escale française. Riche d’une centaine de tableaux, l’expo met à l’honneur trente-cinq artistes majeurs entre 1880 et 1920, souvent encore inconnus en Europe. De l’initiation à l’impressionnisme à Paris jusqu’à sa réinterprétation avec l’émergence d’une avant-garde canadienne, on découvre des atmosphères et scènes de la vie quotidiennes traitées avec une modernité et une lumière uniques.

  • On vient de mettre en ligne le mini-site « Hommage à Frédéric Bazille », sur la plateforme « Fabre dans mon canapé », qu’on avait lancée pour le Musée Fabre de #Montpellier :
    https://fabre.montpellier3m.fr/Hommage-a-Frederic-Bazille

    Comme tu dois le savoir désormais, c’est du #SPIP, et l’originalité à nouveau, c’est que la prestation consiste essentiellement dans la mise en ligne de contenu, plutôt que du développement Web traditionnel.

    Mais il y a tout de même quelques petits détails nouveaux qui enrichissent ma plateforme…

    – Un parcours sur une carte interactive avec des informations géolocalisées :
    https://fabre.montpellier3m.fr/Sur-les-pas-de-Frederic-Bazille-a-Montpellier

    Ça c’est un nouveau format pour la plateforme. J’avais déjà intégré la possibilité d’un parcours géolocalisé sur les longforms, où chaque partie peut être placée sur une carte :
    https://fabre.montpellier3m.fr/Moyen-age-et-Renaissance
    Ici c’est exactement la même structure d’information, mais c’est la carte plein écran qui prime pour entrer dans l’information. Un bouton de géolocalisation de l’usager permet en plus de se promener en ville en suivant la carte. (Sur smartphone, ça détecte en plus la direction dans laquelle pointe le téléphone, ce qui facilite le repérage sur la carte.)

    Et au fait : la documentation de cette page est particulièrement riche, si tu t’intéresses à #Montpellier, tu vas apprendre plein de choses…

    – Une autre interface nouvelle sur la plateforme, c’est une image en « méga-zoom », avec des hotspots :
    https://fabre.montpellier3m.fr/L-Atelier-de-la-rue-de-La-Condamine
    Ça devrait te rappeler une interface réalisée (à la main) par @philippe_de_jonckheere il y a quelques années…
    http://www.desordre.net/accessoires/peinture/bazille
    Là, évidemment, c’est du SPIP, les hotspots se placent en drag-and-drop, et les tableaux sont les fiches de la base de données des œuvres du musée.

    – Une petite visite virtuelle des salles dédiées à l’événement dans le musée :
    https://fabre.montpellier3m.fr/Visite-virtuelle
    J’ai progressé dans le traitement des images sorties de mon appareil 360° (un Ricoh Theta Z1, photos prises en HDR de 9 prises de vues), la qualité des images panoramiques est meilleure qu’au début.

    Et à nouveau, pour les « logos » des différentes pièces, j’utilise des « mini-planètes » que je calcule sur le serveur avec Imagemagick, à partir de mes images équirectangulaires.

    – Enfin plusieurs longforms documentaires. L’un d’eux est consacré à la découverte d’un tableau disparu de Bazille, « sous » un tableau inachevé présent dans les collections du musée :
    https://fabre.montpellier3m.fr/A-la-recherche-du-tableau-disparu

    Pour l’occasion, j’ai développé un petit modèle SPIP, qui me permet de configurer un slider « avant-après » intégré dans le texte de la page, pour montrer le tableau qui dévoile l’image radiographiée en dessous. (Il existe un plugin pour SPIP qui fait quelque chose de similaire, mais j’ai des besoins un peu particuliers, notamment j’impose mon propre plugin d’image_responsive, alors j’ai préféré rapidement refaire un petit truc pour mes propres besoins.)

    Voilà, c’est ma #spip_recette et #shameless_autopromo du jour.

    • @arno , je ne sais pas si c’est de votre ressort, je poste tout de même la lettre émouvante de Gaston Bazille à l’ami de son fils . J’ai mis en gras les ajouts ou changements que j’ai faits.
      https://fabre.montpellier3m.fr/Correspondance
      ““““““““““““““"
      Gaston Bazille [à Edmond Maître ?]
      2 février 1871

      Montpellier, 2 février 1871
      Cher monsieur, votre lettre de la fin de décembre m’est parvenue dans les premiers jours de janvier, je vous expédiai de suite une dépêche télégraphique, il est fort probable qu’elle ne vous soit pas parvenue. Je profite de l’armistice pour vous annoncer l’affreux malheur qui nous a frappés ; mon cher Frédéric est mort en héros, tué de deux balle s à l’attaque de Beaune-la-Rolande, le 28 novembre. Malgré l’occupation prussienne et des difficultés de tout genre, j’ai pu après dix jours, retrouver sur le champ de bataille, parfaitement intact, dans la fosse où il avait été inhumé, le corps de mon cher enfant. J’ai suivi à pied pendant cinq jours dans la neige , l’humble charrette, le seul véhicule que j’avais pu me procurer à Beaune qui portait le cercueil de ce brave soldat, le chemin de fer ne marchait qu’à Issoudin . La mort de Frédéric a été pour Montpellier un deuil public ; il était adoré dans son régiment, comme tant d’autres, il aurait pu facilement avoir un grade dans un état-major, ou attendre tranquillement ici le départ des gardes nationaux mobilisés. Il a voulu servir son pays dès le premier danger ; il est allé un mois environ en Afrique du 15 août au 15 septembre, puis un mois à Montpellier où le 3e Zouave était venu se former, une quarantaine de jours près de Besançon, enfin transporté avec tout un corps d’armée à Gien , il a été frappé quelques jours après, à la tête de son régiment, tout près des murs crénelés de Beaune la Rolande. Le 3e Zouave a été cruellement éprouvé dans cette attaque. J’ai vu à Beaune et plus tard à Montpellier bien des soldats de ce régiment ; tous étaient pleins d’admiration pour Frédéric et m’en parlaient avec les yeux pleins de larmes ; il s’était fait adorer par ses frères d’armes. Il était sergent fourrier, menant à l’attaque une partie de sa compagnie et ses derniers mots à ses soldats, l’un d’eux me les a répétés : « si nous pénétrons dans la ville, fesons (sic) nous tuer, il le faut, c’est notre métier ; mais à aucun prix ne tirons sur des maisons où il y aurait des femmes ou des enfants. »
      Grâce au froid très vif qu’il avait fait, et sur les indications des hommes requis pour enterrer les morts après la bataille, j’ai fait ouvrir la fosse où mon noble fils avait été placé avec une une vingtaine d’hommes, certain de le reconnaître. Son beau visage était aussi calme aussi pur qu’au moment où il avait été frappé ; ce fut certes un moment très affreux pour un père que de retrouver et reprendre son fils au milieu de ces cadavres ; mais aussi quelle profonde satisfaction de le revoir encore, et de le presser dans mes bras. J’ai eu comme tout le monde dans la vie des jours heureux et malheureux ; mais je ne changerai pas la plus belle journée pour celle où j’ai pu retrouver et embrasser mon fils mort.
      Vous qui le connaissiez intimement vous comprenez mieux qu’un autre la perte que nous avons faite.
      Frédéric avait tout pour lui : force, jeunesse, intelligence, talent. Il a sacrifié un brillant avenir sans hésiter une minute ; et si vous aviez vu avec quelle simplicité il a agi ! sans se faire valoir, trouvant son dévouement à son pays tout naturel. Ah oui ! c’était un noble cœur et un beau caractère.
      On nous dit pour nous consoler, à sa mère et à moi : la mort de votre fils a été glorieuse. Sans doute, mais ce n’est pas moins la mort, et jusqu’à la fin de notre vie nous plierons sous le poids de cette immense douleur.
      Quand nous serons revenu à un temps plus calme, je vous prierai , cher Monsieur, de vouloir bien nous faire parvenir toutes les toiles, toutes les œuvres que mon fils avait dans son atelier ; vous voudriez bien aussi, je vous prie, prévenir le propriétaire de l’atelier pour qu’à la fin de l’année de bail, il reprenne possession de ce lieu. Frédéric avait sans doute quelque petits comptes chez divers marchands ; vous me rendrez aussi un bien grand service, de me faire savoir ce qui leur est dû, de manière à ce que je puisse les désintéresser mais sans être trompé par eux, il me serait bien difficile de vérifier les comptes.
      Adieu, mon cher Monsieur, je connais toute l’affection que vous portiez à mon cher Frédéric, je comprends combien cette lettre vous rendra malheureux , Veuillez je vous prie, faire savoir la fatale nouvelle aux autres amis de Frédéric. Je vous embrasse de tout mon cœur,
      Gaston Bazille

    • La guerre de ’70 n’a pas eu lieu pendant mon enfance ... ;-)
      https://fabre.montpellier3m.fr/Correspondance

      TÉLÉGRAMME DE GASTON BAZILLE À EDMOND MAÎTRE LUI ANNONÇANT LA MORT DE FRÉDÉRIC
      8 janvier 1971

      https://fr.wikipedia.org/wiki/Fr%C3%A9d%C3%A9ric_Bazille#Inhumation

      Pour moi, je suis bien sûr de ne pas être tué : j’ai trop de choses à faire dans la vie », déclare-t-il à son capitaine la veille de sa mort.

      Très beau site, mais quel imbécile.

  • Sur un site #SPIP, j’ai besoin de détecter les langues des messages, mais je ne veux détecter que dans trois langues (français, anglais, allemand).

    Du coup mon #plugin seenthis_detecter_langue n’est pas utilisable directement :
    https://git.spip.net/spip-contrib-extensions/seenthis_detecter_langue

    parce que je n’ai pas prévu de limiter arbitrairement le choix des langues. (Ce qui est assez logique en général.)

    Du coup, dans mes_fonctions.php, je fabrique une fonction detecter_la_langue ainsi :

    $my_ngrams = false;
    function detecter_la_langue($texte) {
            if (!$my_ngrams) {
                    $my_ngrams["fr"] = $GLOBALS["ngrams"]['fr'];
                    $my_ngrams["en"] = $GLOBALS["ngrams"]['en'];
                    $my_ngrams["de"] = $GLOBALS["ngrams"]['de'];
                    $GLOBALS["ngrams"] = $my_ngrams;
            }
            return detecter_langue($texte);
    }

    Du coup on ne teste les « ngrams » que sur ces trois langues, donc le plugin ne pourra plus retourner qu’une de ces trois valeurs.

  • Territoires, utilisation du plugin

    L’objectif du plugin est de fournir un nouvel objet éditorial couvrant l’ensemble des zones géographiques du continent à la subdivision minimale d’un pays. De fait, ce plugin pourrait à terme remplacer les plugins Pays, Continents, COG et Géographie en fournissant un objet unique et servir de pivot à d’autres plugins de géographie comme GIS, Contours ou Cartes Choroplèthes.

    https://contrib.spip.net/Territoires-utilisation-du-plugin

    #spip_blog

  • Agenda : Inscription libre aux événements

    Propose un module alternatif aux inscriptions des événements de l’agenda
    – les inscriptions sont ouvertes à tous les visiteurs du site sans à avoir à se connecter (pas de création de compte)
    – l’inscription se fait en 2 étapes avec l’envoi d’email qui contient un lien pour valider son inscription (pour garantir l’unicité et la validité de l’email soumis)

    https://contrib.spip.net/Agenda-Inscription-libre-aux-evenements

    #spip_blog

  • Fos / étang de Berre : 200 ans d’histoire industrielle et environnementale
    https://fos200ans.fr

    Un webdoc en SPIP comme support de vulgarisation d’un projet de recherche socio-historique.
    Double navigation immersive ou cartographique, création d’un outil de génération de fonds cartographiques pour GIS à partir d’images, plein d’interviews vidéos des acteurs locaux... une collaboration chercheurs/vidéaste/spipeurs efficace !
    on est super content du résultat, principalement développé par Adèle une nouvelle spipeuse chez Gamuza :-)

    #spip #pollution #lutte_environnementale #fos #webdoc #shameless_autopromo

  • Encore un mini-site pour le Musée Fabre de #Montpellier : il s’agit du minisite accompagnant la nouvelle app Fabre & the City 2 lancée par le musée :
    https://fabre.montpellier3m.fr/Fabre-the-City-2

    La app, c’est donc réalisé pour une boîte locale, qui s’est lancée récemment sur le concept d’escape game géolocalisé sur smartphone en ville.

    De notre côté (#shameless_autopromo), il s’agit donc de l’intégration d’un mini-site de présentation dans notre site Fabre dans mon canapé. Comme je l’expliquais hier pour le mini-site de l’expo Pharmacopées :
    https://seenthis.net/messages/880108
    c’est la première fois qu’on vend une prestation de mise en ligne de contenu. Chose qui me plaît d’ailleurs beaucoup, puisque ça me permet de pousser les outils que j’ai développés (sous #SPIP) aussi loin que possible.

    Ici, il s’agit essentiellement de longforms. Trois principaux couvrent les « parcours » du jeu :
    https://fabre.montpellier3m.fr/Moyen-age-et-Renaissance
    https://fabre.montpellier3m.fr/Epoque-moderne
    https://fabre.montpellier3m.fr/Periode-post-revolutionnaire-XIXe-siecle

    Une petite innovation ici dans ces longforms, comme il s’agit d’endroits qui existent en ville (et que ça accompagne, justement, une application géolocalisée), c’est que chaque lieu est associé à un point de la carte, et que le scroll dans la page fait surgir une petit carte que l’on peut agrandir pour afficher le parcours de cette longform.

    L’autre petite innovation, ce sont les animations installées sur Viméo qui se déclenchent automatiquement quand on arrive à leur niveau. Et on masque complètement les contrôles de Viméo, pour donner l’impression d’une animation intégrée à la page, façon « app ». À noter cette subtilité : il faut que la vidéo soit muette pour se déclencher sans « click » de l’usager, et donc dans mon code, avant de déclencher la vidéo, je force un « mute » du volume (même si ces animations n’ont pas de son).

    Un gros morceau, ce sont les documentations plus complètes pour chacune des lieux, soit accessibles via les liens « Pour en savoir plus » des longforms précédents, soit via la rubrique dédiée :
    https://fabre.montpellier3m.fr/Pour-aller-plus-loin
    Y’a de quoi s’occuper un moment (et hop, j’ai encore appris plein de choses sur la ville d’adoption).

    Et enfin, un format nouveau : l’image panoramique à 360° dans laquelle on zoome/scroll automatiquement simplement en scrollant dans la page (ici c’est avec une illustration à 360°, mais ça fonctionne très bien avec une véritable photo panoramique) :
    https://fabre.montpellier3m.fr/Le-jardin-des-plantes

    On scroll donc verticalement, et à chaque cartel explicatif, on se déplace automatiquement dans l’image panoramique. Au lieu d’avoir une visite « libre » d’un endroit avec des hotspots (ce que je fais beaucoup sur ce site, et notamment sur Pharmacopées), on a une narration guidée (ce que j’aime beaucoup, comme format de médiation).

  • Est-ce que quelqu’un sait ce que Reporterre utilise sur son site #SPIP pour réaliser sa page de don :
    https://reporterre.net/spip.php?page=don

    Je n’arrive pas à déterminer si c’est un plugin, ou un truc maison. J’aurais tendance à penser que c’est un truc maison, puisqu’on trouve le squelette ici (et c’est plutôt, hum, rustique, avec un mélange très oldschool de PHP et de HTML) :
    https://reporterre.net/squelettes/don.html

    • Oui c’est un truc perso.

      Il y a le plugin Souscriptions qui fait « campagnes de dons » et « campagnes d’adhésions » ici, si ça te suffit :
      https://github.com/otetard/spip_souscription

      On a besoin de dons dans relativement peu de temps mais ce dernier ne nous convient pas du tout car il veut tout faire à la fois. Notamment il ne permet pas de choisir soi-même la manière d’enregistrer les infos des gens (comment, quels champs, où) car tout est dans le même formulaire en dur. Or pour certaines assocs qui font d’autres choses (abonnements, vente de choses à l’unité, adhésions, etc) on veut plutôt stocker les infos de la même manière et au même endroit que les autres tunnels qui vont exister en parallèle (nous on utilise Profils par ex, mais chacun devrait pouvoir choisir sa méthode/son endroit préféré). Et donc nous pensons qu’un plugin Dons plus générique ne devrait faire que ça, sans imposer des choses, sur le même principe que le plugin Produits, le plugin Abonnements, etc : séparer la gestion de « qu’est-ce qu’on doit payer », de la gestion de « qui paye ».

      Du coup on a prévu à assez court terme de développer un nouveau plugin plus concis, plus autonome, qui ne fait qu’une chose.

  • Pour ce qui nous intéresse (si si), la grosse nouveauté d’iOS 14, c’est qu’il accepte désormais les images WebP.

    J’ai testé avec mes sites où la version WebP est générée directement par mon #plugin #SPIP image_responsive, ça bascule sur les versions WebP de manière totalement transparente.

    De ma propre expérience :

    – sur les fichiers JPEG, je gagne généralement autour de 30% à 50% sur le poids des images. Avec des dessins au trait, je gagne systématiquement 50%.

    – sur des fichiers PNG (quand j’ai besoin de la transparence), c’est absolument énorme, les images sont 7 à 8 fois plus légères.

    Sur un site comme La Méthode Curie, où j’utilise énormément d’images au trait avec transparence, la différence est donc phénoménale :
    https://lamethodecurie.fr/index.html