Déterminer si une ressource est masqué à l'utilisateur

Déterminer si une ressource est masqué à l'utilisateur

par Arnaud MARCELLIN,
Nombre de réponses : 7
Bonjour.
Je cherche un moyen de déterminer les ressources et non masqués d'un cours auquel l'utilisateur est inscrit. j'ai parcouru mod/resource/lib.php mais rien qui ne semble correspondre à mes besoins. Apparemment les ressources sont affichées ou non selon le rôle.

Mes questions :
- la table resource ne contient pas de colonne display, ou est enregistré l'information ?
- existe-il une fonction faisant ce traitement dans une version antérieure à la 1.9 ?
- quelle fonction utiliser si l'on connait le display de la ressource et l'utilisateur afin de déterminer si l'utilisateur voit la ressource ?


Merci sourire
Moyenne des évaluations  -
En réponse à Arnaud MARCELLIN

Re: Déterminer si une ressource est masqué à l'utilisateur

par Patrick Pollet,
Après avoir determiné le cours, par exemple via un appel a get_my_courses () et en balayant les cours renvoyés,
Tu dois utiliser un appel à
//important le true à la fin ! (inclus les invisibles...)
$resources = get_all_instances_in_course("resource", $course,NULL,true);

puis balayer les ressources renvoyées et consulter l'attribut visible

foreach ($resources as $resource) {
if ($resource->visible)
$etat=$course->guest?"publique":"INSA";
else
$etat="NON VISIBLE";
...
}

Le script en piéce-jointe est un exemple de balayage de toutes les ressources d'un site Moodle . Nous l'utilisons pour la synchro nocturne des ressources mises en ligne avec le catalogue éléctronique de la bibliothèque. Il crache en CSV
les infos suivantes :

"N° catégorie" "catégorie" "N° cours" "code cours" "description cours" "auteurs" "N° RPN" "nom RPN"
"lien RPN" "reference RPN" "type RPN" "etat" "TS derniere modif" "Date derniere modif" "resumé RPN"

La colonne "etat" indique si la ressource est publique, visible ou cachée.

A+

Edit:
RPN = Ressources Pédagogiques Numériques.
Ce script fonctionne chez nous depuis Moodle 1.6 et semble toujours OK avec 1.9.1
En réponse à Patrick Pollet

Re: Déterminer si une ressource est masqué à l'utilisateur

par Arnaud MARCELLIN,
J'ai un problème avec cette fonction, apparemment empty($course-modinfo) renvoie true.

je récupère le cours de la manière :

$courses = get_my_courses($user->id);
 
foreach($courses as $course)
{
get_course_informations($course);
}

puis dans une fonction appelée par get_course_informations, je fais :

$ressources = get_all_instances_in_course('resource', $course, NULL, true);

Donc, comment avoir ce champ modinfo ?

merci sourire


En réponse à Arnaud MARCELLIN

Re: Déterminer si une ressource est masqué à l'utilisateur

par Arnaud MARCELLIN,
Personne ne sait pourquoi cela pose problème ?

Merci
En réponse à Arnaud MARCELLIN

Re: Déterminer si une ressource est masqué à l'utilisateur

par Arnaud MARCELLIN,
J'ai finalement utilisé une méthode B, basé sur is_visible.

Dernière question, j'essaie de différencier le traitement, selon s'il y a des résultats ou non.

$quizz = get_modules_in_course('quiz', $course->id);
if(count($quizz) == 0)
{
return NULL;
}

Mais apparemment je ne passe jamais dans le if. Comment puis je tester si une requête est vide ou non ?

Merci.
En réponse à Arnaud MARCELLIN

Re: Déterminer si une ressource est masqué à l'utilisateur

par Patrick Pollet,
Il me semble que comme la plupart des fonctions get_xxx de l'API Moodle, cette fonction renvoie false ou NULL et pas un tableau vide en cas d'echec .

Donc tu devrais faire :

if (!$quiz)) return NULL;

A+