image: Insérer une image dans une question

definir_dossier.image.moodleR Documentation

Insérer une image dans une question

Description

Ces fonctions permettent de créer des liens vers des images dans les questions Moodle (texte, mais aussi réponses).

Usage

definir_dossier.image.moodle( URL, local = FALSE, ajouter = TRUE,
                              silencieux = FALSE )

lier_image.moodle( nom.image, largeur = -1, hauteur = -1,
                   description = NULL, interne = FALSE )

coder_image.moodle( nom.image,
                    dossier.image = get( "dossier.images",
                                         envir = SARP.Moodle.env ) )

Arguments

URL

L'URL du dossier ou de l'activité Moodle contenant les images à lier. Voyez les détails pour plus d'information. Ce doit être un vecteur de type character, ne contenant qu'un seul élément.

local

Précise si l'URL indiquée est locale (TRUE) ou sur le serveur Moodle (FALSE).

ajouter

Pour une URL locale, indique elle doit être ajoutée à la liste des dossiers de recherche des fichiers (TRUE) ou remplacer cette liste (FALSE).

silencieux

Si TRUE, les messages indiquant les URL enregistrées sont supprimés.

nom.image

Le nom du fichier contenant l'image. Si l'image est externe au fichier XML, ce doit être le nom tel qu'il apparaîtra dans le dossier moodle : attention aux conversions de caractères que peut faire Moodle lors de l'import d'un fichier... Ce doit être un vecteur de type character contenant un seul élément.

dossier.image

Le nom du dossier contenant l'image, en local.

largeur, hauteur

Les dimensions d'affichage de l'image dans la question (équivalent des champs height et width de la balise <img>). Seules les dimensions numériques, finies, positives sont prises en compte. Toutes les autres valeurs sont ignorées et le champ correspondant n'est pas créé dans le code HTML. Ces deux valeurs doivent être des vecteurs numériques contenant un seul élément.

description

Un vecteur de chaîne de caractère, ne contenant qu'un seul élément. S'il existe, ce texte sera utilisé comme description textuelle de l'image (champ alt, fortement conseillé).

interne

Indique si l'image est déjà sur Moodle (FALSE) ou si elle est incluse dans le fichier XML (TRUE). Dans le premier cas, l'URL de base doit avoir été définie par definir_dossier.image.moodle (voyez les détails, ci-après).

Details

La fonction lier_image.moodle crée une balise HTML <img> avec une URL permettant de trouver l'image. Cette URL est obtenue en concaténant une racine et le nom du fichier image indiqué.

Pour une image extérieure au fichier XML, la racine, définie avec la fonction definir_dossier.image.moodle, peut être n'importe quel schéma d'URL valide. Le plus souvent, ce sera soit une URL vers un site externe qui contient les images soit, encore plus fréquemment, une URL référençant l'image dans Moodle.

La méthode la plus simple pour obtenir cette racine de l'URL est la suivante :

  1. Créez une activité « Dossier » dans Moodle, cachée aux utilisateurs.

  2. Dans ce dossier, importez la ou les images, puis enregistrez.

  3. Affichez le contenu de ce dossier, comme un utilisateur.

  4. Affichez le code source de la page HTML correspondance (Ctrl-U avec Firefox)

  5. Dans ce code source, repérez le nom d'une image, dans un élément <img src="">. Ce nom devrait ressembler à https://votre.site.moodle/pluginfile.php/00000/mod_folder/content/0/votre_image.jpg?forcedownload=1, où 0000 est un nombre quelconque qui identifie ce dossier dans la base Moodle.

  6. Mémorisez cette URL et utilisez-la comme base:

    definir_dossier.image.moodle("https://votre.site.moodle/pluginfile.php/0000/mod_folder/content/0/" ) 

Toutes les images situées dans ce dossier (au moment de l'import du fichier XML ou ajoutées ultérieurement) sont alors directement utilisables dans la fonction lier_image.moodle, en indiquant juste leur nom.

Il est aussi possible d'inclure l'image dans le fichier XML. Pour cela, précisez interne = TRUE lors de l'appel à lier_image.moodle. Lors de la création de la question, les balises ainsi générées seront identifiées et les images encodées dans le fichier XML, avec la fonction coder_image.moodle. Attention cependant, les chemins d'accès locaux étant perdus, les fichiers contenant les images doivent se trouver dans le répertoire de travail au moment de la création de la question. Il est cependant possible d'indiquer un ou plusieurs dossiers locaux d'images différents, avec definir_dossier.image.moodle, en précisant local = TRUE. Si un fichier correspondant à l'image est trouvé dans plusieurs de ces dossiers, seule le premier est utilisé avec un avertissement. Les dossiers sont cherchés dans l'ordre d'ajout à la liste des dossiers de recherche, le dernier ajouté étant exploré en premier; un appel à definir_dossier.image.moodle pour un dossier déjà dans la liste le replace en haut de la liste. La liste des dossiers peut être remplacée par un seul dossier avec l'option ajouter = FALSE de definir_dossier.image.moodle.

Value

La fonction lier_image.moodle renvoie une chaîne de caractère qui contient le code HTML créé. Cette chaîne peut ensuite être utilisée, directement ou après concaténation avec d'autres éléments, dans la constitution des textes ou des réponses de n'importe quelle question moodle.

La fonction coder_image.moodle renvoie une chaîne de caractère qui contient le code XML permettant d'intégrer l'image dans le fichier XML, y compris son encodage en base 64. Cette chaîne peut ensuite être utilisée dans la constitution des élements d'une question moodle. Attention cependant, savoir où le mettre dans le fichier XML n'est pas trivial: normalement, l'utilisation de cette fonction ne devrait pas être nécessaire, si lier_image.moodle a été utilisée correctement.

Attention

Vous devez appeler au moins une fois la fonction definir_dossier.image.moodle pour pouvoir ensuite lier des images externes au fichier XML.

Au moment de la création du fichier XML, il n'y a aucun moyen de vérifier que l'URL indiquée est correcte...

Astuce

Pour importer plusieurs images en une fois, vous avez tout intérêt à les regrouper dans une archive au format zip, que vous décompresserez après l'avoir importée dans le dossier moodle ciblé.

Author(s)

Emmanuel Curis emmanuel.curis@parisdescartes.fr

See Also

inserer_formule.moodle pour insérer une formule mathématique à l'aide d'un code latex; inserer_SMILES.moodle pour insérer une formule chimique à l'aide d'un code SMILES.

Examples

## Not run: 
# Commencer un nouveau questionnaire
q <- debuter_xml.moodle( "exemple.image" )

# On crée une image quelconque
png( "essai.png", width = 640, height = 400 )
qqnorm( rnorm( 20 ), pch = 19 )
dev.off()

# On pose une question là-dessus
vrai_faux.moodle( paste0( "Le graphe ci-dessous est un diagramme de Henry",
                          "<br />\n",
                          lier_image.moodle( "essai.png", interne = TRUE ) ) )

# On termine le questionnaire
finir_xml.moodle( )

# Importez le fichier exemple.image.xml dans Moodle pour voir le résultat...
print( "Importez le fichier exemple.image.xml dans Moodle pour voir le résultat..." )

# Le code XML...
coder_image.moodle( "essai.png" )

## End(Not run)

SARP.moodle documentation built on June 8, 2023, 6:37 a.m.