PluginProbe
Snippet Shortcodes / 1.1
Snippet Shortcodes v1.1
5.2.1 5.2 5.1.8 5.1.6 5.1.7 5.1.5 trunk 1.0 1.1 1.2 1.3 1.3.1 1.4 1.5 1.5.1 1.6 1.6.1 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.8 2.0 2.0.1 All 74 releases
shortcode-variables / includes / functions.php

functions.php in Snippet Shortcodes 1.1, at includes/functions.php

305 lines 6.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 defined('ABSPATH') or die('Jog on!');
4
5 function sh_cd_get_all_shortcodes()
6 {
7 global $wpdb;
8
9 $sql = 'SELECT * FROM ' . $wpdb->prefix . SH_CD_TABLE . ' order by slug asc';
10
11 $rows = $wpdb->get_results( $sql );
12
13 if (!is_null($rows))
14 return $rows;
15
16 return false;
17
18 }
19
20 function sh_cd_get_shortcode($id)
21 {
22 if (!is_admin())
23 return false;
24
25 global $wpdb;
26
27 $sql = $wpdb->prepare('SELECT slug, data FROM ' . $wpdb->prefix . SH_CD_TABLE . ' where id = %d', $id);
28
29 $row = $wpdb->get_row( $sql );
30
31 if (!is_null($row))
32 return $row;
33
34 return false;
35
36 }
37 function sh_cd_get_shortcode_by_slug($slug)
38 {
39 global $wpdb;
40
41 $sql = $wpdb->prepare('SELECT data FROM ' . $wpdb->prefix . SH_CD_TABLE . ' where slug = %s', $slug);
42
43 $row = $wpdb->get_var( $sql );
44
45 if (!is_null($row))
46 return stripslashes($row);
47
48 return false;
49
50 }
51 function sh_cd_get_slug_by_id($id)
52 {
53 global $wpdb;
54
55 $sql = $wpdb->prepare('SELECT slug FROM ' . $wpdb->prefix . SH_CD_TABLE . ' where id = %d', $id);
56
57 $row = $wpdb->get_var( $sql );
58
59 if (!is_null($row))
60 return $row;
61
62 return false;
63
64 }
65
66 function sh_cd_save_shortcode($slug, $data, $id = false)
67 {
68 if (!is_admin())
69 return false;
70
71 if (false == $id && empty($slug))
72 return false;
73
74 global $wpdb;
75
76 $slug = sh_cd_get_slug($slug);
77
78 $result = false;
79
80 if ($id)
81 {
82 //Update data (Slug can never be updated!)
83 $result = $wpdb->update(
84 $wpdb->prefix . SH_CD_TABLE,
85 array(
86 'data' => $data
87 ),
88 array( 'id' => $id),
89 array(
90 '%s'
91 ),
92 array( '%d' )
93 );
94
95 sh_cd_delete_cache(sh_cd_get_slug_by_id($id));
96 }
97 else
98 {
99 $result = $wpdb->insert(
100 $wpdb->prefix . SH_CD_TABLE,
101 array(
102 'slug' => $slug,
103 'data' => $data
104 ),
105 array(
106 '%s',
107 '%s'
108 )
109 );
110
111 sh_cd_delete_cache($slug);
112 }
113
114 if (false === $result) {
115 return false;
116 }
117 else
118 {
119 return true;
120 }
121
122 }
123
124 function sh_cd_delete_shortcode($id)
125 {
126 if (!is_admin() || !is_numeric($id))
127 return false;
128
129 global $wpdb;
130
131 if (false === $wpdb->delete( $wpdb->prefix . SH_CD_TABLE, array( 'id' => $id ) )) {
132 return false;
133 }
134 else {
135 return true;
136 }
137
138 }
139
140 function sh_cd_get_slug($text)
141 {
142 if(!empty($text))
143 {
144 $text = sanitize_title($text);
145
146 $original_slug = $text;
147
148 $try = 1;
149
150 // If slug exists, then fetch a unique one!
151 while (!sh_cd_is_slug_unique($text))
152 {
153 $text = $original_slug . '_' . $try;
154
155 $try++;
156 }
157 }
158
159 return $text;
160 }
161
162 function sh_cd_is_slug_unique($slug)
163 {
164 if (!is_admin() || empty($slug))
165 return false;
166
167 global $wpdb;
168
169 $sql = $wpdb->prepare('SELECT count(slug) FROM ' . $wpdb->prefix . SH_CD_TABLE . ' where slug = %s', $slug);
170
171 $row = $wpdb->get_var( $sql );
172
173 if(0 == $row)
174 {
175 return true;
176 }
177 else
178 {
179 return false;
180 }
181
182
183 }
184
185 function sh_cd_create_database_table()
186 {
187 global $wpdb;
188
189 $table_name = $wpdb->prefix . SH_CD_TABLE;
190
191 $charset_collate = $wpdb->get_charset_collate();
192
193 $sql = "CREATE TABLE $table_name (
194 id mediumint(9) NOT NULL AUTO_INCREMENT,
195 slug varchar(100) NOT NULL,
196 data text,
197 UNIQUE KEY id (id)
198 ) $charset_collate;";
199
200 $wpdb->query($sql);
201
202 }
203
204 function sh_cd_display_message($text, $error = false)
205 {
206 if (!empty($text))
207 {
208 $class = (($error) ? 'error' : 'updated');
209
210 echo '<div class="' . $class . '">
211 <p>' . $text . '</p>
212 </div>';
213 }
214 }
215
216 function sh_cd_create_dialog_jquery_code($title, $message, $class_used_to_prompt_confirmation, $js_call = false)
217 {
218 global $wp_scripts;
219 $queryui = $wp_scripts->query('jquery-ui-core');
220 $url = "//ajax.googleapis.com/ajax/libs/jqueryui/".$queryui->ver."/themes/smoothness/jquery-ui.css";
221 wp_enqueue_script( 'jquery-ui-dialog' );
222 wp_enqueue_style('jquery-ui-smoothness', $url, false, null);
223
224 $id_hash = md5($title . $message . $class_used_to_prompt_confirmation);
225
226 ?>
227 <div id='<?php echo $id_hash; ?>' title='<?php echo $title; ?>'>
228 <p><?php echo $message; ?></p>
229 </div>
230 <script>
231 jQuery(function($) {
232
233 var $info = $('#<?php echo $id_hash; ?>');
234
235 $info.dialog({
236 'dialogClass' : 'wp-dialog',
237 'modal' : true,
238 'autoOpen' : false
239 });
240
241 $('.<?php echo $class_used_to_prompt_confirmation; ?>').click(function(event) {
242
243 event.preventDefault();
244
245 target_url = $(this).attr('href');
246
247 var $info = $('#<?php echo $id_hash; ?>');
248
249 $info.dialog({
250 'dialogClass' : 'wp-dialog',
251 'modal' : true,
252 'autoOpen' : false,
253 'closeOnEscape' : true,
254 'buttons' : {
255 'Yes': function() {
256
257 <?php if ($js_call != false): ?>
258 <?php echo $js_call; ?>
259
260 $(this).dialog('close');
261 <?php else: ?>
262 window.location.href = target_url;
263 <?php endif; ?>
264 },
265 'No': function() {
266 $(this).dialog('close');
267 }
268 }
269 });
270
271 $info.dialog('open');
272 });
273
274 });
275
276
277
278
279 </script>
280
281 <?php
282 }
283
284 function sh_cd_get_cache($key)
285 {
286 $key = sh_cd_generate_cache_key($key);
287
288 return get_transient($key);
289 }
290 function sh_cd_set_cache($key, $data)
291 {
292 $key = sh_cd_generate_cache_key($key);
293
294 set_transient($key, $data, SH_CD_CACHING_TIME);
295 }
296 function sh_cd_delete_cache($key)
297 {
298 $key = sh_cd_generate_cache_key($key);
299
300 return delete_transient($key);
301 }
302 function sh_cd_generate_cache_key($key)
303 {
304 return SH_CD_SHORTCODE . $key;
305 }