PluginProbe ʕ •ᴥ•ʔ
Daily Prayer Time / 2024.09.17
Daily Prayer Time v2024.09.17
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 year ago QuranADay 1 year ago StartTime 4 years ago design 1 year ago AdminMenu.php 2 years ago AssetsLoader.php 1 year ago CustomPluginSettings.php 4 years ago DPTAjaxHandler.php 4 years ago DPTHelper.php 2 years ago DSTemplateLoader.php 2 years ago DailyShortCode.php 2 years ago DigitalScreen.php 1 year ago HijriDate.php 3 years ago Init.php 4 years ago MonthlyShortCode.php 2 years ago MonthlyTimeTable.php 3 years ago Shortcodes.php 2 years ago Translator.php 4 years ago UpdateStyles.php 2 years ago Validator.php 3 years ago db.php 3 years 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