PluginProbe ʕ •ᴥ•ʔ
Daily Prayer Time / 2020.07.03
Daily Prayer Time v2020.07.03
2026.05.20 2026.05.11 2026.05.09 2026.05.05 2026.05.04 2026.05.03 2026.04.28 2026.04.28.1 trunk 2019.10.16 2019.11.19 2019.2.16 2019.3.1 2019.4.1 2019.4.5 2019.5.12 2019.5.13 2019.5.14 2019.5.19 2019.5.19.1 2019.5.21 2019.5.30 2019.5.5 2019.5.6 2019.5.7 2019.5.8 2019.5.9 2019.6.10 2019.6.2 2019.6.22 2019.7.10 2019.7.25 2019.8.1 2019.8.4 2019.9.16 2020.04.25 2020.04.26 2020.05.01 2020.05.04 2020.05.08 2020.05.17 2020.07.03 2021.01.10 2021.03.28 2021.07.20 2021.07.23 2021.07.24 2021.07.28 2021.08.01 2021.08.06 2021.08.07 2021.08.10 2021.09.12 2021.09.18 2021.09.23 2021.09.24 2021.10.01 2021.10.02 2021.10.10 2021.10.11 2021.10.15 2021.10.21 2021.10.27 2021.10.29 2022.03.24 2022.04.04 2022.04.14 2022.04.15 2022.04.21 2022.04.22 2022.05.04 2022.09.19 2022.11.14 2022.11.16 2022.12.18 2022.12.20 2023.01.27 2023.02.04 2023.02.09 2023.02.21 2023.03.08 2023.03.17 2023.03.18 2023.03.20 2023.05.04 2023.08.03 2023.08.08.16 2023.08.19 2023.08.19.1 2023.10.13 2023.10.21 2023.11.26 2023.12.28 2023.12.31 2024.03.28 2024.03.29 2024.03.30 2024.04.18 2024.04.20 2024.04.22 2024.04.26 2024.08.26 2024.09.12 2024.09.14 2024.09.17 2024.12.29 2024.12.30 2025.01.02 2025.01.17 2025.02.02 2025.03.04 2025.03.06 2025.03.08 2025.03.15 2025.03.20 2025.03.26 2025.03.27 2025.04.03 2025.06.16 2025.06.29 2025.07.15 2025.08.09 2025.10.26 2026.04.26
daily-prayer-time-for-mosques / Views / DailyTimetablePrinter.php
daily-prayer-time-for-mosques / Views Last commit date
Tabs 5 years ago DSTemplate.php 6 years ago DailyTimetablePrinter.php 5 years ago HelpsAndTips.php 5 years ago MonthlyTimetablePrinter.php 6 years ago TimetablePrinter.php 5 years ago dptWidgetForm.php 7 years ago horizontal-div.php 9 years ago widget-admin.php 5 years ago
DailyTimetablePrinter.php
375 lines
1 <?php
2 require_once( 'TimetablePrinter.php' );
3
4 class DailyTimetablePrinter extends TimetablePrinter
5 {
6
7 public function __construct()
8 {
9 parent::__construct();
10 $this->localPrayerNames = $this->getLocalPrayerNames(false, true);
11 }
12
13 public function horizontalTimeDiv($row)
14 {
15 ob_start();
16 include 'horizontal-div.php';
17 return ob_get_clean();
18 }
19
20 /**
21 * @param $row
22 * @return string
23 */
24 public function printHorizontalTime($row)
25 {
26 $table = $this->printHorizontalTableTop( $row );
27
28 $table .= '
29 <tr>
30 <th class="tableHeading prayerName">' .$this->localHeaders['prayer']. '</th>'
31 . $this->printTableHeading($row) .
32 '</tr>
33 <tr>
34 <th class="tableHeading">' .$this->localHeaders['begins']. '</th>'
35 .$this->printAzanTime($row).
36 '</tr>
37 <tr><th class="tableHeading">' .$this->localHeaders['iqamah']. '</th>'
38 .$this->printJamahTime($row, false).
39 '</tr>';
40
41 if ( get_option('jumuah') && ! $this->todayIsFriday() ) {
42 $table .= '<tr>
43 <th class="tableHeading">' . stripslashes($this->getLocalHeaders()['jumuah']) . '</th>
44 <td colspan="6" class="jamah">' . get_option('jumuah') . '</td>
45 </tr>';
46 }
47
48 $table .= '</table>';
49
50 return $table;
51 }
52
53 public function horizontalTimeJamahOnly($row)
54 {
55 $table = $this->printHorizontalTableTop( $row );
56
57 $table .= '
58 <tr><th>' .$this->localHeaders['prayer']. '</th>'
59 . $this->printTableHeading($row) .
60 '</tr>
61 <tr>
62 <th>'.$this->localHeaders['iqamah'].'</th>'
63 .$this->printJamahTime($row).
64 '</tr>
65 </table>';
66
67 return $table;
68 }
69
70 /**
71 * @param $row
72 *
73 * @return string
74 */
75 public function horizontalTimeAzanOnly($row)
76 {
77 $table = $this->printHorizontalTableTop( $row, true );
78
79 $table .= '
80 <tr><th>' .$this->localHeaders['prayer']. '</th>'
81 . $this->printTableHeading($row) .
82 '</tr>
83 <tr>
84 <th>'.$this->localHeaders['begins'].'</th>'
85 .$this->printAzanTime($row).
86 '</tr>
87 </table>';
88
89 return $table;
90 }
91
92 /**
93 * @param $row
94 * @return string
95 */
96 public function printVerticalTime($row)
97 {
98 $table = $this->printVerticalTableTop( $row , true);
99
100 $table .=
101 '<tr>
102 <th class="tableHeading">' .$this->localHeaders['prayer']. '</th>
103 <th class="tableHeading">' .$this->localHeaders['begins']. '</th>
104 <th class="tableHeading">' .$this->localHeaders['iqamah']. '</th>
105 </tr>'
106 . $this->printVerticalRow( $row, 'both' ) .
107 '</table>';
108
109 return $table;
110 }
111
112 /**
113 * @param array $row
114 * @return string
115 */
116 public function verticalTimeJamahOnly($row)
117 {
118 $table = $this->printVerticalTableTop( $row );
119
120 $table .=
121 '<tr>
122 <th class="tableHeading">' .$this->localHeaders['prayer']. '</th>
123 <th class="tableHeading">' .$this->localHeaders['iqamah']. '</th>
124 </tr>'
125 .$this->printVerticalRow( $row, 'iqamah' ) .
126 '</table>';
127
128 return $table;
129 }
130
131 /**
132 * @param array $row
133 * @return string
134 */
135 public function verticalTimeAzanOnly($row)
136 {
137 $table = $this->printVerticalTableTop( $row, false, true );
138
139 $table .=
140 '<tr>
141 <th class="tableHeading">' .$this->localHeaders['prayer']. '</th>
142 <th class="tableHeading">' .$this->localHeaders['begins']. '</th>
143 </tr>'
144 .$this->printVerticalRow( $row, 'azan' ) .
145 '</table>';
146
147 return $table;
148 }
149
150 /**
151 * @param $row
152 *
153 * @param bool $isAzanOnly
154 *
155 * @return string
156 */
157 private function printHorizontalTableTop($row, $isAzanOnly=false)
158 {
159 if (! $row['hideTimeRemaining']) {
160 $nextIqamah = $isAzanOnly == true ? '' : $this->getNextIqamahTime($row);
161 }
162 $colspan = 7;
163 $ramadanTds = '<td></td>';
164
165 if (get_option('ramadan-chbox') && ! $row['hideRamadan']) {
166 $ramadan = '
167 <tr class="">
168 <td colspan="3" class="highlight">'. $this->localHeaders['fast_begins'].': '.$this->formatDateForPrayer($row['fajr_begins'], true).'</td>
169 '. $ramadanTds . '
170 <td colspan="3" class="highlight">'. $this->localHeaders['fast_ends'].': '.$this->formatDateForPrayer($row['maghrib_begins']).'</td>
171 </tr>';
172 }
173
174 if(isset($row['announcement']) && ! empty( $row['announcement'] )) {
175 $announcement = "<tr><th colspan='".$colspan."' style='text-align:center' class='notificationBackground'>".$row['announcement']. "</th></tr>";
176 }
177
178 $table = "";
179 $table .=
180 '<table class="customStyles dptUserStyles dptTimetable ' .$this->getTableClass().'"> '.$announcement.'
181 <tr>
182 <th colspan="'. $colspan .'" style="text-align:center">'
183 .$row['widgetTitle']. ' ' . date_i18n( get_option( 'date_format' ) ) .' '. $this->getHijriDate(date("d"), date("m"), date("Y"),$row) .' ' . $nextIqamah .'
184 </th>
185 </tr>'. $ramadan;
186
187 return $table;
188 }
189
190 public function displayRamadanTime($row)
191 {
192 return ' <table class="customStyles dptUserStyles">
193 <tr style="text-align:center">
194 <td colspan="3" class="fasting highlight">'. $this->localHeaders['fast_begins'].': '.$this->formatDateForPrayer($row['fajr_begins'], true).'</td>
195 <td style="border:0px;"></td>
196 <td colspan="3" class="fasting highlight">'. $this->localHeaders['fast_ends'].': '.$this->formatDateForPrayer($row['maghrib_begins']).'</td>
197 </tr></table>';
198 }
199
200 /**
201 * @param $row
202 *
203 * @return string
204 */
205 private function printTableHeading($row)
206 {
207 $ths = '';
208 $nextPrayer = $this->getNextPrayer( $row );
209
210 foreach ($this->localPrayerNames as $key=>$prayerName) {
211 $class = $nextPrayer == $key ? 'highlight' : '';
212 $ths .= "<th class='tableHeading prayerName" . $this->tableClass . " ". $class."'>".$prayerName."</th>";
213 }
214
215 return $ths;
216 }
217
218 /**
219 * @param $row
220 *
221 * @return string
222 */
223 private function printAzanTime($row)
224 {
225 $tds = '';
226 $nextPrayer = $this->getNextPrayer( $row );
227 $azanTimings = $this->getAzanTime( $row );
228 if ($this->todayIsFriday()) {
229 $azanTimings['zuhr'] = get_option('jumuah');
230 }
231 foreach ($azanTimings as $key => $azan) {
232 $class = $nextPrayer == $key ? 'class=highlight' : '';
233 $rowspan = '';
234 if ($key == 'sunrise' || ($key == 'zuhr' && $this->todayIsFriday()))
235 {
236 $rowspan = "rowspan='2'";
237 }
238 $tds .= "<td ". $rowspan ." ".$class.">".$this->getFormattedDateForPrayer( $azan, $key )."</th>";
239 }
240
241 return $tds;
242 }
243
244 /**
245 * @param $row
246 * @param bool $isSunrise
247 *
248 * @return string
249 */
250 private function printJamahTime($row, $isSunrise=true)
251 {
252 $jamahTimes = $this->getJamahTime( $row );
253 if (! $isSunrise) {
254 unset( $jamahTimes['sunrise'] );
255 }
256
257 if ($this->todayIsFriday()) {
258 unset($jamahTimes['zuhr']);
259 }
260 $tds = '';
261 $nextPrayer = $this->getNextPrayer( $row );
262 foreach ($jamahTimes as $key => $azan) {
263 $class = $nextPrayer == $key ? 'class=highlight' : 'class=jamah';
264 $tds .= "<td ".$class.">".$this->getFormattedDateForPrayer( $azan, $key )."</th>";
265 }
266
267 return $tds;
268 }
269
270 /**
271 * @param $row
272 * @param bool $isFullTable
273 *
274 * @return string
275 */
276 private function printVerticalTableTop($row, $isFullTable=false, $isAzanOnly=false)
277 {
278 if (! $row['hideTimeRemaining']) {
279 $nextIqamah = $isAzanOnly == true ? '' : $this->getNextIqamahTime($row);
280 }
281
282 $colspan = ( $isFullTable == true ) ? 3 : 2;
283
284 $colspanRamadan = $isFullTable == true ? "colspan='2'" : '';
285
286
287 if (get_option('ramadan-chbox') && ! $row['hideRamadan']) {
288 $ramadan = '
289 <tr>
290 <th class="highlight">' .$this->localHeaders['fast_begins']. '</th>
291 <th '.$colspanRamadan.' class="highlight">' .$this->formatDateForPrayer($row['fajr_begins'], true). '</th>
292 </tr>
293 <tr>
294 <th class="highlight">'.$this->localHeaders['fast_ends'].'</th>
295 <th '.$colspanRamadan.' class="highlight">'.$this->formatDateForPrayer($row['maghrib_begins']).'</th>
296 </tr>
297 ';
298 }
299 $table = "";
300 if(isset($row['announcement']) && ! empty( $row['announcement'] )) {
301 $announcement = "<tr><th colspan=".$colspan." style='text-align:center' class='notificationBackground'>".$row['announcement']. "</th></tr>";
302 }
303
304 $table .=
305 '<table class="dptTimetable ' .$this->getTableClass().' customStyles dptUserStyles"> '.$announcement.'
306 <tr>
307 <th colspan='.$colspan.' style="text-align:center">'
308 .$row['widgetTitle']. ' '. date_i18n( get_option( 'date_format' ) ) .' '. $this->getHijriDate(date("d"), date("m"), date("Y"), $row).'' . $nextIqamah . '
309 </th>
310 </tr>'
311 .$ramadan;
312
313 return $table;
314 }
315
316 /**
317 * @param $row
318 * @param $display // i.e both, azan, iqamah
319 *
320 * @return string
321 */
322 private function printVerticalRow($row, $display)
323 {
324 $trs = '';
325 $nextPrayer = $this->getNextPrayer( $row );
326
327 foreach ($this->localPrayerNames as $key=>$prayerName) {
328 $begins = $key != 'sunrise' ? lcfirst( $key ).'_begins' : 'sunrise';
329 $jamah = $key != 'sunrise' ? lcfirst( $key ).'_jamah' : 'sunrise';
330
331 $class = $nextPrayer == $key ? 'highlight' : '';
332 $highlightForJamah = $nextPrayer == $key ? 'highlight' : '';
333
334 $trs .= '<tr>
335 <th class="prayerName ' .$class.'">' . $prayerName . '</th>';
336 if ( ($key == 'sunrise' || $prayerName == $this->getLocalHeaders()['jumuah']) && $display == 'both') {
337 $trs .= '<td colspan="2" class="' . $class . '">'.$this->getFormattedDateForPrayer($row[$jamah], $key).'</td>';
338 } elseif ($display == 'azan') {
339 $trs .='<td class="begins '.$class.'">'.$this->getFormattedDateForPrayer($row[$begins], $key).'</td>
340 </tr>';
341 } elseif ($display == 'iqamah') {
342 $trs .='<td class="begins '.$class.'">'.$this->getFormattedDateForPrayer($row[$jamah], $key).'</td>
343 </tr>';
344 } else {
345 $trs .='<td class="begins '.$class.'">'.$this->getFormattedDateForPrayer($row[$begins], $key).'</td>
346 <td class="jamah '.$highlightForJamah.'">'.$this->getFormattedDateForPrayer($row[$jamah], $key).'</td>
347 </tr>';
348 }
349 }
350 if ( get_option('jumuah') && ! $this->todayIsFriday() ) {
351 $trs .= '<tr>
352 <th class="prayerName"><span>' . stripslashes($this->getLocalHeaders()['jumuah']) . '</span></th>
353 <td colspan="2" class="jamah">' . get_option('jumuah') . '</td>
354 </tr>';
355 }
356
357 return $trs;
358 }
359
360 private function getFormattedDateForPrayer($time, $prayerName)
361 {
362 $jumuahTime = get_option('jumuah');
363 if ( ($prayerName === 'zuhr' && $this->todayIsFriday()) && $jumuahTime) {
364 return $jumuahTime;
365 }
366 return $this->formatDateForPrayer($time);
367 }
368
369 public function displayNextPrayer($row)
370 {
371 return $this->getNextIqamahTime($row);
372
373 }
374 }
375