Beiträge von Valery Fremaux

C'est rien de le dire... je suis à la course pour terminer mes contribs du MoodleMoot... avec dix autres livrables à produire pour la fin de la semaine... mais au programme de mes prochaines vacances ???? zwinkernd

On va examiner ça en effet. Si le module peut s'étendre progressivement à résoudre tous ces types de problèmes à sortie multiple (au lieu d'une sortie unique qui est une "note" du carnet de notes), pourquoi pas ?

Le succès de Flashcard sur la même démarche (implémenter un modèle didactique conceptuel en une activité concrète) peut nous conforter dans la direction à suivre.... 

"Mais peut-être que c'est moi qui m'y prends mal (à l'envers)?",

Non, non Joseph, maios peut être y mettais tu plus que ce qu'il y avait dans l'idée de départ...

1.1 : C'est une amélioration faisable, mais c'est vrai que ça sort du cadre : dans ce que tu exposes, ce sont précisément des catégories différentes : bordélique, désordonné, moyen, ordonné, méthodique, obsessionnel... et les questions sont des entrées qui permettent de proposer une "proposition" qui correspond à chaque résultat possible. Apparemment tu voudrais considérer une Catégorie Magtest comme un classement de types de résultats pour faire un test multiple, si j'ai bien compris. Le magtest est pour l'instant un petit module à usage unique (et bien modeste) qui gère un seul test en effet.

1.2 : ne pas mettre toutes les réponse : Ne répond pas au modèle de ces testounets "Science et vie Junior" ou "Biba"... le problème serait qu'alors certaines questions posées n'apportent pas de réponse pour un certain résultat... ça peut être génant, mais il faudraut que ce besoin soit confirmé et on pourrait libérer le contrôle...

2.1 à corriger en effet (doit être un ch'ti bug)

2.2 Le magtest se remet à zéro sur réinitialisation du cours. Comme cette réinitialisation est paramétrique, je ne vois pas trop l'utilité de rajouter le cas d'usage explicite dans le magest lui-même.

2.3 C'est normalement le style.php qui le fait à partir de deux classes "winner" et "looser", Il faut que je contrôle pour tous les navigateurs... (expérimenté sur IE), mets en principe en gras la catégorie victorieuse.

2.4/2.5 Corrigé depuis peu mais je vérifie...

En tout cas l'input est toujours bien utile... zwinkernd

Hi All,

Here is a small solution that allows transmitting custom profile fields of a roaming user.

We focus here a uniform MNET implementation in which nodes are belonging to the same operator and replicate all or part of the custom fields added to the user profile.

This can also be of some use for networks in which administrators agree on some field semantics.

Basically we consider that the shortname of the field mostly defines a rough semantic group that makes possibility of transfer consistant in a majoprity of cases. The following solution DOES NOT provides optionality switching, wich might be a better choice in the general case.

The solution is quite simple and needs only reconsidering two segments of the auth/mnet/auth.php library.

The principle is that we add provision to the user_authorise XML-RPC call for collecting user custom values, and aggregated them to the transmitted user profile as profile_field_<fieldname> addtional params.

At the other end (confirm_mnet_session()), we capture those fields and try to detect a matching semantic in the landing platform (based on matching shortname, though ignoring category concerns).

If a field is know with that name, that most probably induces semantic should match, we transfer the value to the localuser profile and update (or insert) a field data adequately.

In user_authorize(...) (auth/mnet/auth.php)

        if (!empty($user->picture)) {
            $imagefile = make_user_directory($user->id, true) . "/f1.jpg";
            if (file_exists($imagefile)) {
                $userdata['imagehash'] = sha1(file_get_contents($imagefile));
            }
        }
       
        /// get user's custom fields and aggregate them to the user profile
        $sql = "
            SELECT
                f.shortname,
                d.data
            FROM
                {$CFG->prefix}user_info_field f,
                {$CFG->prefix}user_info_data d
            WHERE
                d.userid = {$mnet_session->userid} AND
                f.id = d.fieldid
        ";
        if ($profilefields = get_records_sql_menu($sql)){
            foreach($profilefields as $fieldname => $fielddata){
                $userdata["profile_field_{$fieldname}"] = $fielddata;
            }
        }       

        $userdata['myhosts'] = array();
        if($courses = get_my_courses($user->id, 'id', 'id, visible')) {
            $userdata['myhosts'][] = array('name'=> $SITE->shortname, 'url' => $CFG->wwwroot, 'count' => count($courses));
        }

In confirm_mnet_session(...) (auth/mnet/auth.php)

            if($key == 'myhosts') {
                $localuser->mnet_foreign_host_array = array();
                foreach($val as $rhost) {
                    $name  = clean_param($rhost['name'], PARAM_ALPHANUM);
                    $url   = clean_param($rhost['url'], PARAM_URL);
                    $count = clean_param($rhost['count'], PARAM_INT);
                    $url_is_local = stristr($url , $CFG->wwwroot);
                    if (!empty($name) && !empty($count) && empty($url_is_local)) {
                        $localuser->mnet_foreign_host_array[] = array('name'  => $name,
                                                                      'url'   => $url,
                                                                      'count' => $count);
                    }
                }
            }

            // capture profile fields, check if corresponding entry is defined and update data
            if (preg_match('/^profile_field_(.*)/', $key, $matches)){
                $fieldname = $matches[1];
                if ($field = get_record('user_info_field', 'shortname', $fieldname)){
                    $datum->fieldid = $field->id;
                    $datum->userid = $localuser->id;
                    $datum->data = $remoteuser->{$key};
                    if ($oldrecord = get_record('user_info_data', 'fieldid', $field->id, 'userid', $localuser->id)){
                        $datum->id = $oldrecord->id;
                        update_record('user_info_data', $datum);
                    } else {
                        insert_record('user_info_data', $datum);
                    }
                }
            }

            $localuser->{$key} = $val;
   

Mittelwert:  -
Tu as absolument raison de poser le problème en ces termes :

Il n'existe aujourd'hui aucune proposition industrielle d'un ENT sur base de Moodle. Pour être en train de tourer autour du problème, et étant confronté exactement au problème d'aider à maintenir le SI de certains Lycées face à l'arrivée des ENT académiques (en fait, il s'agit de trouver le point de complémentarité qui permette une sortie politiquement correcte), j'ai trouvé qu'en plus, un certain nombre de documents dont le Livre blanc des i-Applications verrouille assez fortement les dossiers technologiques sur J2EE, ce qui exclut de fait notre techno préférée.

Le problème de l'export SCORM dans Moodle a souvent été vu comme une possibilité de "fuite des contenus" d'un Moodle vers autre chose.

Moodle ne peut donc actuellement pas être un outil "de source", mais doit être encore pour un certain temps vu comme une plate-forme de mise en oeuvre de la pédagogie. (je dis ça mais la première chose que j'ai faite est de m'en servir comme outil auteur !).

Un export SCORM des ressources et des contenus statiques ne semble pas impossible, mais la programmation de cet export est lourde et ne représente pas un intérêt structurel pregnant.

La question des ENT est de savoir lesquels vont implémenter des services pédagogiques dignes de plates-formes d'eLearning complètes. Je travaille en contact avec Argos (Toulouse) et Scolastance (Strasbourg). Nous devons régler le problème générique du raccordement SSO/CAS + Identité unifiée de Pairformance et des ENT "en général" ce qui nous conduit pour une solution générique de raccordement ENT <-> Moodle pour Septembre.