Hello Daniel,
C'est de l'humour d'auto-entrepreneur, je suppose ?
Joseph
Non Joseph,
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
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 ...
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
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 ...
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.
Joseph
Je sais bien que tu avais compris, je répondais plutôt à Daniel
Et je suis tout à fait du même avis que toi.
Séverin
Et je suis tout à fait du même avis que toi.
Séverin
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
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
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à ).
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
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à ).
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