PluginProbe ʕ •ᴥ•ʔ
Daily Prayer Time / 2026.05.04
Daily Prayer Time v2026.05.04
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 / Models / MonthlyShortCode.php
daily-prayer-time-for-mosques / Models Last commit date
Hijri 3 years ago Processors 1 month ago QuranADay 2 months ago StartTime 1 year ago design 1 month ago AdminMenu.php 2 years ago AssetsLoader.php 1 year ago CustomPluginSettings.php 4 years ago DPTAjaxHandler.php 4 years ago DPTHelper.php 1 month ago DSTemplateLoader.php 2 years ago DailyShortCode.php 2 months ago DigitalScreen.php 1 month ago HijriDate.php 3 years ago Init.php 4 years ago MonthlyShortCode.php 2 years ago MonthlyTimeTable.php 3 years ago Shortcodes.php 2 months ago Translator.php 4 years ago UpdateStyles.php 1 month ago Validator.php 3 years ago db.php 2 months ago dptWidget.php 4 years ago
MonthlyShortCode.php
128 lines
1 <?php
2 require_once('MonthlyTimeTable.php');
3 require_once(__DIR__.'/../Views/MonthlyTimetablePrinter.php');
4
5 class MonthlyShortCode
6 {
7 /** @var MonthlyTimetablePrinter */
8 private $printer;
9
10 public function __construct()
11 {
12 $this->printer = new MonthlyTimetablePrinter();
13 add_action( 'wp_ajax_get_monthly_timetable', array( $this, 'get_monthly_timetable') );
14 add_action( 'wp_ajax_nopriv_get_monthly_timetable', array( $this, 'get_monthly_timetable') );
15 }
16
17 public function printMonthlyTimeTable($attr)
18 {
19 $data = $this->getTimeTableHeading($attr);
20 ob_start();
21 return $data;
22 return ob_get_clean();
23 }
24
25 /**
26 * @return string
27 */
28 private function getTimeTableHeading($attr)
29 {
30 $heading = "";
31
32 if (isset($attr['heading'])) {
33 $heading = esc_attr($attr['heading']);
34 }
35
36 $hiddenInput = '';
37 if (isset($attr['display'])) {
38 $hiddenInput = "<input type='hidden' name='display' id='display' value=" . esc_attr($attr['display']) . " />";
39 }
40
41 $month = date("m");
42
43 $path = plugin_dir_url( __FILE__ ); // I am in Models
44 $path .= '../';
45
46 $siteName = get_bloginfo( 'name' ) . "</br><span style='color:green'>" . date("M, Y") ."</span>";
47
48 return $introText = "
49 <div class='container-fluid'>
50 <div class='row'>
51 <div id='printAndMonth'>
52 <div id='monthContainer'>
53 <h3 class='printSiteName'>" . $siteName . "</h3>
54 <p class='monthHeading'> " . $heading . "</p>
55 <span class='monthSelector'>
56 <form id='monthAjax'>" . $hiddenInput . "
57 <select class='otherMonth' id='month' name='month'>" . $this->getMonths($month) . "</select>
58 </form>
59 </span>
60 <span class='printIcon'>
61 <a title='click to print' onclick='DPT.printDiv(\"printAndMonth\")'>
62 <img src=" . $path . 'Assets/images/print_icon.png'." alt='click to print'>
63 </a>
64 </span>
65 </div>
66 <div class='clear'></div>
67 <div class='monthlyTimetable' id='monthlyTimetable'></div>
68 </div>
69 </div>
70 </div>
71 ";
72 }
73
74 /**
75 * @param $month
76 * @return string#
77 */
78 private function getMonths($month){
79 $months = $this->printer->getLocalMonths();
80
81 $i = 1;
82 $options = "";
83 foreach($months as $month_name){
84 $selected = "";
85
86 if ( $month_name == 'Ramadan' ) {
87 $selected = " selected='selected'";
88 } else if($i == intval($month)){
89 $selected = " selected='selected'";
90 }
91 $options .= "<option value='{$i}' {$selected}>{$month_name}</option>";
92 $i++;
93 }
94
95 return $options;
96 }
97
98 public function get_monthly_timetable()
99 {
100 $month = sanitize_text_field($_REQUEST["month"]);
101 $display = "";
102 if (isset($_REQUEST["display"])) {
103 $display = sanitize_text_field($_REQUEST["display"]);
104 }
105
106 preg_match("/\d+/", $month, $match);
107 $timetable = new MonthlyTimeTable($match[0]);
108
109 $options = array();
110 if ($month == 13) {
111 $options['isRamadan'] = true;
112 }
113 $options['monthNumber'] = $month;
114
115 if ($display === 'iqamah_only') {
116 $data = $timetable->displayTableJamahOnly($options);
117 } elseif ($display === 'azan_only') {
118 $data = $timetable->displayTableAzanOnly($options);
119 } else {
120 $data = $timetable->displayTable($options);
121 }
122
123 echo wp_kses($data, 'post');
124 die();
125 }
126 }
127
128