Voici une petite modif du browser de cours.
Puisque c'est du dev, j'ai déplacé la discussion sur cette branche dans ce forum. Les résultats concluants pourront être placé dans l'autre forum.
L'idée : éviter de modifer le core de Moodle et donc passer par un filtre pour obtenir le même résultat.
Si j'ai le temps, rajout d'un masquage de mes cours / pas mes cours, et identification des cours ou je suis profs.
Plus tard, proposer une solution alternative utilisant le yui.
Voici une première version qui semble fonctionnelle (POUR TESTS SEULEMENT !) et qui reprend la base.
Deux nota :
- il faut intégrer le css dans votre thème (pas encore réussi à lier un fichier css, ça doit être trop tard avec le filtre...)
- la popup ne fonctionne pas encore...
++
Éric
Je profite d'une petite pause dans le MoodleMoon pour te faire part de quelques remarques après le premier test de ce filtre.
Super (pommade) mai s
pourquoi le limiter à la page d'accueil, je réalise qu'il peut être également utile dans un cours pour repartir vers d'autres cours,
serait-il simple de n'afficher dans ce cas QUE les cours de l'utilisateur en cours (répétition audacieuse de cours),
pourquoi l'avoir centré dans le fichier filter.php et non pas dans le thème?
Jérôme.
ps: bizarre, le filtre ne marche pas dans un entête de section ? Est-ce générique à tous les filtres ou spécifiquement à celui-ci.
Sur l'aspect tri, je vais m'y pencher, ça fait partie de mes projets... avec la possibilité d'afficher avec le yui aussi.
Pour le CSS, ben comme c'était plus un essai de concept, j'ai pas totalement paufiné... L'idéal serait un ficchier css basique dans le repertoire du filtre, et, s'il existe, un fichier css du thème... Mais j'ai pas encore réussi... Ca va venir !
++
Éric
Méfiance avec le YUI. Bien qu'il s'agisse d'une tentative visant à obtenir un code fonctionnant parfaitement sur tous les navigateurs, il y a beaucoup de problèmes de compatibilité et on même dire que ça foire un max.
Jérôme.
ps: une indiscrétion de taille, il semblerait que Lyon tienne la corde pour l'organisation du ModleMoot 2009. Tu n'auras aucune excuse cette fois.
Faut pas que ça tombe trop dans les examens, mais ça simplifierait la chose en tout cas !
Bonjour,
Et si cela tombait pendant une période de vacance scolaire pour les lycées cela serrait encore mieux.
@+ Thierry
Ps : Si en plus vous prenez celle de ma zone je pourrais surement venir.
Pour la limite d'exploitation (accueil/page de cours) peut-être faut-il employer un paramètre global configurable dans le admin -> module -> filters.
Reste que pour égaler le code actuel, il faudrait également pouvoir choisir de l'afficher (le menu) avant et/ou après connexion.
Réfléchir aussi à la gestion de la hauteur d'affichage. Ce serait vachement cool d'avoir une hauteur dynamique s'ajustant au contenu.
Dernier point -> .
Jérôme.
PS1: Oui, je sais, je suis exigeant mais coincé dans le train j'ai eu du temps pour réfléchir.
PS2: C'est quasi officiel pour Lyon. La banderole sillonne actuellement la france pour arriver à Lyon (si aucun manifestant ne s'y oppose)
OK pour le paramètre global, l'admin choisis si ce filtre peut être actif ou non sur tous les cours.
Reste qu'il faut informer les utilisateurs sur le comment faire...
Pourquoi pas aussi l'idée avant / après connexion, dans un paramètre global.
La hauteur dynamique, je pense qu'elle est fixée soit dans le css, soit dans le script java (la, je n'y connais rien), soit simplement déduite du nombre d'items à afficher au max dans la liste... faut farfouiller un peu, là...
++
Éric
Justement, elle n'est pas dynamique mais fixée par paramètres CSS dans la feuille de style, d'où un problème d'affichage sur la page d'accueil lors de l'ajout de catégories et un grand vide si tu choisis de rajouter la fonctionnalité sur les pages de cours avec l'option QUE MES COURS (moins nombreux et donc prenant moins de place).
Mais c'est un autre problème, on y réfléchira plus tard.
Jérôme.
Bonjour Eric,
L'idée de passer ce menu en filtre me plait beaucoup, cela devient beaucoup plus simple à installer (on ne touche plus au core).
Je viens donc de faire quelques essais avec les fichiers que tu proposes, mais je n'arrive pas à le faire fonctionner, ni à bien comprendre comment fonctionne le filtre...
Pour l'instant, j'ai placé le dossier "menu" dans le dossier "filter", puis j'ai ouvert l'oeil coté admin moodle -> Modules -> Filtres -> Gestion des filtres.
Malgré cela, je ne vois pas de changement sur la page d'accueil...
Je pense que j'oublie quelque chose, mais je ne vois pas quoi. (un paramètre ?)
Le filtre recherche t-il une chaine de caractère qui contient "[-MENU-]" ?
Si oui, faut t-il ajouter cette chaine quelque part à la main ?
Merci de m'éclairer, ...
PS : Pour la hauteur et la largeur de menu, effectivement, tout est dans le fichier "menu.css" en dur. (#ancre_menu{ width:723px; } et #ancre_menu, #menu, #menu ul { height: 320px; }) Le top serait de passer ces elements dans les paramètres du filtre...
PS2 : J'utilise une version 1.9.1
Il faut glisser la formule magique "[-MENU-]" sur la page d'accueil, dans l'entête de section, dans une étiquette ... afin de faire apparaitre le menu déroulant.
Seul problème la taille de l'espace réservé pour l'affichage des menus.
Merci beaucoup Jérôme,
Avec une étiquette, ça marche très bien effectivement.
J'ai du coup rajouté la fonction que j'avais mise à l'origine et qui tronquait le texte par le milieu quand les titre de cours trop long.
J'ai aussi remis les liens vers les popups (en commantaire dans la fonction courses) car cela marche très bien de mon coté.
Je pense que l'on doit pouvoir faire passer le paramètre de hauteur dans l'appel du menu [-MENU(hauteur)-]...
Mais l'idéal serait de le faire calculer automatiquement.
hauteur = taille du texte en pixel * nb de lignes maxi
Y'a surement à creuser de ce coté... des idées ???
Faut récupérer la hauteur du texte et calculer le nb maxi de lignes....
Éric
Il en reste à faire, mais ça fait un problème de moins...
Éric
Ouais, ça commence à me plaire ...
une option tous les cours / mes cours ???
En fait la hauteur, c'est pas trop génant, on pourrait même imaginer seulement la présence d'un bouton qui lors du survol affiche en surimpression ce menu (ce qui est pratiquement le cas actuellement). On ne perd ainsi aucune place.
Normalement fonctionnel, mais sans l'ajout des futures possibilités :
- distinction cours où on est enseignant ou étudiant
- ne voir que mes cours
Éric
- Distingue les cours ou je suis étudiant, des cours ou je suis enseignant.
- Non connecté : vois tous les cours
- Connecté, vois seulement mes cours
- Renommage du fichier CSS, avec quelques adaptations.
Éric
- L'appel en page d'accueil ne marche pas toujours alors que les valeurs du cache sont paramétrées à zéro; appel par [-MENU-], je continue à chercher pourquoi ça ne marche pas ...
- une fois connecté en tant qu'utilisateur lambda, je vois TOUS les cours, avec des styles différents mais je vois bien TOUS les cours.
Pour moi, ce n'est pas gênant, mais cela pourrait être une option : on affiche tous les cours, où seulement SES cours [-MENU(all)-] vs [-MENU(only)-] ...
Essaye de mettre un espace avant [-MENU-]
Et je ne comprend pas ce qui ne marche pas alors : il s'affiche, mais pas correctement, ou il ne s'affiche pas ?
Éric
Impeccable, ça marche bien avec l'espace devant.
Reste qu'une fois connecté en tant qu'utilisateur lambda, je vois TOUS les cours, avec des styles différents, mais je vois bien TOUS les cours, ceux auxquels je suis inscrits mais aussi les autres ...
D'où l'idée d'une option : on affiche tous les cours, où seulement SES cours [-MENU(all)-] vs [-MENU(only)-] ...
Restera à le multilinguer, et à mieux commenter le code pour les futurs développeurs...
Et faut que j'arrive à comprendre pourquoi ça marche quand on met un espace devant, mais pas si pas d'espace devant... ou alors, je le feinte...
Et enfin un test de l'URL pour éviter l'emploi de deux "?"...
Éric
Pas grand chose de rajouté en fait, le but était de l'implémenter sans modifier le core de Moodle, et par l'utilisation de filtre, ça fonctionne.
- appel du menu par un filtre
- séparation du css pour pouvoir l'implémenter dans tes différents thèmes
- différenciation des cours ou tu es étudiant des cours ou tu es enseignant
- affichage de tous les cours ou mes cours seulement
Éric
Bon, je suis de plus en plus près de ce que je voulais...
Je vous laisse essayer...
- multilangue
- css dans theme
- bouton : tous les cours / mes cours seulement
- utilisateur classique, les catégories vides ne s'affichent pas
- gestionnaires de cours : les catégories vides apparaissent
- distinction (css) sur les cours visibles ou non
- distinction du statut dans le cours (par un icone)
++
Éric
Merci Eric mais je sais installer un bloc, un thème, mais un filtre...non.
Après cela, on trouve en page d'accueil la liste des cours d'une plate-forme sous forme de liste déroulante ?
Daniel
Je te conseille d'attendre un peu, j'ai eu une mauvaise surprise sur ma plateforme de prod, et je n'ai pas encore résolu de problème.
Pourtant, tout fonctionne impec sur ma plateforme de test... ????
Sinon, pour installer un filtre :
- copier le répertoire (menu dans ce cas) dans moodle/filter
- sur moodle, aller dans administration > modules > filtres
- activer le filtre
- si besoin (pas dans ce cas), activer les paramètres du filtre
Mais... Encore une fois, c'est une bêta, donc pas en production ! Surtout que ça déconne...
Mais si tu la teste, merci de me faire un retour que je puisse cerner un peu mieux le soucis...
++
Éric
J'en étais resté sur les tests de la version beta5 et globalement tout roulait.
Ça marche impec sur mon poste de dev, par contre, sur mon site de prod, je n'ai que la première catégorie qui s'affiche... et le décompte des lignes ne fonctionne pas.
Je vais essayer de creuser un peu pour trouver le soucis...
++
Éric
Tout fonctionne bien.
Les titres des cours sont un peu tronqués... trop ? Pas grave néanmoins.
En tout cas voilà des procédures d'installation comme je les aime...
Merci
Daniel
Tu as essayé avec plusieurs utilisateurs (avec des profils différents) ?
Les catégories et cours s'affichent bien comme il se doit ?
Le cadre s'adapte bien aux nombre de lignes maxi ???
Éric
Je viens de l'installer sur ma plate-forme principale...
Je vais faire des tests aujourd'hui en me loguant sous deux ou trois profils différents..
Daniel
Encore une beta pour du TEST (y'a des indications parasites qui s'écrivent, mais c'st pour le dév.).
J'ai un peu corrigé mon code, mais j'ai un soucis sur ma boucle de la catégorie 0 qui ne boucle pas...
Enfin, sur mon poste de test, elle fait bien son travail, mais sur ma prod, non, et j'arrive vraiment pas à comprendre pourquoi...
Elle boucle les sous catégories de 0, mais pas sur 0.
Si un dev pouvait jeter un oeil et me dire si qqch lui saute aux yeux... ???
MErchi !
Éric
Enfin...
Je fignole et fais de vrais tests, et je vous donnerais le résultat...
++
Éric
Les seuls cours invisibles étaient ceux qui étaient encore cachés... normal.
J'attends donc ta version définitive.
Merci encore pour ton travail, car au niveau de l'installation c'est à la portée d'un nul comme moi
Daniel
Moi, après plusieurs essais, c'est exactement ce que je veux, et je n'ai pas relevé de problème.
J'ai juste imposé la redirection sur la page d'accueil quand on clique sur le switch voir mes cours / tous les cours.
Ça posait un problème autrement...
J'attends vos retours voir s'il persiste des erreurs...
Éric
ligne 90
foreach ($cats0 as $cat) {
if ($categories[$cat->id]->hascourses) {
$maxi++;
}
}
++
Daniel
Ca sera vos retours qui transformeront ou non cette version beta en version définitive.
Pour moi, ça roule, c'est tout à fait ce que je voulais, donc reste à voir avec une utilisation plus intensive et dans d'autres configurations ce que ça donnera...
Éric
Sauf que je ne modifie pas le fichier php.
Je ne me sens pas assez sûr pour ces manips...d'informaticiens...
Je téléchargerai donc la version complète ultérieurement.
Daniel
Faut pas avoir peur, tu gardes toujours l'original au cas ou, mais tu ne risque pas grand chose...
Mais voici tout de même le fichier corrigé...
++
Éric
C'est vrai que l'on touche au but.
Je note cependant :
- le fichier de langue FR présente quelques incohérences d'encodage et une syntaxe bizarre sur quelques clefs
- Idem sur le fichier help.php
C'est à titre d'exemple, car j'ai également modifié le texte pour qu'il corresponde à mon site, donc fais attention ...
Deux choses :
- Le nombre de lignes de la fenêtre = le nombre de catégories de premier niveau (et non pas le nombre maxi de cours d'une catégorie)
- Plus simple, courtcircuiter la tronquature des libéllés, autrement dit par quoi remplacer ".shorten_text($course->fullname,21,true)" pour avoir seulement le fullname.
- comme tu connais par coeur ta création, cela te sera peut être très facile (surtout ne pas passer trop de temps).
- c'est le mois d'août et il fait très chaud
Dans cette version, l'appel se fait par [-MENU(longueur_Item)-] ou longueur_Item va représenter le nombre de caractère maximal de l'intitulé de la catégorie et/ou du cours. Une valeur de 200 par défaut remplace les valeurs inférieures à 10.
Le pourquoi :
- Dans mon institution, le Directeur des études veut l'intitulé complet, même si cela occupe plusieurs lignes, afin de coller avec les documents officiels
- On devance l'utilisation du filtre dans un bloc et/ou sur des pages avec une place réduite.
left:-271px
ou remplacer -271 par une valeur allant de 0 à 10 (au choix de l'artiste).
Le menu des cours va alors venir en surimpression de la page d'accueil, amusant et permettant un gain de place non négligeable.
Du coup, on a vraiment besoin de ne calculer seulement que le nombre de catégories (ou cours) présents au premier niveau, d'où ma demande du post précédent (point 1).
La boucle est bouclée.
MODIF: pour ceux qui veulent voir ce que cela donne sur un bloc RV sur http://mood.archi-e.org mais les invités ne peuvent (encore) rien faire.
Nous venons de migrer en 1.9.2+ en production, et j'ai utiliser le filtre pour le Browser. Aucun problème pour l'instant, c'est fiable et ça marche, et c'est vrai que c'est plus simple à installer et à maintenir pour la suite. Excellent pour ce qui est de la hauteur dynamique aussi !
Je l'ai légèrement modifier, notamment pour ce qui concerne la troncature. J'ai remis ma fonction d'origine car chez nous, il était souhaité une coupure par le milieu pour les noms trop long...
Nous avons aussi mis la vue de tout les cours par défaut lorsqu'on est connecté, mais avec toujours la possibilité de filtrer ensuite...
Pour voir le résultat : https://nte.gemtech.fr/campus/index_formation.php?id=114
Encore merci Eric pour ces améliorations !
Kevin
Curieux que je suis, j'ai été voir le résultat obtenu par cette fameuse fonction de troncature et je m'aperçois qu'elle présente le même petit défaut que chez moi, à savoir l'apparition de caractères non UTF8 dans le retour de la fonction (shorten_text ????) mais seulement lorsque la troncature s'effectue sur un caractère spécifique à notre alphabet é, à è, ç ... (et encore pas toujours)
Un début d'explication ??
Jérôme.