Réduire les blocs, pour les utilisateurs

Réduire les blocs, pour les utilisateurs

par Séverin Terrier,
Nombre de réponses : 15
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour à tou(te)s,

on me demande de "forcer" une modification, pour les utilisateurs d'une plateforme.

Il s'agit de "réduire" les blocs fixes présents sur la page Mon Moodle, pour ne laisser que leur titre visible...
... et cela ne doit s'appliquer qu'à certains blocs.

Si quelqu'un sait dans quelle table je dois aller modifier quel champ, ça m'intéresse...

Merci d'avance.
Séverin

Moyenne des évaluations  -
En réponse à Séverin Terrier

Re: Réduire les blocs, pour les utilisateurs

par Jérôme DEMIAUX,
Avatar Traducteurs
J'ai pas de réponse, mais quel est l'intérêt de n'avoir qu'un titre de bloc ?
Genre, " les news" mais les news ne sont pas visibles ? ou "mes cours" et ne pas voir les cours ?????
En réponse à Jérôme DEMIAUX

Re: Réduire les blocs, pour les utilisateurs

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Ah, ça, je ne saurais malheureusement pas te l'expliquer, car ce n'est pas mon choix...
... peut-être simplement avoir moins de bloc visibles entièrement, pour ne pas trop surcharger la page, et que ceux restant visibles le soient plus, du coup.
En réponse à Séverin Terrier

Re: Réduire les blocs, pour les utilisateurs

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Hello Séverin,

Je te suggère d'expliquer à la personne qui te fait cette demande qu'elle est stupide (la demande, pas la personne, enfin on espère).wink

Tout l'intérêt des blocs que l'on peut déplier ou replier à volonté c'est justement leur système de dépliage/repliage. En plus, c'est un réglage propre à chaque utilisateur, pas question d'mposer quoi que ce soit au niveau de la plateforme.

Joseph

Moyenne des évaluations Utile (2)
En réponse à Joseph Rézeau

Re: Réduire les blocs, pour les utilisateurs

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Salut Joseph,

je comprends tout à fait ta réflexion, d'autant que je pense que j'aurais fais la même pour quelqu'un d'autre...
... mais il y a des décideurs qui décident ! (Sans forcément demander/tenir compte des avis)

Je connais bien le fonctionnement des blocs. La différence serait que, par défaut, un certain nombre de blocs seraient repliés.

Séverin
En réponse à Séverin Terrier

Re: Réduire les blocs, pour les utilisateurs

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour,

bon, pas de réponse, je vais donc le faire moi-même sourire clin d’œil

Je pensais que l'état des blocs (déplié/visible ou plié/titre uniquement) était stocké dans la base de données interne de Moodle, pour chaque utilisateur.
J'ai essayé de chercher dans différentes tables, sans rien trouver de probant triste

Je pensais alors que le choix d'affichage déterminé par les réglages de l'administrateur, via le mode édition de la page d'accueil, ou par les blocs fixes de la page "Mon Moodle" détermineraient l'affichage par défaut des utilisateurs. Ou bien que les propres choix de l'administrateur pourraient servir de "modèle" aux autres utilisateurs, mais il n'en est apparemment rien...

J'ai essayé de faire un vidage complet de la base de données interne de Moodle, avant et après modification de l'affichage de certains blocs, et je n'ai noté aucune différence !
Donc, manifestement, rien n'est stocké en BDD interne.

J'ai par contre essayé, en utilisant plusieurs navigateurs, en même temps, et avec le même utilisateur (non administrateur), de voir ce qui se passait.

J'ai constaté que chaque navigateur conservait les "réglages d'affichage" qui avaient été apportés, qu'il y ait déconnexion ou pas, dans l'un et/ou l'autre des navigateurs.
J'ai constaté également que si l'on supprimait les cookies, tous les blocs étaient affichés, par défaut.

Il ne semble donc pas possible de pouvoir influer sur l'affichage par défaut des blocs. En tout cas, pas pour "certains" bloc.

J'espère que ces éléments (testés avec Moodle 1.9.8) pourront servir à d'autres, qui se poseraient la question.
Si vous avez des informations qui confirment ceci, ou bien au contraire contradictoires, n'hésitez pas à les communiquer.

En réponse à Séverin Terrier

Re: Réduire les blocs, pour les utilisateurs

par Eric Salice,
Bonjour,

Effectivement, l'état d'affichage du bloc est mémorisé dans un cookie et ça me semble assez difficile d'arriver à ce que tu souhaites en les manipulant.

Par contre, ça me semble possible avec un peu de Javascript.

Dans le fichier compressé ci-joint, tu trouveras deux fichiers à placer dans le répertoire lib de ton installation Moodle.

Pour les charger, il suffit de placer les lignes suivantes dans le fichier header.html de ton thème, avant la ligne <?php include("$CFG->javascript"); ?>:

<?php
require_js($CFG->wwwroot . '/lib/jquery.js');
require_js($CFG->wwwroot . '/lib/hideblocks.js');
?>

Le fichier hideblocks.js de l'archive zip commence par la ligne

var blocks = ["block_admin", "block_news_items"];

Tu peux remplacer par le nom des blocs que tu veux réduire.

J'ai essayé avec le thème standard et ça avait l'air de fonctionner.

Il faut que la case "
Autoriser les utilisateurs à cacher les blocs" soit cochée dans "Présentation|Réglages thèmes" (au fait, la description de la case signale que l'état est enregistré dans un cookie).

A noter que quand on recharge la page, les blocs concernés se réduisent même si on les avait dépliés.

J'espère que ça correspond ce que tu voulais.

Une dernière chose, la fonction Javascript de Moodle qui gère la réduction/affichage se trouve dans lib/javascript-static.js et s'appelle elementToggleHide.

Éric
Moyenne des évaluations Utile (4)
En réponse à Eric Salice

Re: Réduire les blocs, pour les utilisateurs

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour,

merci pour toutes ces informations sourire
Je vais voir ce que je peux en faire.

Par contre, comme j'ai plusieurs blocs HTML, dont certains doivent être réduits, et d'autres non, je sens que ça va compliquer les choses...

Cordialement,
Séverin
En réponse à Séverin Terrier

Re: Réduire les blocs, pour les utilisateurs

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Bonjour et bon courage Séverin pour répondre à la demande "étrange" qui t'es faite...

Pour satisfaire cette demande d'afficher le nom d'un bloc qui ne sert à rien tu pourrais peut-être faire des captures d'écran des titres de chaque bloc et regrouper le tout dans un bloc html.
Ton demandeur n'y verrai que du feu...clin d’oeil

Daniel


Annexe screenshot6.png
En réponse à Daniel Méthot

Re: Réduire les blocs, pour les utilisateurs

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Hello Daniel,
C'est de l'humour d'auto-entrepreneur, je suppose ? big grin
Joseph
En réponse à Joseph Rézeau

Re: Réduire les blocs, pour les utilisateurs

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Non Joseph,clin d’oeil

Juste une astuce pour tromper l'ennemi !
Puisque son commanditaire veut juste le titre de blocs qui ne servent à rien... alors pourquoi pas une image fixe grand sourire
Pourquoi faire compliqué ?
C'est ma philosophie... bien adaptée aux temps de crise...

Daniel
Qui plaisante pendant que Séverin travaille déjà sur ce problème ...rouge
En réponse à Daniel Méthot

Re: Réduire les blocs, pour les utilisateurs

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Que seul le titre soit visible, par défaut... mais actif, pour pouvoir déplier et voir le contenu du bloc clin d’œil

Je verrais s'il y a de l'acharnement sur cette demande, qui me semble irréalisable correctement...
En réponse à Séverin Terrier

Re: Réduire les blocs, pour les utilisateurs

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Hello Séverin,

C'est bien ce que j'avais compris... mais je persiste à dire que c'est une idée stupide. En effet, l'ergonomie normale de ces blocs veut que ce soit l'utilisateur final (l'étudiant ou l'enseignant) qui décide s'il veut que chacun de ces blocs soit replié ou déplié, décision qu'il peut modifier à tout instant, mais qui reste stockée dans ses cookies.

Vouloir "forcer" les blocs à un état donné (en l'occurrence à l'état replié) à chaque nouvelle session c'est vouloir nier à l'utilisateur final la liberté de choisir son état favori. Je suis évidemment contre.angry

Joseph

En réponse à Joseph Rézeau

Re: Réduire les blocs, pour les utilisateurs

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Je sais bien que tu avais compris, je répondais plutôt à Daniel clin d’œil

Et je suis tout à fait du même avis que toi.
Séverin
En réponse à Séverin Terrier

Re: Réduire les blocs, pour les utilisateurs

par Eric Salice,
Oui, effectivement, pour les blocs HTML, le type du bloc n'est pas dans l'attribut class et il peut y en avoir plusieurs (comme pour les autres blocs d'ailleurs) donc mon petit code ne fonctionne pas.

Mais je l'ai adapté pour autorisé aussi une position en plus d'un nom de type de bloc dans la liste des blocs à cacher. On peut donc maintenant écrire:

var blocks = [0, "block_admin", "block_news_items", 8];

Pour cacher le premier bloc (n° 0), le bloc administration, le bloc dernières nouvelles et le 9ème bloc.

Le bloc sont numérotés à partir de 0 de haut en bas en commençant par la colonne de gauche.

J'ai aussi fait en sorte qu'il n'y ait plus de message d'erreur javascript si les blocs ne peuvent pas être réduits.

Bon, évidemment, il faut que tes utilisateurs ne puissent pas ajouter/supprimer des blocs.

Pour participer à la polémique et me faire un peu l'avocat du diable, je dirais que je comprends qu'on veuille réduire certains blocs un peu à la manière d'un menu qui se ré enroule automatiquement. Je pense en particulier au bloc administration.

Une autre idée qui me vient à l'esprit serait de rassembler certains blocs dans un menu accordéon pour gagner de la place et ne pas surcharger la page.

Éric
En réponse à Eric Salice

Re: Réduire les blocs, pour les utilisateurs

par Eric Salice,
Voilà un petit script qui permet de rassembler des blocs dans un accordéon.

Il suffit de décompresser le fichier zip dans le répertoire lib de Moodle puis d'ajouter les lignes

<?php
require_js($CFG->wwwroot . '/lib/jquery.js');
require_js($CFG->wwwroot . '/lib/jquery.ui.core.js');
require_js($CFG->wwwroot . '/lib/jquery.ui.widget.js');
require_js($CFG->wwwroot . '/lib/jquery.ui.accordion.js');
require_js($CFG->wwwroot . '/lib/blockaccordion.js');
?>

Dans le fichier header.html du thème avant la ligne

<?php include("$CFG->javascript"); ?>

La première ligne du fichier blockaccordion.js définit les blocs à rassembler dans un accordéon. Par exemple,

var accordionBlocks = ["block_admin", "block_news_items", 8];

On peut indiquer le type du bloc ou sa position.

Les blocs apparaîtront dans le même ordre dans l'accordéon.

Dans la ligne

blockAccordion(accordionBlocks, "right", 1);

"right" et 1 indiquent respectivement la colonne et la position dans la colonne de l'accordéon (les positions commencent à 0). On peut changer le "right" en "left" pour le placer dans la colonne de gauche. Petite remarque, la position est la position finale de l'accordéon dans la liste des blocs. Donc si la colonne contient des blocs qui seront rassemblés dans l'accordéon, il ne faut pas en tenir compte dans le calcul de la position de celui-ci (ça ne m'a pas l'air très clair, ce que je dis là clin d’œil).
Par défaut, la colonne est "left" et la position 0.

On niveau des styles CSS, dans le thème standard, j'ai juste dû ajouter les lignes

.accordion {
border-bottom: solid 1px #dddddd;
padding: 0;
}

.accordion.sideblock .content {
border-bottom: none;
}


.accordion .ui-icon-triangle-1-e {
background-image: url(pix/t/switch_plus.gif);
float: right;
height: 11px;
margin-top: 4px;
width: 11px;
}

au fichier styles_layout.css.

La dernière règle permet d'afficher un petit signe "plus" à côté des titres des blocs repliés dans l'accordéon. J'ai dû ajouter un répertoire "t" dans le répertoire "pix" du thème standard et j'y ai placé le fichier "switch_plus.gif" trouvé dans le répertoire "pix/t" de Moodle.

Voilà, j'espère n'avoir rien oublié.

Éric