PluginProbe
WPMobile.App / trunk
WPMobile.App vtrunk
wpappninja / inc / functions / format.php

format.php in WPMobile.App trunk, at inc/functions/format.php

345 lines 9.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 defined( 'ABSPATH' ) or die( 'Cheatin\' uh?' );
3
4 function theme_is_changed() {
5
6 if (get_wpappninja_option('wpappninja_main_theme', 'WPMobile.App') == "WPMobile.App" || get_wpappninja_option('appify', '0') == "1") {
7 return true;
8 }
9
10 return false;
11 }
12
13 /**
14 * Add a tag to inline links
15 */
16 function wpappninja_add_links($html) {
17 return preg_replace("~[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]~", "<a href=\"\\0\">\\0</a>", $html);
18 }
19
20 /**
21 * Get gravatar url
22 */
23 function wpappninja_get_gravatar($email) {
24 if ($email != '') {
25 $html = get_avatar($email, 200, get_option( 'avatar_default', 'mystery' ));
26 if ($html != FALSE) {
27 preg_match("/src=['|\"](.*?)['|\"]/i", $html, $matches);
28
29
30 if (preg_match('#^//#', $matches[1])) {
31
32 if (is_ssl()) {
33 $matches[1] = 'https:' . $matches[1];
34 } else {
35 $matches[1] = 'http:' . $matches[1];
36 }
37 }
38
39 // add domain name
40 if (!preg_match('#^http#', $matches[1])) {
41 return get_site_url() . preg_replace('/^'.preg_quote(get_site_url(), '/').'/', '', preg_replace('/&#038;/', '&', $matches[1]));
42 } else {
43 return preg_replace('/&#038;/', '&', $matches[1]);
44 }
45 }
46 }
47 return '';
48 }
49
50 /**
51 * Return human readable timestamp
52 */
53 function wpappninja_human_time($s) {
54
55 // hide date everywhere
56 if (get_wpappninja_option('remove_date', '1') == '0') {
57 return "";
58 }
59
60 if (get_wpappninja_option('datetype', 'date') == 'date') {
61 $date = date_i18n( get_option( 'date_format' ), current_time('timestamp') - $s);
62 if (get_wpappninja_option('showdate', '1') == '1') {
63 $date .= ' @ ' . date_i18n( get_option( 'time_format' ), current_time('timestamp') - $s);
64 }
65 return $date;
66 }
67
68 $m = round($s / 60);
69 $h = round($s / 3600);
70 $d = round($s / 86400);
71 $month = round($s / 2592000);
72 $annee = round($s / 31104000);
73 if ($m > 1) {
74 if ($h > 1) {
75 if ($d > 1) {
76 if ($month > 1) {
77 if ($annee > 0) {
78 if ($annee > 1){
79 return sprintf(__('%s years ago', 'wpappninja'), $annee);
80 } else {
81 return sprintf(__('%s year ago', 'wpappninja'), $annee);
82 }
83 } else {
84 if ($month > 1) {
85 return sprintf(__('%s months ago', 'wpappninja'), $month);
86 } else {
87 return sprintf(__('%s month ago', 'wpappninja'), $month);
88 }
89 }
90 } else {
91 if ($d > 1){
92 return sprintf(__('%s days ago', 'wpappninja'), $d);
93 } else {
94 return sprintf(__('%s day ago', 'wpappninja'), $d);
95 }
96 }
97 } else {
98 if ($h > 1){
99 return sprintf(__('%s hours ago', 'wpappninja'), $h);
100 } else {
101 return sprintf(__('%s hour ago', 'wpappninja'), $month);
102 }
103 }
104 } else {
105 if ($m > 1){
106 return sprintf(__('%s minutes ago', 'wpappninja'), $m);
107 } else {
108 return sprintf(__('%s minute ago', 'wpappninja'), $m);
109 }
110 }
111 } else {
112 return sprintf(__('%s seconds ago', 'wpappninja'), $s);
113 }
114 }
115
116 /**
117 * Fix a bug with pre tags.
118 *
119 * @since 3.6.7
120 */
121 function wpappninja_pre_tags($content) {
122 return preg_replace_callback('/<pre.*?>(.*?)<\/pre>/imsu', function($matches){
123 $pre = nl2br(htmlspecialchars($matches[1]));
124 return '<blockquote>' . $pre . '</blockquote>';
125 }, $content);
126 }
127
128 /**
129 * Order a get_posts array by post type.
130 *
131 * @since 4.3.1
132 */
133 function wpappninja_order_by_post_type($a, $b) {
134 return strcmp($a->post_type, $b->post_type);
135 }
136
137 /**
138 * Get taxonomy.
139 *
140 * @since 4.3.3
141 */
142 function wpappninja_get_all_taxonomy() {
143 $taxonomy = array();
144 $_taxonomy = get_taxonomies(array('public'=>true), 'objects');
145 foreach($_taxonomy as $p => $k) {
146 $taxonomy[] = $k->name;
147 }
148
149 return $taxonomy;
150 }
151
152 /**
153 * Cut a sentence on dot or space.
154 *
155 * @since 5.2.8
156 */
157 function wpappninja_nice_cut($string, $max) {
158
159 if (strlen($string) <= $max) {
160 return $string;
161 }
162
163 $max -= 3;
164
165 $string = substr($string, 0, $max);
166
167 $i = strrpos($string, ' ');
168 if ($i !== false) {
169 $string = substr($string, 0, $i);
170 }
171
172 return $string . "...";
173 }
174
175 /**
176 * Get blog name.
177 *
178 * @since 6.4
179 */
180 function wpappninja_get_appname($tiny = false) {
181
182 $app_data = get_wpappninja_option('app');
183 $app_name = isset($app_data['name']) ? $app_data['name'] : get_bloginfo('name');
184
185 /*if ($tiny) {
186 $app_name = preg_replace(
187 array( '#[\\s-]+#', '#[^A-Za-z0-9\. -]+#' ),
188 array( '', ' '),
189 $app_name);
190 }*/
191
192 return $app_name;
193
194 }
195
196 /**
197 * Convert to url.
198 *
199 * @since 6.4
200 */
201 function wpappninja_convertid_to_url($homepage_wpapp) {
202
203 if (preg_match('/^(\?|\/|http|javascript:|mailto:|geo:|tel:|sms:)/', $homepage_wpapp)) {
204 return $homepage_wpapp;
205 }
206
207 if (preg_match('#^cat_#', $homepage_wpapp)) {
208
209 $homepage_wpapp = preg_replace('#^cat_#', '', $homepage_wpapp);
210 $taxonomy = wpappninja_get_all_taxonomy();
211
212 foreach ($taxonomy as $tax) {
213 $obj = get_term_by('id', $homepage_wpapp, $tax);
214 if (is_object($obj)) {
215
216 $homepage_wpapp = get_term_link($obj);
217 break;
218 }
219 }
220 } else {
221
222 if (get_permalink(intval($homepage_wpapp))) {
223 $homepage_wpapp = get_permalink(intval($homepage_wpapp));
224 }
225 }
226
227 if (!preg_match('#^http#', $homepage_wpapp)) {
228 $homepage_wpapp = wpappninja_get_home();
229 }
230
231 return $homepage_wpapp;
232 }
233
234 /**
235 * Translate strings.
236 *
237 * @since 6.4
238 */
239 function wpappninja_translate($s) {
240
241 if (get_wpappninja_option('speed_trad') != 'manual') {
242 return wpappninja_cache_friendly($s);
243 }
244
245 $trads = get_wpappninja_option('trad', array());
246 $lang = wpappninja_get_lang();
247
248 if (isset($trads[md5($s)][$lang])) {
249 return wpappninja_cache_friendly($trads[md5($s)][$lang]);
250 }
251
252 foreach($trads as $trad) {
253 foreach ($trad as $t) {
254 if ($t == $s && $trad[$lang] != "") {
255 return $trad[$lang];
256 }
257 }
258 }
259
260 // no match, return homepage
261 $homepage_wpapp = get_wpappninja_option('pageashome_speed', "");
262 if (isset($trads[md5($homepage_wpapp)][$lang])) {
263 return wpappninja_cache_friendly($trads[md5($homepage_wpapp)][$lang]);
264 }
265
266 return wpappninja_cache_friendly($s);
267 }
268
269 /**
270 * Get nh pos in string.
271 *
272 * @since 6.4.1
273 */
274 function wpappninja_get_pos($search, $string, $offset)
275 {
276 /*** explode the string ***/
277 $arr = explode($search, $string);
278 /*** check the search is not out of bounds ***/
279 switch( $offset )
280 {
281 case $offset == 0:
282 return false;
283 break;
284
285 case $offset > max(array_keys($arr)):
286 return false;
287 break;
288
289 default:
290 return strlen(implode($search, array_slice($arr, 0, $offset)));
291 }
292 }
293
294 /**
295 * Show push notification
296 *
297 * @since 8.1.2
298 */
299 function wpappninja_show_push() {
300
301 global $wpdb;
302 $id = $_GET['wpappninja_read_push'];
303
304 $html = '<div class="post main-post">
305 <div class="wpapp-post-content" data-instant>';
306
307 if ($id == "welcome") {
308 $html .= '<h2>' . get_wpappninja_option('welcome_titre_speed') . '</h2>';
309 $html .= '<h3>' . get_wpappninja_option('welcome_speed') . '</h3>';
310 $html .= stripslashes(get_wpappninja_option('bienvenue_speed'));
311 } else {
312
313 $query = $wpdb->get_results($wpdb->prepare("SELECT `message`, `id_post`, titre, image FROM {$wpdb->prefix}wpappninja_push WHERE `sended` = %s AND id = %s LIMIT 1", '1', $id));
314 foreach($query as $obj) {
315
316 $permalink = $obj->id_post;
317 if (!preg_match('#^http#', $permalink)) {
318 $permalink = get_permalink($obj->id_post);
319 }
320 /*if (!preg_match('#^http#', $permalink)) {
321 $permalink = wpappninja_get_home();
322 }*/
323
324 if (strlen($obj->image) > 2) {
325 $html .= '<img src="' . $obj->image . '" class="hero" alt="" />';
326 }
327
328 $html .= '<h2>' . stripslashes($obj->titre) . '</h2>';
329 $html .= stripslashes($obj->message);
330
331 $read_link = "";
332 if (preg_match('#^http#', $permalink)) {
333 $read_link = '<br/><br/><a class="wpappninja_push_button button" href="' . $permalink . '">' . __('Continue', 'wpappninja') . '</a>';
334 }
335 $html .= $read_link;
336 }
337
338 }
339
340 $html .= '</div>
341 </div>';
342
343 return $html;
344 }
345