PluginProbe ʕ •ᴥ•ʔ
Daily Prayer Time / 2023.12.31
Daily Prayer Time v2023.12.31
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 2 years ago DSTemplate.php 3 years ago DailyTimetablePrinter.php 3 years ago HelpsAndTips.php 3 years ago MonthlyTimetablePrinter.php 2 years ago TimetablePrinter.php 3 years ago dptWidgetForm.php 4 years ago horizontal-div.php 4 years ago widget-admin.php 3 years ago
DailyTimetablePrinter.php
379 lines
1 <?php
2 require_once( 'TimetablePrinter.php' );
3 require_once(__DIR__ . '/../Models/DPTHelper.php');
4
5 class DailyTimetablePrinter extends TimetablePrinter
6 {
7 /** @var DPTHelper */
8 private $dptHelper;
9
10 public function __construct()
11 {
12 parent::__construct();
13 $this->localPrayerNames = $this->getLocalPrayerNames(false, true);
14 $this->dptHelper = new DPTHelper();
15 }
16
17 public function horizontalTimeDiv($row)
18 {
19 ob_start();
20 include 'horizontal-div.php';
21 return ob_get_clean();
22 }
23
24 /**
25 * @param $row
26 * @return string
27 */
28 public function printHorizontalTime($row)
29 {
30 $table = $this->printHorizontalTableTop( $row );
31
32 $table .= '
33 <tr>
34 <th class="tableHeading prayerName">' . $this->localHeaders['prayer'] . '</th>'
35 . $this->printTableHeading($row) .
36 '</tr>
37 <tr>
38 <th class="tableHeading">' .$this->localHeaders['begins']. '</th>'
39 .$this->printAzanTime($row).
40 '</tr>
41 <tr><th class="tableHeading">' .$this->localHeaders['iqamah']. '</th>'
42 .$this->printJamahTime($row, false).
43 '</tr>';
44
45 if ( get_option('jumuah1') && ! $this->todayIsFriday() ) {
46 $table .= '<tr>
47 <th class="tableHeading">' . stripslashes($this->getLocalHeaders()['jumuah']) . '</th>
48 <td colspan="6" class="jamah">' . $this->getJumuahTimesArray() . '</td>
49 </tr>';
50 }
51
52 $table .= '</table>';
53
54 return $table;
55 }
56
57 public function horizontalTimeJamahOnly($row)
58 {
59 $table = $this->printHorizontalTableTop( $row );
60
61 $table .= '
62 <tr><th>' .$this->localHeaders['prayer']. '</th>'
63 . $this->printTableHeading($row) .
64 '</tr>
65 <tr>
66 <th>'.$this->localHeaders['iqamah'].'</th>'
67 .$this->printJamahTime($row).
68 '</tr>
69 </table>';
70
71 return $table;
72 }
73
74 /**
75 * @param $row
76 *
77 * @return string
78 */
79 public function horizontalTimeAzanOnly($row)
80 {
81 $table = $this->printHorizontalTableTop( $row, true );
82
83 $table .= '
84 <tr><th>' .$this->localHeaders['prayer']. '</th>'
85 . $this->printTableHeading($row) .
86 '</tr>
87 <tr>
88 <th>'.$this->localHeaders['begins'].'</th>'
89 .$this->printAzanTime($row).
90 '</tr>
91 </table>';
92
93 return $table;
94 }
95
96 /**
97 * @param $row
98 * @return string
99 */
100 public function printVerticalTime($row)
101 {
102 $table = $this->printVerticalTableTop( $row , true);
103
104 $table .=
105 '<tr>
106 <th class="tableHeading">' .$this->localHeaders['prayer']. '</th>
107 <th class="tableHeading">' .$this->localHeaders['begins']. '</th>
108 <th class="tableHeading">' .$this->localHeaders['iqamah']. '</th>
109 </tr>'
110 . $this->printVerticalRow( $row, 'both' ) .
111 '</table>';
112
113 return $table;
114 }
115
116 /**
117 * @param array $row
118 * @return string
119 */
120 public function verticalTimeJamahOnly($row)
121 {
122 $table = $this->printVerticalTableTop( $row );
123
124 $table .=
125 '<tr>
126 <th class="tableHeading">' .$this->localHeaders['prayer']. '</th>
127 <th class="tableHeading">' .$this->localHeaders['iqamah']. '</th>
128 </tr>'
129 .$this->printVerticalRow( $row, 'iqamah' ) .
130 '</table>';
131
132 return $table;
133 }
134
135 /**
136 * @param array $row
137 * @return string
138 */
139 public function verticalTimeAzanOnly($row)
140 {
141 $table = $this->printVerticalTableTop( $row, false, true );
142
143 $table .=
144 '<tr>
145 <th class="tableHeading">' .$this->localHeaders['prayer']. '</th>
146 <th class="tableHeading">' .$this->localHeaders['begins']. '</th>
147 </tr>'
148 .$this->printVerticalRow( $row, 'azan' ) .
149 '</table>';
150
151 return $table;
152 }
153
154 /**
155 * @param $row
156 *
157 * @param bool $isAzanOnly
158 *
159 * @return string
160 */
161 private function printHorizontalTableTop($row, $isAzanOnly=false)
162 {
163 $announcement = '';
164 if (! $row['hideTimeRemaining']) {
165 $nextIqamah = $isAzanOnly == true ? '' : $this->getNextIqamahTime($row);
166 }
167 $colspan = 7;
168 $ramadanTds = '<td></td>';
169
170 if ($this->isRamadan() && ! $row['hideRamadan']) {
171 $ramadan = '
172 <tr class="">
173 <td colspan="3" class="highlight">'. $this->localHeaders['fast_begins'].': '.$this->formatDateForPrayer($row['fajr_begins'], true).'</td>
174 '. $ramadanTds . '
175 <td colspan="3" class="highlight">'. $this->localHeaders['fast_ends'].': '.$this->formatDateForPrayer($row['maghrib_begins']).'</td>
176 </tr>';
177 }
178
179 if(isset($row['announcement']) && ! empty( $row['announcement'] )) {
180 $announcement = "<tr><th colspan='".$colspan."' style='text-align:center' class='notificationBackground'>".$row['announcement']. "</th></tr>";
181 }
182
183 $table = "";
184 $table .=
185 '<table class="customStyles dptUserStyles dptTimetable ' .$this->getTableClass().'"> '.$announcement.'
186 <tr>
187 <th colspan="'. $colspan .'" style="text-align:center">'
188 .$row['widgetTitle']. ' ' . date_i18n( get_option( 'date_format' ) ) .' '. $this->getHijriDate(date("d"), date("m"), date("Y"),$row) .' ' . $nextIqamah .'
189 </th>
190 </tr>'. $ramadan;
191
192 return $table;
193 }
194
195 public function displayRamadanTime($row)
196 {
197 return ' <table class="customStyles dptUserStyles">
198 <tr style="text-align:center">
199 <td colspan="3" class="fasting highlight">'. $this->localHeaders['fast_begins'].': '.$this->formatDateForPrayer($row['fajr_begins'], true).'</td>
200 <td style="border:0px;"></td>
201 <td colspan="3" class="fasting highlight">'. $this->localHeaders['fast_ends'].': '.$this->formatDateForPrayer($row['maghrib_begins']).'</td>
202 </tr></table>';
203 }
204
205 /**
206 * @param $row
207 *
208 * @return string
209 */
210 private function printTableHeading($row)
211 {
212 $ths = '';
213 $nextPrayer = $this->getNextPrayer( $row );
214
215 foreach ($this->localPrayerNames as $key=>$prayerName) {
216 $class = $nextPrayer == $key ? 'highlight' : '';
217 $ths .= "<th class='tableHeading prayerName" . $this->tableClass . " ". $class."'>".$prayerName."</th>";
218 }
219
220 return $ths;
221 }
222
223 /**
224 * @param $row
225 *
226 * @return string
227 */
228 private function printAzanTime($row)
229 {
230 $tds = '';
231 $nextPrayer = $this->getNextPrayer( $row );
232 $azanTimings = $this->getAzanTime( $row );
233
234 foreach ($azanTimings as $key => $azan) {
235
236 $class = $nextPrayer == $key ? 'class=highlight' : '';
237 $rowspan = '';
238 if ($key == 'sunrise')
239 {
240 $rowspan = "rowspan='2'";
241 }
242 $tds .= "<td ". $rowspan ." ".$class.">".$this->getFormattedDateForPrayer( $azan, $key)."</th>";
243 }
244
245 return $tds;
246 }
247
248 /**
249 * @param $row
250 * @param bool $isSunrise
251 *
252 * @return string
253 */
254 private function printJamahTime($row, $isSunrise=true)
255 {
256 $jamahTimes = $this->getJamahTime( $row );
257 if (! $isSunrise) {
258 unset( $jamahTimes['sunrise'] );
259 }
260
261 $tds = '';
262 $nextPrayer = $this->getNextPrayer( $row );
263 foreach ($jamahTimes as $key => $azan) {
264 $class = $nextPrayer == $key ? 'class=highlight' : 'class=jamah';
265 $tds .= "<td ".$class.">".$this->getFormattedDateForPrayer( $azan, $key, true )."</th>";
266 }
267
268 return $tds;
269 }
270
271 /**
272 * @param $row
273 * @param bool $isFullTable
274 *
275 * @return string
276 */
277 private function printVerticalTableTop($row, $isFullTable=false, $isAzanOnly=false)
278 {
279 if (! $row['hideTimeRemaining']) {
280 $nextIqamah = $isAzanOnly == true ? '' : $this->getNextIqamahTime($row);
281 }
282
283 $colspan = ( $isFullTable == true ) ? 3 : 2;
284
285 $colspanRamadan = $isFullTable == true ? "colspan='2'" : '';
286
287
288 $ramadan = '';
289 if ($this->isRamadan() && ! $row['hideRamadan']) {
290 $ramadan = '
291 <tr>
292 <th class="highlight">' .$this->localHeaders['fast_begins']. '</th>
293 <th '.$colspanRamadan.' class="highlight">' .$this->formatDateForPrayer($row['fajr_begins'], true). '</th>
294 </tr>
295 <tr>
296 <th class="highlight">'.$this->localHeaders['fast_ends'].'</th>
297 <th '.$colspanRamadan.' class="highlight">'.$this->formatDateForPrayer($row['maghrib_begins']).'</th>
298 </tr>
299 ';
300 }
301 $table = "";
302 $announcement = '';
303 if(isset($row['announcement']) && ! empty( $row['announcement'] )) {
304 $announcement = "<tr><th colspan=".$colspan." style='text-align:center' class='notificationBackground'>".$row['announcement']. "</th></tr>";
305 }
306
307 $table .=
308 '<table class="dptTimetable ' .$this->getTableClass().' customStyles dptUserStyles"> '.$announcement.'
309 <tr>
310 <th colspan='.$colspan.' style="text-align:center">'
311 .$row['widgetTitle']. ' '. date_i18n( get_option( 'date_format' ) ) .' '. $this->getHijriDate(date("d"), date("m"), date("Y"), $row).'' . $nextIqamah . '
312 </th>
313 </tr>'
314 .$ramadan;
315
316 return $table;
317 }
318
319 /**
320 * @param $row
321 * @param $display // i.e both, azan, iqamah
322 *
323 * @return string
324 */
325 private function printVerticalRow($row, $display)
326 {
327 $trs = '';
328 $nextPrayer = $this->getNextPrayer( $row );
329
330 foreach ($this->localPrayerNames as $key=>$prayerName) {
331 $begins = $key != 'sunrise' ? lcfirst( $key ).'_begins' : 'sunrise';
332 $jamah = $key != 'sunrise' ? lcfirst( $key ).'_jamah' : 'sunrise';
333
334 $class = $nextPrayer == $key ? 'highlight' : '';
335 $highlightForJamah = $nextPrayer == $key ? 'highlight' : '';
336
337 $trs .= '<tr>
338 <th class="prayerName ' .$class.'">' . $prayerName . '</th>';
339 if ( ($key == 'sunrise') && $display == 'both') {
340 $trs .= '<td colspan="2" class="' . $class . '">'.$this->getFormattedDateForPrayer($row[$jamah], $key).'</td>';
341 } elseif ($display == 'azan') {
342 $trs .='<td class="begins '.$class.'">'.$this->getFormattedDateForPrayer($row[$begins], $key).'</td>
343 </tr>';
344 } elseif ($display == 'iqamah') {
345 $trs .='<td class="begins '.$class.'">'.$this->getFormattedDateForPrayer($row[$jamah], $key, true).'</td>
346 </tr>';
347 } else {
348 $trs .='<td class="begins '.$class.'">'.$this->getFormattedDateForPrayer($row[$begins], $key).'</td>
349 <td class="jamah '.$highlightForJamah.'">'.$this->getFormattedDateForPrayer($row[$jamah], $key, true).'</td>
350 </tr>';
351 }
352 }
353
354 if ( get_option('jumuah1') && ! $this->todayIsFriday() ) {
355 $trs .= '<tr>
356 <th class="prayerName"><span>' . stripslashes($this->getLocalHeaders()['jumuah']) . '</span></th>
357 <td colspan="2" class="jamah">' . $this->getJumuahTimesArray() . '</td>
358 </tr>';
359 }
360
361 return $trs;
362 }
363
364 private function getFormattedDateForPrayer($time, $prayerName, $isJamatTime=false)
365 {
366 $jumuahTime = get_option('jumuah1');
367 if ( ($prayerName === 'zuhr' && $this->todayIsFriday()) && $isJamatTime && $jumuahTime) {
368 return $this->getJumuahTimesArray();
369 }
370 return $this->formatDateForPrayer($time);
371 }
372
373 public function displayNextPrayer($row)
374 {
375 return $this->getNextIqamahTime($row);
376
377 }
378 }
379