PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 10.1.4
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v10.1.4
11.1.1 11.1.0 11.0.5 11.0.4 11.0.3 11.0.2 11.0.1 11.0.0 10.11.1 10.11.0 10.10.2 10.10.1 10.10.0 10.9.1 trunk 10.0.0 10.0.1 10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.2.0 10.2.1 10.2.2 All 62 releases
acymailing / back / Core / wordpress / database.php

database.php in AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress 10.1.4, at back/Core/wordpress/database.php

185 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 function acym_escapeDB($value)
4 {
5 if (is_null($value)) {
6 $value = '';
7 }
8
9 return "'".esc_sql($value)."'";
10 }
11
12 function acym_query($query)
13 {
14 global $wpdb;
15 $query = acym_prepareQuery($query);
16
17 $result = $wpdb->query($query);
18
19 return $result === false ? null : $result;
20 }
21
22 function acym_loadObjectList($query, $key = '', $offset = null, $limit = null): array
23 {
24 global $wpdb;
25 $query = acym_prepareQuery($query);
26
27 if (isset($offset)) {
28 $query .= ' LIMIT '.intval($offset).','.intval($limit);
29 }
30
31 $results = $wpdb->get_results($query);
32 if (empty($key)) {
33 return empty($results) ? [] : $results;
34 }
35
36 $sorted = [];
37 foreach ($results as $oneRes) {
38 $sorted[$oneRes->$key] = $oneRes;
39 }
40
41 return $sorted;
42 }
43
44 function acym_prepareQuery($query)
45 {
46 global $wpdb;
47 $query = str_replace('#__', $wpdb->prefix, $query);
48 if (is_multisite()) {
49 $query = str_replace($wpdb->prefix.'users', $wpdb->base_prefix.'users', $query);
50 $query = str_replace($wpdb->prefix.'usermeta', $wpdb->base_prefix.'usermeta', $query);
51 }
52
53 return $query;
54 }
55
56 function acym_loadObject($query)
57 {
58 acym_addLimit($query);
59
60 global $wpdb;
61 $query = acym_prepareQuery($query);
62
63 return $wpdb->get_row($query);
64 }
65
66 function acym_loadResult($query)
67 {
68 global $wpdb;
69 $query = acym_prepareQuery($query);
70
71 return $wpdb->get_var($query);
72 }
73
74 function acym_loadResultArray($query)
75 {
76 global $wpdb;
77 $query = acym_prepareQuery($query);
78
79 return $wpdb->get_col($query);
80 }
81
82 function acym_getEscaped($text, $extra = false)
83 {
84 $result = esc_sql($text);
85 if ($extra) {
86 $result = addcslashes($result, '%_');
87 }
88
89 return $result;
90 }
91
92 function acym_getDBError()
93 {
94 global $wpdb;
95
96 return $wpdb->last_error;
97 }
98
99 function acym_insertObject($table, $element)
100 {
101 global $wpdb;
102 $element = get_object_vars($element);
103 $table = acym_prepareQuery($table);
104 $wpdb->insert($table, $element);
105
106 return $wpdb->insert_id;
107 }
108
109 function acym_updateObject($table, $element, $pkey)
110 {
111 global $wpdb;
112 $element = get_object_vars($element);
113 $table = acym_prepareQuery($table);
114
115 if (!is_array($pkey)) {
116 $pkey = [$pkey];
117 }
118
119 $where = [];
120 foreach ($pkey as $onePkey) {
121 $where[$onePkey] = $element[$onePkey];
122 }
123
124 $nbUpdated = $wpdb->update($table, $element, $where);
125
126 return $nbUpdated !== false;
127 }
128
129 function acym_getPrefix()
130 {
131 global $wpdb;
132
133 return $wpdb->prefix;
134 }
135
136 function acym_getTableList()
137 {
138 global $wpdb;
139
140 return acym_loadResultArray(
141 'SELECT table_name FROM information_schema.tables WHERE table_schema = '.acym_escapeDB($wpdb->dbname).' AND table_name LIKE '.acym_escapeDB($wpdb->prefix.'%')
142 );
143 }
144
145 function acym_getCMSConfig($varname, $default = null)
146 {
147 $map = [
148 'offset' => 'timezone_string',
149 'list_limit' => 'posts_per_page',
150 'sitename' => 'blogname',
151 'mailfrom' => 'new_admin_email',
152 'feed_email' => 'new_admin_email',
153 ];
154
155 if (!empty($map[$varname])) {
156 $varname = $map[$varname];
157 }
158 $value = get_option($varname, $default);
159
160 if ($varname == 'timezone_string' && empty($value)) {
161 $value = acym_getCMSConfig('gmt_offset');
162
163 if (empty($value)) {
164 $value = 'UTC';
165 } elseif ($value < 0) {
166 $value = 'GMT'.$value;
167 } else {
168 $value = 'GMT+'.$value;
169 }
170 }
171
172 if ($varname == 'posts_per_page') {
173 $possibilities = [5, 10, 15, 20, 25, 30, 50, 100];
174 $closest = 5;
175 foreach ($possibilities as $possibility) {
176 if (abs($value - $closest) > abs($value - $possibility)) {
177 $closest = $possibility;
178 }
179 }
180 $value = $closest;
181 }
182
183 return $value;
184 }
185