PluginProbe
Social Share Buttons / 1.30
Social Share Buttons v1.30
trunk 0.9 1.0 1.1 1.1.1 1.1.2 1.10 1.11 1.12 1.15 1.16 1.17 1.18 1.19 1.2 1.20 1.3 1.30 1.4 1.5 1.6 1.7 1.8 1.9
← All changes | classes/class-admin.php +188 -11 1.01.30 View file →
@@ -56,9 +56,8 @@
56 56 {
57 57 $fields = apply_filters('mbsocial/display_fields', $this->fields);
58 58 $output = '';
59 59
60 -
61 60 foreach($fields as $id => $item)
62 61 {
63 62 $field = $item['field'];
64 63 $output .= $field->output($item['start'], $item['end']);
@@ -101,9 +100,8 @@
101 100 {
102 101 $active_networks = array();
103 102 }
104 103 $networks = mbSocial()->networks()->get();
105 -
106 104 $selected = array();
107 105 $unselected = array();
108 106 $readmore = array();
109 107
@@ -110,14 +108,19 @@
110 108 // set active networks. Support doubles.
111 109 foreach($active_networks as $index => $network_name)
112 110 {
113 111 $network = mbSocial()->networks()->get($network_name);
114 - $selected[$index] = $network;
112 + if (! is_object($network)) // could be removed network.
113 + continue;
114 + if ($network->get('is_active'))
115 + $selected[$index] = $network;
115 116 }
116 117
117 118 foreach($networks as $index => $network)
118 119 {
119 120 $priority = $network->get('priority');
121 + if (! $network->get('is_active'))
122 + { continue; }
120 123 $is_active = array_search($network->get('network'), $active_networks); // retrieve the array index
121 124
122 125 if ($is_active !== false)
123 126 {
@@ -123,22 +126,16 @@
123 126 {
124 127 $priority = 'selected';
125 128 }
126 129
127 - /* if ($priority == 'selected')
128 - {
129 - continue; // ignore active, since it's set earlier.
130 - //$selected[$is_active] = $network;
131 -
132 - } */
133 130 if ($priority == 'unselected')
134 131 $unselected[] = $network;
135 132 if ($priority == 'readmore')
136 133 $readmore[] = $network;
137 134
138 -
139 135 if ($network->get('network') == 'maxbutton' && $priority != 'readmore') // exceptions
140 136 {
137 +
141 138 $readmore[] = $network;
142 139 }
143 140
144 141
@@ -143,9 +140,8 @@
143 140
144 141
145 142 } // foreach networks
146 143
147 -
148 144 // Sort networks by order saved.
149 145 ksort($selected);
150 146 return array('selected' => $selected, 'unselected' => $unselected, 'readmore' => $readmore);
151 147 }
@@ -158,8 +154,110 @@
158 154 $networks_array = $this->get_default_networks($active_networks);
159 155 return $networks_array;
160 156 }
161 157
158 + // render icons with input from different icon libraries (/future)
159 + public function renderIcon($args)
160 + {
161 + $defaults = array('icon' => '',
162 + 'icon_type' => '',
163 + 'icon_size' => 20,
164 + 'title' => '',
165 + );
166 +
167 + $args = wp_parse_args($args, $defaults);
168 +
169 + $icon_type = $args['icon_type'];
170 + $icon = $args['icon'];
171 + $icon_size = $args['icon_size'];
172 + $title = $args['title'];
173 +
174 + $faUtils = FAUtils::getInstance();
175 +
176 + switch($icon_type)
177 + {
178 + case 'fa': // FA5
179 + case 'fab':
180 + case 'fas':
181 + case 'far':
182 + $args = array('icon' => trim($icon_type) . ' ' . trim($icon), 'title' => $title);
183 + if ($icon_size)
184 + {
185 + $args['size'] = $icon_size;
186 + }
187 +
188 + $svg = $faUtils->getFASVG($args);
189 + $output = "<span class='mb-icon'>$svg</span>";
190 + break;
191 + case 'nucleo':
192 + $output = "<span class='mb-icon'><i class='$icon_type $icon' title='$title' > </i></span>";
193 + break;
194 + case 'svg':
195 + case 'png': // via network settings, or whatever.
196 + $output = "<span class='mb-icon " . $icon_type . "'><img src='" . $icon . "' alt='" . $title . "'></span>";
197 + break;
198 + case 'image': // via media uploader
199 + case 'image-remote':
200 + if ($icon_type == 'image-remote') // when loading a custom network, before import
201 + {
202 + $url = $args['image_url'];
203 + $output = '<img src="' . $url . '" border="0" />';
204 + }
205 + else {
206 + $image_id = isset($args['image_id']) ? $args['image_id'] : false;
207 + $image_size = isset($args['image_size']) ? $args['image_size'] : false;
208 +
209 + $img_data = wp_get_attachment_image_src($image_id, $image_size);
210 + $output = '';
211 +
212 + if ($img_data)
213 + {
214 + $width = $img_data[1];
215 + $height = $img_data[2];
216 + $url = $img_data[0];
217 + $output = '<span class="mb-icon ' . $icon_type . '"><img src="' . $url . '" width="' . $width . '" height="' . $height . '" border="0" /></span>';
218 + }
219 +
220 + }
221 + break;
222 + default:
223 + $output = '';
224 + break;
225 + }
226 +
227 + return apply_filters('display/render/icon', $output, $args);
228 + }
229 +
230 + public function applyVars($string)
231 + {
232 + //$vars = $this->getShareData();
233 + $w = MBSocial()->whistle();
234 +
235 + preg_match_all('/\{(.*?)\}/im', $string, $matches);
236 + //$vars = (isset($vars[0]) && count($vars[0]) > 0) ? $vars[0] : array();
237 +
238 + if (count($matches) == 0)
239 + return $string;
240 +
241 + $vars = $matches[0]; // i.e. {url}
242 + $clean_vars = $matches[1]; // i.e. url
243 +
244 + for($i = 0; $i < count($vars); $i++)
245 + {
246 + $var = $vars[$i];
247 + $clean_var = $clean_vars[$i];
248 +
249 + if (strpos($string, $var) !== false)
250 + {
251 + $val = $w->ask('display/vars/' . $clean_var);
252 + $string = str_replace($var, $val, $string);
253 + }
254 +
255 + }
256 +
257 + return $string;
258 + }
259 +
162 260 public function header( $args = array() )
163 261 {
164 262 $defaults = array(
165 263 'title' => '',
@@ -182,6 +280,85 @@
182 280 <a href="https://maxbuttons.com" target="_blank">', '</a>') );
183 281 }
184 282
185 283
284 + public function do_review_notice () {
285 +
286 + $current_user_id = get_current_user_id();
287 + $version = MBSOCIAL_VERSION_NUM;
288 +
289 + $review = get_user_meta( $current_user_id, 'mbsocial_review_notice' , true );
290 +
291 + if ($review == '')
292 + {
293 + //$created = get_option("MBFREE_CREATED");
294 + $show = time() + (7* DAY_IN_SECONDS);
295 + update_user_meta($current_user_id, 'mbsocial_review_notice', $show);
296 + return;
297 + }
298 +
299 + $display_review = false;
300 +
301 + if ($review == 'off')
302 + { return; // no show
303 +
304 + }
305 + elseif (is_numeric($review))
306 + {
307 + $now = time();
308 +
309 + if ($now > $review)
310 + {
311 + $display_review = true;
312 +
313 + }
314 + }
315 +
316 + // load style / script. It's seperated since it should show everywhere in admin.
317 + if ($display_review)
318 + {
319 + add_action( 'admin_notices', array( $this, 'mbsocial_review_notice'));
320 + // registered in admin scripts
321 + if (method_exists(MB(), 'load_library'))
322 + MB()->load_library('review_notice');
323 + }
324 +
325 + }
326 +
327 + public function mbsocial_review_notice()
328 + {
329 + include_once( mbSocial()->get_plugin_path() . '/admin/review_notice.php');
330 + }
331 +
332 + public function save_review_notice()
333 + {
334 + $status = isset($_POST["status"]) ? sanitize_text_field($_POST["status"]) : '';
335 + $current_user_id = get_current_user_id();
336 +
337 + $updated = false;
338 +
339 + if ($status == 'off')
340 + {
341 + $updated = true;
342 + update_user_meta($current_user_id, 'mbsocial_review_notice', 'off');
343 +
344 + }
345 + if ($status == 'later')
346 + {
347 + $updated = true;
348 + $later = time() + (14 * DAY_IN_SECONDS );
349 +
350 + update_user_meta($current_user_id, 'mbsocial_review_notice', $later);
351 + }
352 + if ($status == 'reviewoffer-dismiss') // different ad!
353 + {
354 + $updated = true;
355 + update_user_meta($current_user_id, 'mbsocial_review_notice', 'off');
356 +
357 + }
358 +
359 + echo json_encode(array("updated" => $updated)) ;
360 +
361 + exit();
362 + }
186 363
187 364 }