Verticale Tabel
Ik ben bezig met een systeem om roosterwijzigingen weer te geven.
De ene locatie wil ze horizontaal, en de andere wil ze verticaal.
De code voor horizontaal is dit:
Code (php)
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
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
foreach ($wijzigingen as $W) {
//Als de datum (niet de tijd) afwijkt van de vorige moet de pagina beindigd worden
if ($lastdate<>@date('d-m-Y',$W[count($W)-1]) and $lastdate!==null and $i>0) EndPage(); // AND $i>0, want als $i nul is dan is de foreach niet meer langsgeweest en is de pagina dus niet gemaakt. Je voorkomt hiermee notices en een lege pagina
//Stel lastdate in
$lastdate=@date('d-m-Y',$W[count($W)-1]);
//Als het wijziging 0 is moet de pagina zelf gegenereerd worden
if ($i == 0) {
$_SESSION['pages'][$p]=GetTitle(htmlentities($settings[0]));
$_SESSION['pages'][$p].="\n<table class=\"content\">\n";
$_SESSION['pages'][$p].="<tr>\n<td><h2>".htmlentities(ucfirst(GetDateText($W[count($W)-1])))."</h2></td>\n</tr><tr>\n<td>\n<table style=\"width: 100%; border-spacing: 0; \">\n";
$_SESSION['pages'][$p].="<tr class=\"roosterwijzigingkolommen\" style=\"font-weight: bold;\">
<td style=\"text-align: center;\">Klas</td>
<td style=\"text-align: center;\">Uur</td>
<td style=\"text-align: center;\">Was</td>
<td style=\"text-align: center;\">Wordt</td>
<td style=\"text-align: center;\">Docent</td>
<td style=\"text-align: center;\">Waar</td>
<td style=\"text-align: center; width: 25%;\">Opmerking</td>
</tr>";
} //Einde if i == 0
//Verwijder het laatste element (de datum), zodat het niet als een lang getal op het scherm komt:
array_pop($W);
//Nu de wijziging toevoegen:
if ($i % 2) { // Als de wijziging oneven is, krijgt deze table row een achtergrondkleurtje.
$class = 'roosterwijziging';
} else $class = '';
$_SESSION['pages'][$p].="<tr class=\"".$class."\">\n";
$tds=0;
//Ga langs alle velden van de roosterwijzigingen
foreach ($W as $V) {
$_SESSION['pages'][$p].="<td class=\"roosterwijzigingen\" style=\"text-align: center; padding: 8px; ".((strlen($V) > 20)?'font-size: 20pt;':''). " \">".($V===null?' ':htmlentities($V))."</td>\n";
$tds++; //Houd bij hoeveel TD's we hebben
} //Einde foreach W
//Sluit de rij af
$_SESSION['pages'][$p].="</tr>\n";
if ($colspan<$tds) $colspan=$tds; //Werk evt de variabele colspan bij
//Verhoog het wijzigingsnummer met 1
$i++;
//Als we bij het maximum aantal wijzigingen voor een pagina zijn aanbeland
if ($i==$settings[5]) { $_SESSION['pages'][$p].="</table>"; EndPage(); }
} //Einde foreach wijzigingen
if ($i<>$settings[5] and count($wijzigingen)>0 and $i>0) { $_SESSION['pages'][$p].="</table>"; EndPage(); } // AND $i>0, want als $i nul is dan is de foreach niet meer langsgeweest en is de pagina dus niet gemaakt. Je voorkomt hiermee notices en een lege pagina
//Als de datum (niet de tijd) afwijkt van de vorige moet de pagina beindigd worden
if ($lastdate<>@date('d-m-Y',$W[count($W)-1]) and $lastdate!==null and $i>0) EndPage(); // AND $i>0, want als $i nul is dan is de foreach niet meer langsgeweest en is de pagina dus niet gemaakt. Je voorkomt hiermee notices en een lege pagina
//Stel lastdate in
$lastdate=@date('d-m-Y',$W[count($W)-1]);
//Als het wijziging 0 is moet de pagina zelf gegenereerd worden
if ($i == 0) {
$_SESSION['pages'][$p]=GetTitle(htmlentities($settings[0]));
$_SESSION['pages'][$p].="\n<table class=\"content\">\n";
$_SESSION['pages'][$p].="<tr>\n<td><h2>".htmlentities(ucfirst(GetDateText($W[count($W)-1])))."</h2></td>\n</tr><tr>\n<td>\n<table style=\"width: 100%; border-spacing: 0; \">\n";
$_SESSION['pages'][$p].="<tr class=\"roosterwijzigingkolommen\" style=\"font-weight: bold;\">
<td style=\"text-align: center;\">Klas</td>
<td style=\"text-align: center;\">Uur</td>
<td style=\"text-align: center;\">Was</td>
<td style=\"text-align: center;\">Wordt</td>
<td style=\"text-align: center;\">Docent</td>
<td style=\"text-align: center;\">Waar</td>
<td style=\"text-align: center; width: 25%;\">Opmerking</td>
</tr>";
} //Einde if i == 0
//Verwijder het laatste element (de datum), zodat het niet als een lang getal op het scherm komt:
array_pop($W);
//Nu de wijziging toevoegen:
if ($i % 2) { // Als de wijziging oneven is, krijgt deze table row een achtergrondkleurtje.
$class = 'roosterwijziging';
} else $class = '';
$_SESSION['pages'][$p].="<tr class=\"".$class."\">\n";
$tds=0;
//Ga langs alle velden van de roosterwijzigingen
foreach ($W as $V) {
$_SESSION['pages'][$p].="<td class=\"roosterwijzigingen\" style=\"text-align: center; padding: 8px; ".((strlen($V) > 20)?'font-size: 20pt;':''). " \">".($V===null?' ':htmlentities($V))."</td>\n";
$tds++; //Houd bij hoeveel TD's we hebben
} //Einde foreach W
//Sluit de rij af
$_SESSION['pages'][$p].="</tr>\n";
if ($colspan<$tds) $colspan=$tds; //Werk evt de variabele colspan bij
//Verhoog het wijzigingsnummer met 1
$i++;
//Als we bij het maximum aantal wijzigingen voor een pagina zijn aanbeland
if ($i==$settings[5]) { $_SESSION['pages'][$p].="</table>"; EndPage(); }
} //Einde foreach wijzigingen
if ($i<>$settings[5] and count($wijzigingen)>0 and $i>0) { $_SESSION['pages'][$p].="</table>"; EndPage(); } // AND $i>0, want als $i nul is dan is de foreach niet meer langsgeweest en is de pagina dus niet gemaakt. Je voorkomt hiermee notices en een lege pagina
Ik kom er echter niet uit hoe ik dit verticaal kan maken:
Iemand die kan helpen?
Alvast ontzettend bedankt!
Graag in het vervolg bij code, [code] [/code] tags gebruiken.[/modedit]
Gewijzigd op 15/03/2013 12:32:49 door Bas IJzelendoorn
bump =S