Fonction get_courses

Fonction get_courses

par Pascal Maury,
Nombre de réponses : 0
Avatar Développeurs de plugins

Bonjour,

Je reviens avec un nouveau souci. J'utilise le filtre MENU que j'ai personnalisé.

Le filtre fait des appels à la fonction Moodle get_courses(). Ce filtre étant assez lent à charger, j'avais amélioré les requêtes en précisant les champs à retourner via la fonction get_courses() :

$courses = get_courses('all', "c.fullname ASC", "c.sortorder, c.password, c.enrollable, c.guest, c.category, c.fullname, c.shortname, c.startdate, c.visible, c.id");

au lieu de :

$courses = get_courses('all', "c.fullname ASC");

Or, lorsque je fais cela, je n'obtiens plus que 449 cours au lieu des 536 existants.
Afin de comprendre pourquoi, j'ai fait affiché la requête executée dans la fonction get_courses (en modifiant le fichier /lib/datalib.php) :
SELECT c.sortorder, c.password, c.enrollable, c.guest, c.category, c.fullname, c.shortname, c.startdate, c.visible, c.id, ctx.id AS ctxid, ctx.path AS ctxpath, ctx.depth AS ctxdepth, ctx.contextlevel AS ctxlevel FROM course c JOIN context ctx ON (c.id = ctx.instanceid AND ctx.contextlevel=50) ORDER BY c.fullname ASC

Et j'affiche aussi la taille des tableaux construit dans cette même fonction :

taille du tableau courses = 449
taille du tableau visiblecourses = 448

Si j'execute à la mainla requete SQL en base, j'ai bien 536 résultats...

Si je ne précise pas les champs, voilà la requête executée et la taille des tableaux :

SELECT c.*, ctx.id AS ctxid, ctx.path AS ctxpath, ctx.depth AS ctxdepth, ctx.contextlevel AS ctxlevel FROM course c JOIN context ctx ON (c.id = ctx.instanceid AND ctx.contextlevel=50) ORDER BY c.fullname ASC
taille du tableau courses = 536
taille du tableau visiblecourses = 535

J'avoue ne pas comprendre comment la spécification des champs réduits mon nombre de résultats. Ou alors j'ai trop la tête dedans pour voir ce qui ne va pas ...

Si vous avez une remarque ...

Moyenne des évaluations  -