source: trunk/otevreno.php@ 203

Last change on this file since 203 was 203, checked in by george, 16 years ago
  • Opraveno: Validace HTML stránky otvírací doby subjektů.
  • Property svn:executable set to *
File size: 2.8 KB
RevLine 
[4]1<?php
[148]2include_once('global.php');
[1]3
[148]4class SubjectOpenTimePage extends Page
5{
6 var $FullTitle = 'Otvírací doby místních subjektů';
7 var $ShortTitle = 'Otvírací doby';
8 var $DaysOfWeek = array('Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota', 'Neděle');
[164]9 var $DayShift = 3;
[1]10
[146]11 function Show()
12 {
[203]13 $Output = '<div class="Centred">';
[153]14 $DbResult = $this->Database->query('SELECT SubjectOpenTime.*, DATE_FORMAT(SubjectOpenTime.UpdateTime, "%e.%c.%Y") as UpdateTime, Subject.Name as Name FROM SubjectOpenTime JOIN Subject ON Subject.Id = SubjectOpenTime.Subject ORDER BY Name');
15 while($Subject = $DbResult->fetch_assoc())
[146]16 {
17 $Output .= '<strong>'.$Subject['Name'].':</strong><br />';
[164]18
19 $DbResult2 = $this->Database->query('SELECT Subject, OpenTime, CloseTime, TIMEDIFF(DATE_FORMAT(CloseTime, "0000-01-%w %T"), DATE_FORMAT(NOW(), "0000-01-%w %T")) as RemainTime FROM `SubjectOpenTimeInterval` WHERE DATE_FORMAT(NOW(), "0000-01-%w %T") > OpenTime AND DATE_FORMAT(NOW(), "0000-01-%w %T") < CloseTime AND Subject='.$Subject['Subject']);
[146]20 if($DbResult2->num_rows > 0)
21 {
[153]22 $DbRow = $DbResult2->fetch_assoc();
[146]23 $Output .= 'Zavírá za '.$DbRow['RemainTime'];
24 } else
25 {
[148]26 $DbResult2 = $this->Database->query('SELECT Subject, OpenTime, CloseTime, TIMEDIFF(OpenTime, DATE_FORMAT(NOW(), "0000-01-%w %T")) as RemainTime FROM `SubjectOpenTimeInterval` WHERE DATE_FORMAT(NOW(), "0000-01-%w %T") < OpenTime AND Subject='.$Subject['Subject'].' ORDER BY OpenTime LIMIT 1');
[153]27 $DbRow = $DbResult2->fetch_assoc();
[146]28 $Output .= 'Otevírá za '.$DbRow['RemainTime'];
29 }
[164]30
[203]31 $Output .= '<table class="WideTable">
[146]32<tr><th>Den</th><th>Čas</th></tr>';
[148]33 foreach($this->DaysOfWeek as $DayIndex => $DayOfWeek)
[146]34 {
[164]35 $DbResult2 = $this->Database->query('SELECT *, DATE_FORMAT(OpenTime, "%k:%i") as OpenTime2, DATE_FORMAT(CloseTime, "%k:%i") as CloseTime2, DAYOFWEEK(OpenTime) as Week FROM SubjectOpenTimeInterval WHERE SubjectOpenTimeInterval.Subject = '.$Subject['Subject'].' AND ((DAYOFWEEK(OpenTime) + 7) MOD 7)='.$DayIndex);
[146]36 $Output .= '<tr><td>'.$DayOfWeek.'</td><td align="center">';
37 if($DbResult2->num_rows)
38 {
[153]39 while($TimeInterval = $DbResult2->fetch_assoc())
[146]40 {
[164]41 $Output .= $TimeInterval['OpenTime2'].' - '.$TimeInterval['CloseTime2'].' &nbsp;&nbsp; ';
[146]42 }
43 } else
44 $Output .= '&nbsp;';
45 $Output .= '</td></tr>';
46 }
47 $Output .= '</table>Aktualizováno: '.$Subject['UpdateTime'].'<br />';
[203]48 if($Subject['Notice'] != '') $Output .= 'Poznámka: '.$Subject['Notice'].'<br />';
[146]49 $Output .= '<br />';
50 }
[203]51 $Output .= '</div>';
[146]52 return($Output);
53 }
[148]54}
[1]55
[148]56$System->AddModule(new SubjectOpenTimePage());
57$System->Modules['SubjectOpenTimePage']->GetOutput();
[1]58
59?>
Note: See TracBrowser for help on using the repository browser.