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 / QuranADay / QuranDB.php
daily-prayer-time-for-mosques / Models / QuranADay Last commit date
files 4 years ago QuranDB.php 2 months ago QuranRandomizer.php 4 years ago VersePrinter.php 4 years ago
QuranDB.php
120 lines
1 <?php
2
3 require_once ABSPATH.'wp-admin/includes/upgrade.php';
4 require_once 'QuranRandomizer.php';
5
6 class DPTQuranDB
7 {
8 /** @var string */
9 private $dbTable = '';
10
11 /** $var QuranRandomizer */
12 private $rand;
13
14 /** @var string */
15 private $tableName = '';
16
17 public function __construct()
18 {
19 global $wpdb;
20
21 $this->rand = new QuranRandomizer();
22
23 $this->tableName = $wpdb->prefix.'dptquranADay';
24 $this->dbTable = "`".DB_NAME ."`.`" .$this->tableName."`";
25 }
26
27 public function createTableIfNotExist()
28 {
29 global $wpdb;
30
31 $sql = 'CREATE TABLE IF NOT EXISTS '.$this->dbTable."(
32 id int(11) NOT NULL AUTO_INCREMENT,
33 lang varchar(255) DEFAULT NULL,
34 sura tinyint(4) DEFAULT NULL,
35 ayat int(8) DEFAULT NULL,
36 text text,
37 PRIMARY KEY (id)
38 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;";
39
40 $wpdb->get_var("SHOW TABLES LIKE '".$this->tableName."'");
41
42 if ($wpdb->num_rows != 1) {
43 dbDelta($sql);
44 $this->importCsv('english');
45 $this->importCsv('bangla');
46 }
47 }
48
49 private function importCsv($lang)
50 {
51 global $wpdb;
52
53 $path = plugin_dir_path(__FILE__).'files/'.$lang.'.csv';
54
55 if (($handle = fopen($path, 'r')) !== false) {
56 while (($data = fgetcsv($handle, 1000, '|')) !== false) {
57 if (count($data) >= 3 && !empty($data[2])) {
58 $sql = 'INSERT INTO '.$this->tableName." (lang, sura, ayat, text) values ('".$lang."', '".$data[0]."', '".$data[1]."', '".esc_sql($data[2])."');";
59 $wpdb->query($sql);
60 }
61 }
62 } else {
63 echo 'no file';
64 }
65 }
66
67 /**
68 * @param string $lang
69 *
70 * @return array
71 */
72 public function getQuote($attr=array(), $lang = 'english')
73 {
74 $minWord = 11;
75 $maxWord = 20;
76 $lang = 'english';
77
78 if (isset($attr['min_word']) && is_numeric($attr['min_word'])) {
79 $minWord = intval($attr['min_word']);
80 }
81
82 if (isset($attr['max_word']) && is_numeric($attr['max_word'])) {
83 $maxWord = intval($attr['max_word']);
84 }
85
86 if (isset($attr['language']) && in_array($attr['language'], ['english', 'bangla'])) {
87 $lang = $attr['language'];
88 }
89
90 // $sql = 'SELECT *, (length(text)-LENGTH(REPLACE(text, " ", "")) + 1) as size FROM '.$this->tableName.
91 // ' WHERE lang = "' . $lang .'" having size >' . $minWord . ' and size < ' . $maxWord . ' order by rand() limit 1;';
92
93 global $wpdb;
94
95 $prepared = $wpdb->prepare(
96 'SELECT *, (length(text)-LENGTH(REPLACE(text, " ", "")) + 1) as size FROM '.$this->tableName.
97 ' WHERE lang = %s having size > %d and size < %d order by rand() limit 1;',
98 array( $lang, $minWord, $maxWord )
99 );
100
101 $result = $wpdb->get_results($prepared, ARRAY_A);
102 $result[0]['name'] = $this->rand->getSuraName($result[0]['sura'], $lang);
103
104 return $result[0];
105 }
106
107 /**
108 * @param $sql
109 *
110 * @return array
111 */
112 private function getQuoteWithText($sql)
113 {
114 global $wpdb;
115 $result = $wpdb->get_row($sql, ARRAY_A);
116
117 return $result;
118 }
119 }
120