Développement de Moodle

Plugin pour information utilisateur basique

 
Avatar olivier dechepy
Re: Plugin pour information utilisateur basique
 

Je ne comprends pas le sens de votre remarque. 


J'ai je pense clairement indiqué ce que je veux obtenir : récupérer dans une balise par exemple <span id="userdata" data-userid="x" data-user="nom prenom"></span>,  qui soit accessible depuis TOUTE page de Moodle pour un utilisateur connecté ou simplement générer un cookie avec ces informations.

Dans ma question, c'est la seule information dont j'ai besoin, je n'ai pas besoin de modifier des donnée, d'afficher quoi que ce soit, juste pouvoir passer au html (ou au js) l'id et le nom/prénom de l'utilisateur depuis le php ($USER). 


Puisque $USER n'est pas exposé (via cookie ou autre) coté client, ma demande est donc quelle est la méthode la plus simple pour récupérer ces informations utilisateur (et donc ne pas utiliser un plugin existant qui me les fournirait mais qui fait aussi le café)


 
Moyenne des évaluations  -
Avatar Nicolas Martignoni
Re: Plugin pour information utilisateur basique
DéveloppeursDéveloppeurs de pluginsDocumentation writersMoodleurs particulièrement utilesTesteursTraducteurs

Le sens de ma remarque : vous voulez récupérer ceci pour en faire quoi ? Ou encore : que voulez-vous obtenir in fine ? Ou encore : qu'est-ce que l'utilisateur verra au bout de votre processus ?

Comme ça on pourrait peut-être vous aiguiller vers un solution adéquate.

 
Moyenne des évaluations Utile (2)
Avatar olivier dechepy
Re: Plugin pour information utilisateur basique
 

Je suis désolé, mais j'avais bien compris ce que vous vouliez dire, mais je ne comprends pas le pourquoi de votre question. il s'agit d'une question technique précise, qui n'a rien à voir avec la finalité de l'utilisation de cet affichage : Je peux afficher cette information juste parce que j'ai envie d'apprendre à faire une chose simple (afficher ces informations) avant de faire des choses plus compliquées, parce que c'est une première étape d'un projet, ... bref, en quoi savoir pourquoi ou pour quoi j'en ai besoin n'a je pense aucun rapport avec ma question qui, je pense, est dans le bon forum (développement) et répond au règles du forum.


Comment exposer (côté client) l'id de l'utilisateur connecté ($USER) quelle que soit la page sur laquelle il est connecté ?

Pour vous rassurer sur la dernière partie de votre réponse : je vais creuser toutes les solutions ou pistes que quiconque pourra me donner, ça sera à moi de déterminer si elles sont trop complexes pour le besoin ou pas.


Cordialement

 
Moyenne des évaluations  -
C'est moi :-)
Re: Plugin pour information utilisateur basique
Documentation writersMoodleurs particulièrement utilesTesteursTraducteurs

Bonjour Olivier,

Tu peux éventuellement regarder le bloc Login/User info ; en le forçant à s'afficher sur toutes les pages, cela devrait répondre à l'expression initiale de ton besoin.

Mais comme le disait Nicolas, il est à mon sens très important de savoir ce que tu souhaites obtenir réellement au final !

Sans cela, il n'y a guère de motivation à essayer de répondre à une problématique, sans voir l'intérêt qu'il pourrait y avoir derrière...

Séverin

 
Moyenne des évaluations  -
Avatar Mathieu Domingo
Re: Plugin pour information utilisateur basique
 

Salut,

Je ferais un plugin local qui modifie le header.

Lien vers la doc : https://docs.moodle.org/dev/Local_plugins

Et concretement ce qu'il faut faire si la doc n'est pas assez claire :

Dans le dossier moodle/local, créer un dossier ayant pour nom le nom de ton plugin (je vais utiliser "adduserinfo").

Il faut un fichier version.php :

<?php
defined('MOODLE_INTERNAL') || die;

$plugin->version  = 2018120500;
$plugin->requires = 2017120500;  //mettre la bonne version j'ai enlevé un an a la date d'aujourdhui..
$plugin->component = 'local_adduserinfo';        // Il y a un formalisme précis "type de plugin _ nomduplugin"
$plugin->maturity = MATURITY_STABLE;
$plugin->release  = '0.1';

Ensuite il faut un fichier lib.php :

<?php
function local_adduserinfo_render_navbar_output()  //debut nom du plugin et ensuite le renderer que l'on veut surcharger.
{
    global $USER;
    return '<span id="userdata" data-userid="'.$USER->id.'" data-userfirstname="'.$USER->firstname.'" data-userlastname="'.$USER->lastname.'"></span>';
}

Il faut ensuite crée un dossier "lang", puis créer dedans un dossier "fr" et un dossier "en", puis crée dans fr et dans en un fichier local_adduserinfo.php qui contient :

<?php
$string['pluginname'] = 'Add user info';

Bon courage,

Mathieu

 
Moyenne des évaluations Utile (1)