Bonjour à tous !
Je me retrouve devant un problème de conception que je n'arrive pas à solutionner de manière correcte.
J'espère donc que vous pourrez m'aider, en tout cas je vous remercie d'avance de l'attention que vous porterez à mon problème.
Je m'explique donc :
Le script doit afficher 3 travaux de développement par ligne et ensuite 2 de Webdesign.
Pour le moment, je suis obligé d'ajouter manuellement des conditions $e == 1, $e == 2 pour chaque tour que fera la boucle e et pour les différents types de travaux.
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118 <?php $nbreTravaux = count($data); $nbrePagesDansLaBoucle = ceil($nbreTravaux/5); // On divise par 5 le nbre de travaux et on arrondit au dessus // On obtient le nbre de fois que e doit s'executer pour afficher tous les travaux for($e=0;$e<$nbrePagesDansLaBoucle;$e++) { ?> <div class="row-fluid"> <?php $maxWorkParLignesDev = 3; $f = 0; /* F = incremential variable for know how development categorie were displayed */ $_SESSION['worksUsedByDev'] = array(); for($numero = 0; $numero < $nbreTravaux; $numero++) { // Si la catégorie est Developpement et qu'il n'y a pas encore 3 travaux if($data[$numero][1] == "1" && $f != $maxWorkParLignesDev) { if($e == 0) { $_SESSION['worksUsedByDev1']['work_'.$f] = $data[$numero]['id']; $this->blocDevelopment($data, $numero); $f++; } elseif($e == 1) { $_SESSION['worksUsedByDev2']['work_'.$f] = $data[$numero]['id']; if($data[$numero]['id'] != $_SESSION['worksUsedByDev1']['work_0'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev1']['work_1'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev1']['work_2']) { $this->blocDevelopment($data, $numero); $f++; } } elseif($e == 2) { $_SESSION['worksUsedByDev3']['work_'.$f] = $data[$numero]['id']; if($data[$numero]['id'] != $_SESSION['worksUsedByDev1']['work_0'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev1']['work_1'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev1']['work_2']) { if($data[$numero]['id'] != $_SESSION['worksUsedByDev2']['work_0'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev2']['work_1'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev2']['work_2']) { $this->blocDevelopment($data, $numero); $f++; } } } elseif($e == 3) { $_SESSION['worksUsedByDev4']['work_'.$f] = $data[$numero]['id']; if($data[$numero]['id'] != $_SESSION['worksUsedByDev1']['work_0'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev1']['work_1'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev1']['work_2']) { if($data[$numero]['id'] != $_SESSION['worksUsedByDev2']['work_0'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev2']['work_1'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev2']['work_2']) { if($data[$numero]['id'] != $_SESSION['worksUsedByDev3']['work_0'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev3']['work_1'] && $data[$numero]['id'] != $_SESSION['worksUsedByDev3']['work_2']) { $this->blocDevelopment($data, $numero); $f++; } } } } } } ?> </div> <div class="row-fluid"> <?php $maxWorkParLignesWebdesign = 2; $f = 0; /* F = incremential variable for know how development categorie were displayed */ $_SESSION['worksUsedByWebdesign'] = array(); for($numero = 0; $numero < $nbreTravaux; $numero++) { // Si la catégorie est Webdesign ou Autres et qu'il n'y a pas encore 2 travaux if($data[$numero][1] == "2" || $data[$numero][1] == "3") { if($f != $maxWorkParLignesWebdesign) { if($e == 0) { $_SESSION['worksUsedByWebdesign1']['work_'.$f] = $data[$numero]['id']; $this->blocWebdesign($data, $numero); $f++; } elseif($e == 1) { $_SESSION['worksUsedByWebdesign2']['work_'.$f] = $data[$numero]['id']; if($data[$numero]['id'] != $_SESSION['worksUsedByWebdesign1']['work_0'] && $data[$numero]['id'] != $_SESSION['worksUsedByWebdesign1']['work_1']) { $this->blocWebdesign($data, $numero); $f++; } } elseif($e == 2) { $_SESSION['worksUsedByWebdesign3']['work_'.$f] = $data[$numero]['id']; if($data[$numero]['id'] != $_SESSION['worksUsedByWebdesign1']['work_0'] && $data[$numero]['id'] != $_SESSION['worksUsedByWebdesign1']['work_1']) { if($data[$numero]['id'] != $_SESSION['worksUsedByWebdesign2']['work_0'] && $data[$numero]['id'] != $_SESSION['worksUsedByWebdesign2']['work_1']) { $this->blocWebdesign($data, $numero); $f++; } } } } } } ?> </div> <?php } ?>
Je voudrais donc simplifier celà et créer une fonction qui permettrait l'ajout automatique des imbrications de if.
Un exemple de ce que en gros je voudrais arriver à faire :
Je ne demande pas une solution toute faite bien évidemment, je voudrais simplement comprendre de quelle manière il est possible de résoudre celà.
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
24
25
26
27
28
29
30
31
32
33
34
35
36 <?php for($e=0;$e<$nbrePagesDansLaBoucle;$e++) { for($numero = 0; $numero < $nbreTravaux; $numero++) { // Si la catégorie est Developpement et qu'il n'y a pas encore 3 travaux if($data[$numero][1] == "1" && $f != $maxWorkParLignesDev) { $nbreE = $e++; $id = $data[$numero]['id']; $categorie = $data[$numero][1]; $_SESSION['worksUsedByDev'.$nbreE]['work_'.$f] = $data[$numero]['id']; // Fonction qui permettrait de mettre autant de if qu'il le faudrait de manière automatique $modelTravaux->imbriquerIf($e, $categorie, $this->blocDevelopment($data, $numero), $f); } // Si la catégorie est Developpement et qu'il n'y a pas encore 3 travaux if($data[$numero][1] == "2" || $data[$numero][1] == "3") { if($f != $maxWorkParLignesWebdesign) { $nbreE = $e++; $id = $data[$numero]['id']; $categorie = $data[$numero][1]; $_SESSION['worksUsedByWebdesign'.$nbreE]['work_'.$f] = $data[$numero]['id']; // Fonction qui permettrait de mettre autant de if qu'il le faudrait de manière automatique $modelTravaux->imbriquerIf($e, $categorie, $this->blocDevelopment($data, $numero), $f); } } } ?>
Je vous remercie !
Partager