Ces fonctions permettent de créer des liens vers des images dans les questions Moodle (texte, mais aussi réponses).
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 ) )
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.
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.
Précise si l'URL indiquée est locale (TRUE
) ou
sur le serveur Moodle (FALSE
).
Pour une URL locale, indique elle doit être ajoutée à
la liste des dossiers de recherche des fichiers (TRUE
) ou
remplacer cette liste (FALSE
).
Si TRUE
, les messages indiquant les URL
enregistrées sont supprimés.
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.
Le nom du dossier contenant l'image, en local.
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.
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é).
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).
Emmanuel Curis emmanuel.curis@parisdescartes.fr
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...
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é.
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 :
Créez une activité « Dossier » dans Moodle, cachée aux utilisateurs.
Dans ce dossier, importez la ou les images, puis enregistrez.
Affichez le contenu de ce dossier, comme un utilisateur.
Affichez le code source de la page HTML correspondance (Ctrl-U avec Firefox)
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.
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
.
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.
if (FALSE) {
# 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",
"\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" )
}
Run the code above in your browser using DataLab