[4] | 1 | <?php
|
---|
[148] | 2 | include_once('global.php');
|
---|
[1] | 3 |
|
---|
[148] | 4 | class 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'].' ';
|
---|
[146] | 42 | }
|
---|
| 43 | } else
|
---|
| 44 | $Output .= ' ';
|
---|
| 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 | ?>
|
---|