Skip to content

Plans des salles

Jérôme Bousquié edited this page Dec 9, 2016 · 12 revisions

Paramétrage des plans des salles

![Plan d'une salle] (http://jerome.bousquie.fr/winlog/images/SalleEnCours.png)

Fichiers salles

Pour que le plan d'une salle soit accessible depuis l'interface de surveillance des connexions en cours, vous devez créer un fichier portant le nom de la salle nomSalle.php.
Ce fichier doit être placé dans le répertoire admin/salles.
Dès qu'un fichier nomSalle.php existe dans le répertoire admin/salles, un lien vers le plan de salle apparaît sur le nom de la salle dans l'interface de surveillance des connexions en cours.

Ce qu'affiche le plan

Le plan affiche uniquement les machines qui vont être déclarées dans le fichier du plan.
Les machines sont affectées, lors de leur récupération depuis Active Directory, dans des groupes de machines (ou salles).
Un groupe de machines, une salle, peut donc contenir par exemple 50 machines.
Si vous ne déclarez que 12 machines dans le fichier du plan de cette salle, seules ces 12 machines seront visibles dans le plan.
Le nombre de machines affichées dans un plan peut donc différer du nombre total de machines contenues dans un groupe tel qu'il est calculé et affiché dans l'interface de suivi des connexions en cours.

Contenu du fichier

Le fichier nomSalle.php doit contenir un ensemble d'éléments de tableaux php, ayant tous comme clé la valeur "nomSalle" :

Fond du plan

  • $orix_salle["nomSalle"] et $oriy_salle["nomSalle"] sont les coordonnées x et y (en pixels) du côté supérieur gauche du grand rectangle beige représentant le fond de la salle. L'origine (0,0) est placée dans le coin supérieur gauche de la fenêtre du navigateur, x représente la largeur, y la hauteur.
  • $largeur_salle["nomSalle"] et $hauteur_salle["nomSalle"] sont la largeur et la hauteur en pixels du grand rectangle beige représentant le fond de la salle.

Le fond de la salle est alors dessiné.
Il faut maintenant définir et placer les machines et les portes.
Rien n'oblige à ce qu'un plan soit orienté d'une façon ou d'une autre, ou même qu'il représente une vue de dessus d'une salle. Il peut représenter une vue en coupe d'un bâtiment entier dans lequel chaque ligne de machines correspondent à un étage par exemple. C'est donc à vous de décider ce que vous voulez représenter et comment le faire.

Contenu général du plan

Pour faciliter la mise au point du placement des rangées de machines dans le plan, on définit en premier lieu des coordonnées d'origine de tout ce qui sera placé dans la salle.
Ces coordonnées (x, y) sont exprimées à partir du coin supérieur gauche du fond du plan (et pas du coin supérieur de la fenêtre du navigateur).
Exemple : une origine (20, 10) permettra de commencer à placer tout le contenu (les rangées de machines) à partir de 20 pixels à gauche du coin supérieur gauche du fond et à partir de 10 pixels plus bas.
Si vos machines vous semblent mal placées ensuite (trop haut, trop à droite, etc), changez juste les valeurs de l'origine et tout le contenu du plan sera déplacé sur son fond. Voyez ceci comme un calque.

  • $orix["nomSalle"] et $oriy["nomSalle"] sont les coordonnées d'origine du contenu du plan exprimées en pixel depuis le coin supérieur gauche du fond du plan.

Rangées de machines

On définit en premier lieu une taille du rectangle représentant chaque machine en pixels avec les variables :

  • $largeur["nomSalle"] et $hauteur["nomSalle"]

et on définit la taille de la police des caractères qui seront écrit dans ces rectangles avec la variable $police["nomSalle"].

Les machines sont réparties ensuite dans des rangées.
On peut disposer d'autant de rangées qu'on le souhaite. Il faut au moins une rangée, contenant au moins une machine pour que le plan de la salle s'affiche correctement.
Chacune de ces rangées peut être affichée soit horizontalement, soit verticalement.
Chacune de ces rangées peut posséder un espacement différent entre les machines qu'elle contient.
Pour définir une rangée (ou ligne de machines), on crée donc un ensemble de variables, indexé par un nombre entier différent pour chaque rangée :

  • $orientation["nomSalle"][index] : valeurs possibles "H" ou "V", la rangée est horizontale ou verticale.
  • $ligne_coord["nomSalle"][index] = array(x, y); où (x, y) sont les coordonnées depuis l'origine de la rangée.
  • $ligne_machines["nomSalle"][index] = array('machine1', 'machine2', ..., 'machineN'); est le tableau des noms de machines disposées sur cette ligne.
  • $shift["nomSalle"][index] est la valeur en pixel d'espacement entre chaque machine de cette ligne.

Exemple commenté :

// Salle A102 : fichier A102.php
$orix_salle["A102"] = 50;          // le coin supérieur de la salle est placé à x = 50, y = 200 pixels 
$oriy_salle["A102"] = 200;         // du coin supérieur de la fenêtre du browser
$largeur_salle["A102"] = 1050;     // le rectangle de fond fait 1050 pixels de large sur 570 de haut
$hauteur_salle["A102"] = 570;
$orix["A102"] = 20;                // l'origine du contenu de la salle est placé à x = 20, y = 50 du coin
$oriy["A102"] = 50;                // supérieur gauche du plan précédemment défini
$largeur["A102"] = 120;            // les machines de cette salle ont une taille de 120 x 60 pixels
$hauteur["A102"] = 60;
$police["A102"] = 11;              // les caractères de la police ont la taille 11

// rangée 0
$orientation["A102"][0]="H";           // cette rangée est Horizontale
$ligne_coord["A102"][0] = array(0, 0); // elle est placée à (0,0) de l'origine
$ligne_machines["A102"][0] = array('A102D1','A102D2','A102D3','A102D4', 'A102D5','A102D6','A102D7'); // elle contient ces machines
$shift["A102"][0] = 20;               // qui sont espacées de 20 pixels les unes des autres

// rangée 1
$orientation["A102"][1]="V";          // cette rangée est Verticale
$ligne_coord["A102"][1] = array(100, 70);
$ligne_machines["A102"][1] = array('A102Z1','A102C1','A102C2','A102C3','A102C4','A102C5','A102C6');
$shift["A102"][1] = 20;

Comme aucun impératif d'orientation des plans n'existe, vous pouvez avoir des salles avec des représentations différentes (rectangles allongés dans la largeur ou la longueur de l'écran, vue depuis les couloirs, vue vers le Nord, etc).
Il est donc souvent pratique afin de comprendre en un coup d'oeil comment est orientée la salle sur le plan d'y placer la localisation de la ou des portes d'accès à la salle.
Les portes sont définies une à une (pas par rangée) et possédent simplement une orientation et un jeu de coordonnées (x, y) depuis l'origine.
On peut placer autant de porte qu'on souhaite dans un plan, en indexant chacune d'elle par un nombre entier.

  • $orien_porte["nomSalle"][index] : orientation de la porte "H" ou "V"
  • $porte_coord["nomSalle"][index] = array(x, y); où (x, y) sont les coordonnées de la porte depuis l'origine.

Exemple commenté :

// porte 1, Horizontale, située à (100, 500) de l'origine
$orien_porte["A102"][0]="H";
$porte_coord["A102"][0]=array(100,500);

// porte 2, Verticale, située à (800, 500) de l'origine
$orien_porte["A102"][1]="V";
$porte_coord["A102"][1]=array(800,500);