Bonjour à tous,
Je souhaite gérer l'affichage d'évènements par slot d'affichage (ligne) car pour une même journée, je peux avoir plusieurs évènements. J'ai donc pensé définir une matrice avec les slots en axe 1 et les jours en axe 2.
la grande question avant d'aller plus en avant sur le code que j'ai pensé est : peut-on optimiser ces codes php (je suis persuadé que oui mais je ne sais pas trop comment faire) ?
Merci d'avance !
--
N'y connaissant pas grand chose en PHP je suis parti sur ce code pour l'initialisation :
Bien sur, un évènement ne doit être présent qu'une seule fois dans ces slots, donc j'ai fait une fonction pour vérifié qu'il n'est pas déjà présent en faisant une recherche sur son id :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function InitSlots() { global $arrSlots ; for ($slot=0; $slot<10; $slot++) { for ($jour=0; $jour<7; $jour++) { $arrSlots[$slot][$jour] = array('id' => '0', 'contenu' => ' ') ; } } return true ; }
Une fonction pour vérifié que je les cases sont vides pour un évènement donné :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function EvenementDejaTraite($id) { global $arrSlots ; for ($slot=0; $slot<10; $slot++) { for ($jour=0; $jour<7; $jour++) { if ($arrSlots[$slot][$jour]['id'] == $id ) return true ; } } return false ; }
et son pendant pour occuper la place
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function Estdisponible ($slot, $jour, $duree) { global $arrSlots ; // vérification de la dispo sur la ligne for ($delta=0 ; $delta < $duree ; $delta++) { if ($arrSlots[$slot][$jour+$delta]['id'] <> '0') return false ; } return true ; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function Occuper ($slot, $jour, $duree, $contenu, $id) { global $arrSlots ; $premier = true ; // vérification de la dispo sur la ligne for ($delta=0 ; $delta < $duree ; $delta++) { if ($premier ) { $arrSlots[$slot][$jour+$delta]['contenu']= $contenu ; $arrSlots[$slot][$jour+$delta]['id']= $id ; $premier = false ; } else { $arrSlots[$slot][$jour+$delta]['contenu'] = 'X' ; $arrSlots[$slot][$jour+$delta]['id']= $id ; } } return $dureeligne ; }
Partager