Aller au contenu

Scripts personnalisés

Votre institution peut insérer ses propres extraits de HTML et de JavaScript sur tous les écrans de la plateforme : un pixel média, un widget de chat qu’Eduvem n’intègre pas nativement, une balise meta de vérification, un script de service client. C’est l’équivalent des « scripts d’en-tête et de pied de page » d’autres systèmes, sans dépendre d’une nouvelle version d’Eduvem pour chaque fournisseur.

La fonctionnalité ne fonctionne qu’avec deux interrupteurs activés, et chacun appartient à quelqu’un de différent :

  1. Autoriser les scripts personnalisés pour cette institution - l’interrupteur d’Eduvem. Seul un administrateur de la plateforme voit et modifie cet interrupteur, et il est désactivé pour toute institution. Tant qu’il est désactivé, la section n’affiche que l’avis « Les scripts personnalisés ne sont pas encore disponibles pour cette institution. Contactez Eduvem pour activer cette fonctionnalité. » Demandez le déblocage à votre contact chez Eduvem.
  2. Activer les scripts personnalisés - l’interrupteur de l’institution. Après le déblocage, l’administrateur de l’institution décide quand activer et désactiver les scripts.

Vous pouvez écrire et enregistrer les extraits avant d’activer votre interrupteur, mais rien ne s’exécute tant que les deux ne sont pas activés.

La section Scripts Personnalises avec les cles Autoriser les scripts personnalises pour cette institution et Activer les scripts personnalises activees, et le champ En-tete rempli avec un exemple de balise meta

Dans l’administration de l’institution, onglet Intégrations, section Scripts Personnalisés (juste en dessous de la liste des jetons de l’API) :

  1. Collez l’extrait dans un ou plusieurs des trois champs :
    • En-tête - s’exécute dans le <head> de la page, avant les styles et les scripts de la plateforme elle-même. À utiliser pour une balise meta de vérification ou un script qui doit se charger tôt.
    • Corps - s’exécute juste après l’ouverture du <body>. À utiliser pour une bannière, un widget de chat ou tout ce qui doit apparaître dès que la page commence à s’afficher.
    • Pied de page - s’exécute juste avant la fermeture du <body>. C’est l’emplacement habituel des scripts de suivi et d’analyse.
  2. Cochez Activer les scripts personnalisés.
  3. Cliquez sur Enregistrer. Le message « Scripts personnalisés enregistrés avec succès. » confirme.

Chaque champ accepte jusqu’à 32 Ko. Un extrait plus long est refusé à l’enregistrement, avec le message « Le contenu de l’En-tête est trop long - il doit faire 32 Ko maximum. » (ou le champ correspondant), et rien n’est modifié. Les lignes vides au début et à la fin sont retirées à l’enregistrement ; le reste est conservé exactement tel que vous l’avez collé.

Les scripts entrent dans la page après la connexion de l’utilisateur - au chargement d’une page avec une session déjà ouverte, et juste après une connexion via le formulaire, sans recharger la page. Ils ne s’exécutent jamais :

  • sur l’écran public de connexion et d’inscription, où les mots de passe sont saisis ;
  • pour les administrateurs de la plateforme Eduvem, même lorsqu’ils se connectent via l’adresse de votre institution ;
  • dans le lecteur de contenu, l’écran d’accueil et les panneaux du tableau de bord, qui sont des pages distinctes ;
  • dans un contenu ouvert de façon intégrée dans un autre système (lancement externe/embed) ;
  • sur les écrans de maintenance et d’institution désactivée ;
  • dans le Panneau de contrôle d’Eduvem lui-même.

Les extraits s’exécutent sur la page principale de la plateforme. Si vous devez instrumenter ce qui se passe au sein d’une leçon, utilisez le Google Tag Manager, qui reçoit les événements d’apprentissage déjà prêts.

Activer ou désactiver l’interrupteur, ou modifier un extrait, prend effet au prochain chargement de page. Un onglet déjà ouvert conserve le script précédent jusqu’à son rechargement - un script tiers déjà chargé ne peut pas être déchargé.

  • Une balise <script> s’exécute réellement. Les extraits de fournisseurs fonctionnent tels quels. Un bloc avec type="application/ld+json" ou un autre type qui n’est pas du JavaScript est inséré dans la page mais n’est pas exécuté, comme sur n’importe quel site.
  • Au sein d’un même champ, l’ordre est respecté : une balise qui charge un fichier externe est exécutée avant la balise suivante, donc un « loader » suivi d’une configuration fonctionne. Entre champs différents (En-tête, Corps, Pied de page), cette garantie n’existe pas - si deux extraits dépendent l’un de l’autre, placez-les dans le même champ, ou utilisez le mécanisme de file d’attente de votre fournisseur.
  • Un extrait en erreur ne fait tomber ni la page ni les autres extraits. L’erreur apparaît dans la Console du navigateur et le reste continue.
  • document.write n’efface pas la page. Un ancien script qui utilise document.write voit son contenu redirigé vers la fin de la page, au lieu d’effacer tout ce qui était déjà affiché. Le navigateur enregistre un avertissement dans la Console.
  • Un bloc <noscript> ne fonctionne pas comme solution de repli sans JavaScript. Ces champs ne s’exécutent que lorsque le JavaScript est déjà actif ; le contenu du <noscript> est inséré, mais ce n’est pas la même chose que la solution de repli décrite par le fournisseur.
  • Une balise meta de vérification placée ici est invisible pour les robots des moteurs de recherche, car elle n’entre dans la page qu’après la connexion. Utilisez la configuration d’aperçu de lien de l’institution pour ce qui doit être public.
  • Ne collez jamais de mot de passe, de clé ou de jeton. Le contenu est public pour tout participant de l’institution.

Connectez-vous en tant que participant ordinaire, appuyez sur F12 et, dans la Console, vérifiez l’effet de votre extrait (la variable qu’il crée, l’élément qu’il insère, ou la requête réseau qu’il déclenche dans l’onglet Network). Sur l’écran de connexion, avant de vous connecter, la même Console doit montrer que rien de votre extrait n’existe encore - c’est le comportement attendu.

  • Préférez les intégrations natives lorsqu’elles existent : Widgets tiers pour Movidesk, Zendesk et Hotjar, et le Google Tag Manager pour les balises marketing. Elles gèrent déjà le consentement et les endroits où elles ne doivent pas se charger.
  • Gardez les extraits courts et conservez-en une copie avec les autres intégrations de l’institution.
  • Lorsque vous changez de fournisseur, supprimez l’ancien extrait au lieu de le laisser désactivé uniquement par l’interrupteur : l’interrupteur désactive tous les champs d’un coup.