PluginProbe ʕ •ᴥ•ʔ
Daily Prayer Time / 2022.04.14
Daily Prayer Time v2022.04.14
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
Processors 4 years ago QuranADay 4 years ago StartTime 4 years ago AdminMenu.php 6 years ago AssetsLoader.php 4 years ago CustomPluginSettings.php 4 years ago DPTAjaxHandler.php 4 years ago DSTemplateLoader.php 4 years ago DailyShortCode.php 4 years ago DigitalScreen.php 4 years ago HijriDate.php 7 years ago Init.php 4 years ago MonthlyShortCode.php 4 years ago MonthlyTimeTable.php 6 years ago Shortcodes.php 4 years ago UpdateStyles.php 7 years ago Validator.php 4 years ago db.php 4 years ago dptWidget.php 4 years ago
MonthlyShortCode.php
122 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 $month = date("m");
41 $path = plugin_dir_url( __FILE__ ); // I am in Models
42 $path .= '../';
43
44 $siteName = get_bloginfo( 'name' ) . "</br><span style='color:green'>" . date("M, Y") ."</span>";
45
46 return $introText = "
47 <div class='container-fluid'>
48 <div class='row'>
49 <div id='printAndMonth'>
50 <div id='monthContainer'>
51 <h3 class='printSiteName'>" . $siteName . "</h3>
52 <p class='monthHeading'> " . $heading . "</p>
53 <span class='monthSelector'>
54 <form id='monthAjax'>" . $hiddenInput . "
55 <select class='otherMonth' id='month' name='month'>" . $this->getMonths($month) . "</select>
56 </form>
57 </span>
58 <span class='printIcon'>
59 <a title='click to print' onclick='DPT.printDiv(\"printAndMonth\")'>
60 <img src=" . $path . 'Assets/images/print_icon.png'." alt='click to print'>
61 </a>
62 </span>
63 </div>
64 <div class='clear'></div>
65 <div class='monthlyTimetable' id='monthlyTimetable'></div>
66 </div>
67 </div>
68 </div>
69 ";
70 }
71
72 /**
73 * @param $month
74 * @return string#
75 */
76 private function getMonths($month){
77 $months = $this->printer->getLocalMonths();
78
79 $i = 1;
80 $options = "";
81 foreach($months as $month_name){
82 $selected = "";
83
84 if ( $month_name == 'Ramadan' ) {
85 $selected = " selected='selected'";
86 } else if($i == intval($month)){
87 $selected = " selected='selected'";
88 }
89 $options .= "<option value='{$i}' {$selected}>{$month_name}</option>";
90 $i++;
91 }
92
93 return $options;
94 }
95
96 public function get_monthly_timetable()
97 {
98 $month = sanitize_text_field($_REQUEST["month"]);
99 $display = sanitize_text_field($_REQUEST["display"]);
100
101 preg_match("/\d+/", $month, $match);
102 $timetable = new MonthlyTimeTable($match[0]);
103
104 $options = array();
105 if ($month == 13) {
106 $options['isRamadan'] = true;
107 }
108
109 if ($display === 'iqamah_only') {
110 $data = $timetable->displayTableJamahOnly($options);
111 } elseif ($display === 'azan_only') {
112 $data = $timetable->displayTableAzanOnly($options);
113 } else {
114 $data = $timetable->displayTable($options);
115 }
116
117 echo wp_kses($data, 'post');
118 die();
119 }
120 }
121
122