PluginProbe
Snippet Shortcodes / 1.3.1
Snippet Shortcodes v1.3.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.3.1, at includes/functions.php

313 lines 7.0 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 var_dump(in_array($text, sh_cd_shortcode_presets()));
150
151 // If slug exists, then fetch a unique one!
152 // v1.1: and ensure slug isn't a preset
153 while (!sh_cd_is_slug_unique($text))
154 {
155 $text = $original_slug . '_' . $try;
156
157 $try++;
158 }
159 }
160
161 return $text;
162 }
163
164 function sh_cd_is_slug_unique($slug)
165 {
166 if (!is_admin() || empty($slug))
167 return false;
168
169 // 1.1 Ensure slug is not a prefix
170 if (sh_cd_is_shortcode_preset($slug))
171 return false;
172
173 global $wpdb;
174
175 $sql = $wpdb->prepare('SELECT count(slug) FROM ' . $wpdb->prefix . SH_CD_TABLE . ' where slug = %s', $slug);
176
177 $row = $wpdb->get_var( $sql );
178
179 if(0 == $row)
180 {
181 return true;
182 }
183 else
184 {
185 return false;
186 }
187
188
189 }
190
191 function sh_cd_create_database_table()
192 {
193 global $wpdb;
194
195 $table_name = $wpdb->prefix . SH_CD_TABLE;
196
197 $charset_collate = $wpdb->get_charset_collate();
198
199 $sql = "CREATE TABLE $table_name (
200 id mediumint(9) NOT NULL AUTO_INCREMENT,
201 slug varchar(100) NOT NULL,
202 data text,
203 UNIQUE KEY id (id)
204 ) $charset_collate;";
205
206 $wpdb->query($sql);
207
208 update_option('sh-cd-version', SH_CD_PLUGIN_VERSION);
209
210 }
211
212 function sh_cd_display_message($text, $error = false)
213 {
214 if (!empty($text))
215 {
216 $class = (($error) ? 'error' : 'updated');
217
218 echo '<div class="' . $class . '">
219 <p>' . $text . '</p>
220 </div>';
221 }
222 }
223
224 function sh_cd_create_dialog_jquery_code($title, $message, $class_used_to_prompt_confirmation, $js_call = false)
225 {
226 global $wp_scripts;
227 $queryui = $wp_scripts->query('jquery-ui-core');
228 $url = "//ajax.googleapis.com/ajax/libs/jqueryui/".$queryui->ver."/themes/smoothness/jquery-ui.css";
229 wp_enqueue_script( 'jquery-ui-dialog' );
230 wp_enqueue_style('jquery-ui-smoothness', $url, false, null);
231
232 $id_hash = md5($title . $message . $class_used_to_prompt_confirmation);
233
234 ?>
235 <div id='<?php echo $id_hash; ?>' title='<?php echo $title; ?>'>
236 <p><?php echo $message; ?></p>
237 </div>
238 <script>
239 jQuery(function($) {
240
241 var $info = $('#<?php echo $id_hash; ?>');
242
243 $info.dialog({
244 'dialogClass' : 'wp-dialog',
245 'modal' : true,
246 'autoOpen' : false
247 });
248
249 $('.<?php echo $class_used_to_prompt_confirmation; ?>').click(function(event) {
250
251 event.preventDefault();
252
253 target_url = $(this).attr('href');
254
255 var $info = $('#<?php echo $id_hash; ?>');
256
257 $info.dialog({
258 'dialogClass' : 'wp-dialog',
259 'modal' : true,
260 'autoOpen' : false,
261 'closeOnEscape' : true,
262 'buttons' : {
263 'Yes': function() {
264
265 <?php if ($js_call != false): ?>
266 <?php echo $js_call; ?>
267
268 $(this).dialog('close');
269 <?php else: ?>
270 window.location.href = target_url;
271 <?php endif; ?>
272 },
273 'No': function() {
274 $(this).dialog('close');
275 }
276 }
277 });
278
279 $info.dialog('open');
280 });
281
282 });
283
284
285
286
287 </script>
288
289 <?php
290 }
291
292 function sh_cd_get_cache($key)
293 {
294 $key = sh_cd_generate_cache_key($key);
295
296 return get_transient($key);
297 }
298 function sh_cd_set_cache($key, $data)
299 {
300 $key = sh_cd_generate_cache_key($key);
301
302 set_transient($key, $data, SH_CD_CACHING_TIME);
303 }
304 function sh_cd_delete_cache($key)
305 {
306 $key = sh_cd_generate_cache_key($key);
307
308 return delete_transient($key);
309 }
310 function sh_cd_generate_cache_key($key)
311 {
312 return SH_CD_SHORTCODE . $key;
313 }