Import massif d'une étiquette spécifique dans plusieurs cours

Import massif d'une étiquette spécifique dans plusieurs cours

par Nicolas Thorel,
Nombre de réponses : 14
Avatar Développeurs de plugins

Bonsoir à tous,

Je cherche un moins d'importer une activité de type "étiquette" avec un contenu spécifique dans plusieurs cours Moodle. À placer dans la première section du cours.

Quelqu'un aurait-il une idée lumineuse ?

D'avance Merci

Nicolas T.

Moyenne des évaluations  -
En réponse à Nicolas Thorel

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Jérôme DEMIAUX,
Avatar Traducteurs

Bonsoir Nicolas,

Une restauration d'un espace de cours "type" ne contenant que cette étiquette, en mode ajout, devrait faire l'affaire soit en "admin > cours > modification par lots" (tool/uploadcourse) soit en passant par moosh.

Jérôme.

Moyenne des évaluations Utile (5)
En réponse à Jérôme DEMIAUX

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Nicolas Thorel,
Avatar Développeurs de plugins
Merci Jérôme.
Alors J'ai 300 cours et 300 étiquettes. Je pars d'un fichier type tableur afin de récupérer une cellule contenant du texte. Avec ta première solution, je pense que j'aurais plus vite fait de créer mon étiquette dans chaque cours et faire un copier/coller. Sinon, pas de moosh installé sur mon serveur, et je ne vois pas hormis la création d'un forum "moosh activity-add --section 3 forum 4" comment faire pour une étiquette.
En tout les cas, un grand merci pour ta réponse rapide
NicoT
En réponse à Nicolas Thorel

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonjour,

- Faire une sauvegarde de la section contenant l'étiquette en ne sélectionnant que l'étiquette. On obtient un fichier .mbz que l'on télécharge. Dans mon exemple:
sauvegarde-moodle2-course-222-essai-20210127-0918-nu-nf.mbz

- déposer ce fichier sur le serveur en notant l'adresse. Pour moi, ayant un dossier sauvegarde, je l'ai déposé dedans.

- établir un fichier text ou CSV, où shortname est le nom abrégé du cours où l'on veut importer l'étiquette :

shortname,backupfile
Test,/home/mathsmoo/domains/mondomaine.fr/public_html/sauvegarde/sauvegarde-moodle2-course-222-essai-20210127-0918-nu-nf.mbz

La documentation sur le champ backupfile se trouve ici : Champs d'action

Conseil : faire d'abord l'importation dans un ou deux cours, et, si tout se passe bien, faire l'importation pour les 300 cours.

Remarque : si l'étiquette d'origine se trouve dans la section 1, elle sera importée dans la section 1 des cours, après les activités que contient la section 1 de chaque cours.

Christian

Moyenne des évaluations Utile (5)
En réponse à Christian Bocquet

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Jérôme DEMIAUX,
Avatar Traducteurs

Bonjour Christian,

C'est bien ce que j'avais pensé mais le mail de Nicolas laisse à penser que cette fameuse étiquette est spécifique à chaque cours, le contenu étant récupéré dans une cellule d'un tableur, 300 cellules, 300 textes différents, 300 étiquettes différentes et donc 300 cours différents.

J.

Moyenne des évaluations Utile (1)
En réponse à Jérôme DEMIAUX

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Dans ce cas, je ne vois plus qu'une solution. Il faudrait suivre la méthode de Christian et créer ensuite une requête dans la base de données pour modifier le contenu du champ "Intro" de la table mdl_label.
Je sais que ce n'est pas très conseillé de toucher directement à la base de donnée, mais là je ne vois pas d'autre solution.
On crée les 300 cours comme expliqué par Christian, on recherche ensuite dans la table mdl_label l'ID correspondant à l'étiquette du premier cours. On récupère le contenu du champ "Intro". Puis avec Excel, on crée une fonction qui crée une requête pour mettre à jour le contenu du champ "Intro". Comme tous les cours ont été créés en même temps, les ID des étiquettes doivent se suivre donc ça simplifie la conception des requêtes.
Au final, on récupère grâce à Excel les 299 requêtes correspondant aux 299 étiquettes à modifier. Il n'y a plus qu'à les exécuter dans PhpMyAdmin.
Normalement, le tour est joué.
Moyenne des évaluations Utile (4)
En réponse à Nicolas Thorel

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

En relisant la proposition de Jean-Gabriel, je me demande si on ne fait pas tous fausse route... En effet, nous sommes tous partis directement à te proposer quelque chose qui répond à TA solution mais on aurait peut-être dû partir de ton problème ?!
J'imagine que tu dois fournir une information aux participants du cours ? Donc l'Étiquette n'est pas forcément LA solution ?!

Comme le suggérait Jean-Gabriel, on pourrait envisager de faire une requête dans la base de données pour modifier, non pas une Étiquette qui n'existe pas encore, mais plutôt le résumé de Section ! Tu parles de la 1ère Section du cours... c'est la zéro ou la 1 ?

Imaginons que ce soit la section zéro du cours dont l'ID est 27... ça donnerait :

UPDATE `mdl_course_sections` SET summary ='Mon information' where course='27' and section ='0';

Qu'est-ce que tu en penses ?!
À vérifier comment les valeurs sont "formatées" (les apostrophes semblent ne pas être échappées... mais je n'ai pas tout testé).

À bientôt,
Patrick

Moyenne des évaluations Utile (2)
En réponse à Patrick Lemaire

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Nicolas Thorel,
Avatar Développeurs de plugins
Bonjour Patrick,
L'idée est très intéressante, mais j'ai peur que dans ces 300 cours, il y a déjà de contenu texte que je ne peux supprimer.
Effectivement l'étiquette n'est pas obligatoire.
Et y aurait t il un moyen similaire d'ajouter un bloc HTML avec un contenu spécifique dans un cours  ?

NT
En réponse à Nicolas Thorel

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Bonjour Nicolas,
Désolé de revenir à la charge mais je pense qu'avec la méthode de Christian, tu peux créer une sauvegarde uniquement d'une étiquette. Ensuite, tu l'importes dans tes cours grâce au fichier CSV (méthode bien expliquée par Christian).
Ensuite, avec la méthode que je t'ai détaillée, tu modifies à l'aide d'une série de requêtes créées sous Excel (tu peux concaténer toutes tes requêtes dans une cellule Excel et copier l'ensemble en une seule fois) le contenu de tes étiquettes dans les différents cours (comme pour l'import des étiquettes dans les cours, tu fais un essai sur une ou deux étiquettes pour voir si les modifs sont conformes à tes attentes). Et le tour est joué.
Pour les blocs HTML, on doit pouvoir procéder de la même manière si nécessaire. Il faut juste savoir quelle table de la BDD comprend le contenu HTML (je n'utilise pas de bloc HTML, je ne peux donc pas t'aider plus sur ce point).
Moyenne des évaluations Utile (2)
En réponse à Nicolas Thorel

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Jérôme DEMIAUX,
Avatar Traducteurs

Re,

En mixant tous les éléments précédents et en supposant que ta version (non précisée dans l'énoncé initial 🤬) supporte l'apparition des champs spécifiques pour les cours, le workflow suivant pourrait être jouable.

  • Installation du filtre "Filtercodes" et/ou "Generico" (ils permettent l'élaboration de filtres performants)
  • Mise au point du filtre adéquat, genre {mon nouveau champ}
  • Ajout massif d'un nouveau champ spécifique pour tous les cours via l'action en lots ET ajout de ton bloc HTML qui contient le filtre {mon nouveau champ};
  • Remplissage de ce nouveau champ en BDD, certainement facile puisque c'est une création, les différents ID vont certainement suivre l'ordre inverse de la modification des cours;
  • et hop, le bloc html affiche le contenu de ce nouveau champ. Marche aussi avec une étiquette.
  • En modifiant le filtre, tu modifies l'affichage (style, classe ...) du bloc / étiquette.

J.

Moyenne des évaluations Utile (4)
En réponse à Jérôme DEMIAUX

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Luiggi Sansonetti,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Titulaires du Moodle Course Creator Certificate Avatar Traducteurs
Hello la compagnie

J'allais en effet parler de filtercodes dans un bloc HTML

Je l'utilise de plus en plus et en le combinant avec des champs de cours, c'est tip-top comme on dit 😆

Pour un usage, j'ai la référence de la chaîne slack du cours, et dans le bloc, je rappelle cette référence en lien.
Et hop, dans les cours, il y a automatiquement un bloc HTML proposant le lien direct et adéquat de la chaîne associée au cours...

Plus beaucoup d'autres usages.

Ça pourrait en effet répondre à cette problématique.

En réponse à Jérôme DEMIAUX

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Nicolas Thorel,
Avatar Développeurs de plugins
Ça semble pas mal du tout cette histoire. clin d’œil

Merci à tous !
En réponse à Nicolas Thorel

Re: Import massif d'une étiquette spécifique dans plusieurs cours

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles
Bonjour Nicolas,

Et au final, avez-vous suivi la démarche proposée par Jérôme et êtes-vous satisfait du résultat ?

Christian