Iomad et catégories de cours

Iomad et catégories de cours

par Eric Duplay,
Nombre de réponses : 9

Bonjour,

Je suis en train de tester IOMAD qui permet de gérer différentes entreprises depuis une même installation de Moodle et de permettre à chacune de gérer son propre périmètre sans interagir avec une autre entreprise.

Je rencontre un problème d'affichage des cours en page d'accueil.

Depuis une installation de IOMAD en local, j'ai créé 3 catégories de cours et importé 4 cours créé sous Moodle que j'ai répartis dans ces 3 catégories.

En page d'accueil, j'ai défini comme options  "liste combinée" et "zone de recherche de cours". Il s'affiche donc en page d'accueil la liste déroulante des catégories puis, pour chacune, la liste des cours attachés à la catégorie. Je n'ai pour l'instant utilisé que les fonctions Moodle classiques.

Sous l'administration IOMAD (le dashboard Iomad), je crée une société puis y assigne 2 cours sur 4. Je rafraichis la page d'accueil sous un autre navigateur (aucun utilisateur enregistré) et un message d'erreur apparaît : Erreur de programmation détectée (...) PHP catchable fatal error.

J'arrive néanmoins à afficher la page d'accueil et... la liste des catégories dont les cours sont assignés n'est plus déroulante bien que visible, c'est à dire que dans le bloc au milieu, on voit seulement toutes les catégories mais seulement les liens des cours libres de toute entreprise. Dans le bloc à gauche, en revanche la liste des cours toutes catégories confondues s'affiche bel et bien.

Aucun paramètre n'a été modifié concernant la page d'accueil,

Merci à tous pour vos idées ou pistes...

Par ailleurs, de façon générale, parmi les moodlers qui utilisent Iomad, existe-t-il un retour d'expérience ? Pour l'instant j'avoue peiner à trouver une documentation, des tutos...


Moyenne des évaluations  -
En réponse à Eric Duplay

Re: Iomad et catégories de cours

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Éric,

Bienvenue dans cette communauté  !

Hélas, j'ai peur que nous ne soyons pas les mieux placés pour répondre à ton problème. En effet, ne connaissant pas IOMAD, en y regardant de plus près, il s'agirait d'une version de Moodle permettant, entre autre, une multi-instanciation sur un seul serveur. Le concept, bien que pas nouveau, est intéressant et touche pas mal de contexte. Cependant, il est difficile de savoir ce qui se cache sous le capot. Mais peut-être y aura-t-il ici d'autres personnes ayant tenté l'aventure...

Ce qui inquiète c'est l'erreur rencontrée. Une (ou plusieurs) petite capture d'écran pourrait nous mettre sur une piste.

Ton installation locale tourne sous quel environnement (Windows + Xampp ?). As-tu bien suivi tous les pré-requis techniques ? Pourrais-tu aller faire un tour dans "Administration du site > Serveur > Environnement" et nous dire ce que tu y trouves ?

A bientôt,
Patrick

En réponse à Patrick Lemaire

Re: Iomad et catégories de cours

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles

Bonjour,

En cherchant toujours d'abord une solution simple au lieu d'adopter une solution compliquée (et souvent payante), il est possible d'accorder une catégorie à chaque entreprise et de forcer le tableau de bord comme page d'accueil pour l'utilisateur connecté.

Ainsi, à part la page du site, visible uniquement en non connecté, l'utilisateur ne voit que ses cours dans sa propre catégorie.

C'est la méthode que j'utilise pour affecter provisoirement un "espace" à mes clients différents ne disposant pas encore de leur Moodle.

Seul inconvénient, les enseignants, concepteurs de cours voient tous les inscrits de la plate-forme.

Mais ceci peut sans doute être verrouillé par l'utilisation d'un seul mode d'inscription : Les cohortes.

Ou encore en plus en désactivant certains paramètres du rôle enseignant ou concepteur de cours.

Une petite recherche dans ce sens devrait permettre d'aboutir à un résultat correct sans avoir besoin d'avoir recours à des systèmes annexes complexes.

Daniel

En réponse à Daniel Méthot

Re: Iomad et catégories de cours

par Eric Duplay,

Bonjour Daniel,

Merci pour ta réponse.

J'ai effectivement tenté d'aller au bout de cette démarche en utilisant Moodle "classique" dans un premier temps. En agissant sur les droits, la séparation des utilisateurs et leur visibilité ou invisibilité depuis d'autres gestionnaires fonctionnent effectivement. Cependant il n'existe pas à ma connaissance d'entité "Entreprise" (le champ institution est facultatif et attaché au profil de l'utilisateur) et notre idée est également de rendre visibles tous les cours (en tout cas de ne pas restreindre cette possibilité). Notre objectif est sur une seule installation de Iomad de pouvoir compartimenter chaque gestion des cours car ceux-ci sont attachés à une "entreprise".

Sur Moodle d'après mes tests, le cours est attaché à un enseignant et/ou un gestionnaire mais non à une "institution".

En réponse à Eric Duplay

Re: Iomad et catégories de cours

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles

Bonjour Eric,

On peut ajouter des champs supplémentaires au profil (comme "entreprise") et même les rendre obligatoires.

Mais je ne vois pas au premier abord comment se servir du contenu pour lier les utilisateurs à une catégorie donnée.

Par ailleurs il faudrait que ce champ éventuel supplémentaire soit choisi sur liste déroulante, case à cocher... afin de ne pas risquer de mal orthographier le nom de l'entreprise.

Néanmoins si le temps me le permettait je chercherais à priori toujours des solutions internes à Moodle (ou à la rigueur des plugins référencés) avant d'utiliser des solutions externes souvent complexes à mettre en œuvre.

Bonne chance.

Daniel

En réponse à Patrick Lemaire

Re: Iomad et catégories de cours

par Eric Duplay,

Bonjour Patrick ,

Merci pour ton message !

J'utilise Seven pro 64 bits et wamp 64 bits : php 5.5.12 / MySQL 5.6.17 / Apache 2.4.19

Concernant l'installation de IOMAD en local, j'ai procédé comme suit (j'ai reproduit mes précédentes installations locales de Moodle) :

- Depuis MySQL console : CREATE DATABASE iomad2test DEFAULT CHARACTER SET UTF8 COLLATE utf8_unicode_ci;

- J'ai crée un dossier iomaddata2test externe au dossier www

- depuis Firefox, à partir de http://localhost/IOMAD2TEST/ ou http://localhost/IOMAD2TEST/index.php ou http://localhost/IOMAD2TEST/install.php - ma mémoire me fait défaut mais j'ai accédé sans encombre à l'installation de Iomad via le navigateur

- J'ai renseigné les champs requis : nom d'administrateur, emplacement du dossier data... ce qui a généré un fichier config.php

- J'ai ensuite pu accéder au site local de Iomad et procéder à mes tests

Par contre je n'ai pas procédé aux modifications Settings > Site administration > Server > System paths: Set the paths to du, dot and aspell binaries. Concernant Cron, je n'ai pas apporté de modifications étant sur une version locale. Je vais néanmoins regarder dans le détail la documentation de Moodle à ce sujet. Ceci dit, je ne rencontre pas le bug sur une installation locale de Moodle.


Concernant "Administration du site > Serveur > Environnement" voici en capture écran ce qui s'y trouve :

iomad1

Les autres contrôles présentent un statut : OK

Par contre

iomad2

Concernant le message d'erreur après l'attachement des cours à une entreprises : vu depuis un utilisateur anonyme après un rafraichissement de la page d'accueil

iomad3

Le lien amène sur Moodle mais la page n'existe pas.

Merci pour toute aide, je continue de mon côté de regarder ce qui pourrait amener à ce "bug d'affichage" ou de lecture depuis la base ? Les cours de la catégorie Informatique ne sont pas attachés à une entreprise et peuvent être "déroulés" mais management et langue étant attachés ne sont plus déroulables" dans ce bloc contrairement au bloc de gauche.

iomad4


En réponse à Eric Duplay

Re: Iomad et catégories de cours

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Merci Éric pour ce complément d'informations qui aidera à y voir un peu plus clair. IOMAD est donc basé sur une version 3.0 de Moodle (même si le contraire aurait été étonnant).

Pourrais-tu activer le mode débogage en allant dans "Administration du site > Développement > Débogage" ? Tu peux le positionner sur l'option "développeur", puisque c'est une instance de test. Nous devrions en savoir plus sur ce message d'erreur (en espérant que les détails apparaissent aux anonymes !).

A bientôt,
Patrick

En réponse à Patrick Lemaire

Re: Iomad et catégories de cours

par Eric Duplay,

Merci Patrick.

Alors, à la création d'une entreprise et l'assignation de cours à celle-ci, je n'ai pas pu "reproduire" le bug tel qu'il est apparu la première fois depuis une navigation anonyme. Peut-être parce qu'aucune société n'avait été créée ; alors que là il y en a déjà une existante.

J'ai donc activé le mode débogage et voulu créer une nouvelle société depuis le dashboard Iomad

Un premier message apparaît :

iomad5

La ligne 150 du fichier company_edit_form.php est : $companyTheme = $this->companyrecord->theme;

$companyrecord est une variable de la classe  : protected $companyrecord;

Dans un menu déroulant plus bas, le thème sélectionné est iomadbootstrap

Néanmoins il est possible de créer une entreprise et de l'enregistrer, le message continue de s'afficher

iomad6

Cependant, la société est bien créée et il est possible de lui assigner des cours, toujours depuis le tableau de bord Iomad.

Quand je rafraichis Chrome sans utilisateur enregistré, cette fois-ci il n'y a pas de message d'erreur mais les cours ne sont toujours pas "déroulables" à l'intérieur des catégories :

iomad7

En revanche dès que je clique sur "voir plus" un autre message d'erreur apparaît :

iomad8

Concernant la ligne 695 qui est le message lié à l'exception propagée, il apparaît qu'aucune des conditions n'est remplie

public function get_in_or_equal($items, $type=SQL_PARAMS_QM, $prefix='param', $equal=true, $onemptyitems=false) {

        // default behavior, throw exception on empty array
        if (is_array($items) and empty($items) and $onemptyitems === false) {
            throw new coding_exception('moodle_database::get_in_or_equal() does not accept empty arrays');
        }

Tout ceci me laisse un peu perplexe d'autant que je ne suis pas connaisseur de PHP. Je vais essayer d'aller plus avant dans l'architecture de Moodle/Iomad. Merci pour toute aide qui pourrait m'être apportée.

En réponse à Eric Duplay

Re: Iomad et catégories de cours

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Éric,

Les premières erreurs PHP, de type "Notice", ne sont pas graves et non bloquantes.

Par contre, la seconde est plus sévère. J'ai le même code sur ma 2.7... Ce n'est donc pas une spécificité de OIMAD. Cependant je ne vois pas de quoi il retourne. Peut-être quelqu'un aura une idée ?

Bonne continuation,
Patrick

En réponse à Patrick Lemaire

Re: Iomad et catégories de cours

par Eric Duplay,

Bonjour Patrick,

Merci pour ta réponse et du temps que tu as certainement pris pour reproduire ce bug.

1/ Auparavant juste indiquer que j'ai pu dérouler les catégories depuis Iomad en "trichant" dans le code. C'est à dire que le fichier "coursecatlib.php" qui est dans le dossier lib contient des lignes ajoutées par iomad ayant pour fonction d'empêcher l'affichage de cours non assignés à la société N1 si on est sur le site de la société N1 (c'est logique !) . Ceci dit dans mon cas j'utilise Iomad en local et il est vraisemblable qu'aucune société ne figure dans le contexte. Autrement dit, $companyid (de la table company sous iomad) doit être soit non affectée soit à 0 ce qui entre en incohérence avec les cours assignés à une entreprise donc un $companyid à 1 ou 2, etc. En conséquence les catégories ne s'affichent pas sur cette zone. Ceci dit il s'agit juste de tests en attendant une configuration plus poussée.

2/ Pour le bug d'affichage, je l'ai sur Iomad et non sur Moodle. Sous Moodle je n'ai pas le lien "voir plus". Et pourtant je dois avoir les mêmes paramètres. A ceci près que sous Iomad j'ai des catégories automatiquement créées qui sont Entreprise1 et Entreprise2 dès lors que je crées des sociétés du même nom mais elle restent vides car les cours sont dans des catégories thématiques. Sous Moodle je n'ai aucune catégorie vide. La catégorie "Divers" a été supprimée ou renommée donc toutes les catégories sans exception sont affichées et il n'y a "rien de plus" à voir. Je vais regarder aussi dans le code version Iomad en essayant de reconstituer le chemin d'appel de la fonction.

3/ Sinon j'ai un autre bug sous Iomad qui n'existe pas sous Moodle. Après recherche sur un élément d'un titre de cours, le moteur de recherche de cours arrive à compter le nombre de cours qui porte le nom demandé ou s'en approche. Il indique "Afficher tous les 1" en lien cliquable si une occurrence trouvée. Cependant il ne me retourne rien. Je creuse aussi cette erreur.

iomad9

Merci à tous si vous avez des pistes !

Eric