Bonjour,
Je cherche désespérément dans la doc Moodle comment appeler le logo du groupe de façon dynamique. J'ai repéré ou je devais l'appeler dans mon template pour que l'utilisateur le visualise.
Bonjour,
Je cherche désespérément dans la doc Moodle comment appeler le logo du groupe de façon dynamique. J'ai repéré ou je devais l'appeler dans mon template pour que l'utilisateur le visualise.
Bonjour,
Difficile de vous aider de manière précise si vous ne détaillez pas un peu plus le projet sur lequel vous travaillez. S'agit-il d'un thème que vous développez ou un plugin ? Sur quel type de page essayez-vous d'afficher cette information ?
comme piste potentielle il y a, dans la librairie weblib.php, une fonction print_group_picture() qui pourrait peut-être vous aider mais difficile de savoir si vous pouvez l’appeler sans situer le contexte.
https://github.com/moodle/moodle/blob/89d1238962160c15c7e963b84c0f498bd24d86bc/lib/weblib.php#L2497
Seb
Ou si vous voulez afficher l'image du groupe comme dans les forums ici présents... ?
Bonjour,
Excusez moi pour mon manque de précision.
Je suis sur le thème Eguru. Je pensais le mettre dans le header (header.mustache) quand l'utilisateur est authentifié et qu'il est dans au moins un groupe.
Ca ressemble à ce que tu as fait Luiggi mais j'aimerai l'afficher sur tout le site dès lors que l'utilisateur est connecté et qu'il appartient au moins à un groupe.
La fonction print_group_picture peut s'appeler directement dans le template ?
Merci pour votre aide
Bonjour Sébastien,
Merci pour ta réponse . Ce sont des groupes crées dans des cours. Ca sera donc possible que l'utilisateur soit dans plusieurs groupes portant le même nom.
Idéalement j'aimerai afficher la première image de groupe trouvé.
Est ce que dans le header.php du template je peux tester si l'utilisateur est dans un groupe et si oui appeler la fonction print_group_picture ?
il existe une fonction pour tester l'appartenance à un groupe ?
Je peux appeler la librairie depuis le header.PHP ?
Merci
Bonjour,
J'ai essayé de passer des paramètres statiques correspondant à un groupe existant dans la fonction print_group_picture en associant une valeur img dans le tableau templatecontext depuis le header
Header.php :
require_once($CFG->libdir . '/weblib.php');
$img = print_group_picture(5,6,true,false,false);
$templatecontext = [
'img' => $img,
];
dans le header.mustache j'ai ajouté :
{{img}}
mais rien ne s'affiche.
J'ai testé en passant une chaîne au lieu de la fonction dans le tableau $templatecontext mais idem rien.
Est ce que je procède mal ?
As-tu pensé à passer ta plateforme en mode débogage pour voir les éventuelles erreurs ?
Seb
Merci sébastien.
CA me renvoie :
<br />
<b>Notice</b>: Trying to get property of non-object in <b>/home/www/lib/weblib.php</b> on line <b>2560</b><br />
<!DOCTYPE html>
ca correspond à la fonction d'affichage du groupe.
Bonjour,
Regarde attentivement les paramètres de cette fonction. Tu constateras que le premier est de type objet et dans l'exemple que tu cites, tu lui passes en paramètre un entier.
Par ailleurs, je rebondis sur ta remarque:
Ce sont des groupes crées dans des cours. Ca sera donc possible que l'utilisateur soit dans plusieurs groupes portant le même nom. Idéalement j'aimerai afficher la première image de groupe trouvé.
Comment espères-tu donc choisir quel avatar de groupe affiché si cela concerne potentiellement plusieurs cours qui contiennent chacun plusieurs groupes ?
Du coup, j'avoue ne pas trop saisir l'utilité de la chose. Pourrais-tu nous en dire plus de manière globale sur les objectifs de cet affichage et sur l'organisation "pédagogique" de ta plateforme ?
Seb
Re Sébastien,
J'utilise Moodle comme plateforme de mise à disposition de contenus scormés en B to B pour des clients pro et grand compte sur abonnement (d'une durée d'un an).
Dans cette plateforme, je vais gérer des clients qui vont juste avoir besoin de consulter le contenu et d'autres grands comptes qui vont apprécier avoir une personnalisation notamment avec le logo de leur entreprise + un profil "inspecteur ou statisticien" pour suivre l'apprentissage des salariés.
Les contenus ne seront pas mis à jour régulièrement.
J'utilise pour cela le plugin coupon qui me semble souple car il me permet d'envoyer des coupons (avec une période) et le client les utilise quand il veut en s'occupant lui même de créer son compte.
je gère plusieurs contenus scormés. Un par cours.
Dans chaque cours, pour le "petit" client, je ne m'embête pas avec les groupes. Je génère des coupons.
Par contre, pour les grands comptes, je crée un groupe par cours (donc autant de groupe que de cours par client avec la même image dans chaque groupe) et à cela je leur crée un profil "inspecteur / statisticien".
Mon organisation te semble pertinente ?
Je te remercie pour ton aide sur la fonction. Je vais bien finir par y arriver ;=)
Hello Jérôme,
Salut Sébastien !
Merci pour ton retour. J'avais remarqué que pour les cohortes, je ne pouvais pas gérer de période d'inscription facilement. Le plugin coupon ne proposait pas cette possibilité pour les cohortes. Il le propose uniquement pour les cours.
J'ai pas mal avancé en appelant les informations nécessaires (user, groupe,picture,contextid) depuis le header.php du thème eguru.
Cependant j'ai remarqué que la variable $userid ne renvoyait pas de valeur sur certaines pages de moodle.
J'ai pourtant fait :
global $USER;
$userid = $USER->id;
et j'ai vérifié que mon session cookie path était bien à "/".
La variable globale $USER ne s'appelle pas partout dans Moodle ?
Hello,
Quelles pages sont concernées ?
Salut Seb,
Seul la page url/?redirect=0 renvoie les éléments.
Les autres URL n'arrivent pas à renvoyer le userid :
url/my/
url/user/files.php,
url/mod/scorm/view.php?id=5
url/user/index.php?id=6
Hello Jérôme,
J'ai jeté un œil sur des fonctions de thème que j'avais faites notamment pour la page cours. J'avais créé une fonction dans la librairie du thème (fichier lib.php à la racine du thème) et déclaré la variable globale $USER dans celle-ci :
/** * Return swicthing role button * * @return string HTML */ function theme_cleanupf_rolebutton() { global $DB, $USER, $CFG, $PAGE;
...
...
...
...
}
J'avais ensuite appelé la fonction directement dans mon template PHP de cours (course.php) :
theme_cleanupf_rolebutton();
Dans ce template, ça n'avait pas posé de soucis pour récupérer les infos.
Seb
Merci Sébastien !
Ca marche bien. Je vais peaufiner en intégrant tout dans une fonction et en utilisant l'API pour la base de données.