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