Social Media Widget - Version 3.3

Version Description

  • Added back support to iTunes after several requests
  • Increased performance and page load speed due to greatly reduced PNG file sizes
Download this release

Release Info

Developer bmwebproperties
Plugin Icon 128x128 Social Media Widget
Version 3.3
Comparing to
See all releases

Code changes from version 4.0 to 3.3

images/default/16/twitter.png CHANGED
Binary file
images/default/32/twitter.png CHANGED
Binary file
images/default/64/twitter.png CHANGED
Binary file
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: bmwebproperties
3
  Tags: social media, twitter, facebook, google+, googleplus, myspace, digg, email, rss, reddit, linkedin, orkut, youtube, vk, buzz, social, icons, links, subscribe, follow, follow me, friendfeed, flickr, stumbleupon, vimeo, delicious, meetup, lastfm, foursquare, skype, blogger, wordpress, yelp, soundcloud, digital tunes, tumblr, hyves, etsy, tungle, plancast, slideshare, deviantart, better business bureau, merchant circle, asmallworld, live365, ping, itunes, picasa, steam, google talk, pandora, hulu, ebay, flixster, imdb, bandcamp, ustream, pinterest, instagram, skyrock, github, goodreads, about me
4
  Requires at least: 2.9.2
5
  Tested up to: 3.5.1
6
- Stable tag: 4.0
7
 
8
  Adds links to all of your social media and sharing site profiles. Tons of icons come in 3 sizes, 4 icon styles, and 4 animations.
9
 
@@ -101,8 +101,6 @@ The Social Media Widget is a simple sidebar widget that allows users to input th
101
 
102
  * Align your widget left, center, or right.
103
 
104
- * Arrange the order of the icons however you like.
105
-
106
  * Choose to the number of icons per row. Currently you can have one icon per row or auto (maximum # based on the width of the container the widget is placed in).
107
 
108
  If you like this plugin, please rate it and click "Works" for your Wordpress version!
@@ -180,15 +178,6 @@ Please add a post on the Wordpress.org support forums with the plugin tagged.
180
 
181
  == Changelog ==
182
 
183
- = 4.0 =
184
-
185
- * MAJOR NEW RELEASE!
186
- * Arrange your icons in a custom order!
187
- * You can now adjust the Alt and Title tags for each icon individually.
188
- * Change the "target" properties for each icon individually (open in same or new window).
189
- * Google+ now includes rel="publisher"
190
- * Updated Twitter icon in default pack to the official icon
191
-
192
  = 3.3 =
193
 
194
  * Added back support to iTunes after several requests
3
  Tags: social media, twitter, facebook, google+, googleplus, myspace, digg, email, rss, reddit, linkedin, orkut, youtube, vk, buzz, social, icons, links, subscribe, follow, follow me, friendfeed, flickr, stumbleupon, vimeo, delicious, meetup, lastfm, foursquare, skype, blogger, wordpress, yelp, soundcloud, digital tunes, tumblr, hyves, etsy, tungle, plancast, slideshare, deviantart, better business bureau, merchant circle, asmallworld, live365, ping, itunes, picasa, steam, google talk, pandora, hulu, ebay, flixster, imdb, bandcamp, ustream, pinterest, instagram, skyrock, github, goodreads, about me
4
  Requires at least: 2.9.2
5
  Tested up to: 3.5.1
6
+ Stable tag: 3.3
7
 
8
  Adds links to all of your social media and sharing site profiles. Tons of icons come in 3 sizes, 4 icon styles, and 4 animations.
9
 
101
 
102
  * Align your widget left, center, or right.
103
 
 
 
104
  * Choose to the number of icons per row. Currently you can have one icon per row or auto (maximum # based on the width of the container the widget is placed in).
105
 
106
  If you like this plugin, please rate it and click "Works" for your Wordpress version!
178
 
179
  == Changelog ==
180
 
 
 
 
 
 
 
 
 
 
181
  = 3.3 =
182
 
183
  * Added back support to iTunes after several requests
social-widget.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Social Media Widget
4
  * Plugin URI: http://wordpress.org/extend/plugins/social-media-widget/
5
  * Description: Adds links to all of your social media and sharing site profiles. Tons of icons come in 3 sizes, 4 icon styles, and 4 animations.
6
- * Version: 4.0
7
  * Author: Blink Web Effects
8
  * Author URI: http://blinkwebeffects.com/
9
  **/
@@ -281,57 +281,6 @@ class Social_Widget extends WP_Widget {
281
  $this->custom_count = 12;
282
  }
283
 
284
- function initData( $instance ) {
285
- $this->imgcaption = $instance['imgcaption'];
286
- $this->animation = $instance['animation'];
287
- $this->icon_opacity = $instance['icon_opacity'];
288
- $this->newtab = $instance['newtab'];
289
- $this->nofollow = $instance['nofollow'];
290
- $this->icon_size = $instance['icon_size'];
291
- // $this->display_titles = $instance['display_titles'];
292
- $this->icons_per_row = isset($instance['icons_per_row']) ? $instance['icons_per_row'] : 'auto';
293
- $this->alignment = $instance['alignment'];
294
- $this->icon_pack = $instance['icon_pack'];
295
- $this->slugs = array();
296
-
297
- for ($i = 1; $i <= $this->custom_count; $i++) {
298
- ${"custom".$i."icon"} = isset($instance['custom'.$i.'icon']) ? $instance['custom'.$i.'icon'] : '';
299
- ${"custom".$i."name"} = isset($instance['custom'.$i.'name']) ? $instance['custom'.$i.'name'] : '';
300
- ${"custom".$i."url"} = isset($instance['custom'.$i.'url']) ? $instance['custom'.$i.'url'] : '';
301
- }
302
-
303
- /* Choose Icon Size if Value is 'default' */
304
- if($this->icon_size == 'default') {
305
- $this->icon_size = '32';
306
- }
307
-
308
- /* Choose icon opacity if Value is 'default' */
309
- if($this->icon_opacity == 'default') {
310
- $this->icon_opacity = '0.8';
311
- }
312
-
313
- /* Check to see if nofollow is set or not */
314
- if ($this->nofollow == 'on') {
315
- $this->nofollow = "rel=\"nofollow\"";
316
- } else {
317
- $this->nofollow = '';
318
- }
319
-
320
- /* Get Plugin Path */
321
- if($instance['icon_pack'] == 'custom') {
322
- $this->smw_path = $customiconsurl;
323
- $this->smw_dir = $customiconspath;
324
- } else {
325
- if (!is_numeric($this->icon_size)) { $folder = 32; }
326
- else if ($this->icon_size <= 16) { $folder = 16; }
327
- else if ($this->icon_size > 16 && $this->icon_size <= 32) { $folder = 32; }
328
- else if ($this->icon_size > 32) { $folder = 64; }
329
- $this->smw_path = SMW_PLUGINPATH . 'images/' . $instance['icon_pack']. '/' . $folder;
330
- $this->smw_dir = SMW_PLUGINDIR . 'images/' . $instance['icon_pack']. '/' . $folder;
331
- }
332
-
333
- }
334
-
335
  /* Display the widget */
336
  function widget( $args, $instance ) {
337
  extract( $args );
@@ -340,12 +289,6 @@ class Social_Widget extends WP_Widget {
340
  $title = apply_filters('widget_title', $instance['title'] );
341
  $text = apply_filters( 'widget_text', $instance['text'], $instance );
342
 
343
- $this->slugorder = (array)$instance['slugorder'];
344
-
345
- $this->slugtargets = (array)$instance['slugtargets'];
346
- $this->slugtitles = (array)$instance['slugtitles'];
347
- $this->slugalts = (array)$instance['slugalts'];
348
-
349
  $this->imgcaption = $instance['imgcaption'];
350
  $this->animation = $instance['animation'];
351
  $this->icon_opacity = $instance['icon_opacity'];
@@ -424,9 +367,7 @@ class Social_Widget extends WP_Widget {
424
  $this->smw_path = SMW_PLUGINPATH . 'images/' . $icon_pack. '/' . $folder;
425
  $this->smw_dir = SMW_PLUGINDIR . 'images/' . $icon_pack. '/' . $folder;
426
  }
427
-
428
-
429
-
430
  /* Before widget (defined by themes). */
431
  echo $before_widget;
432
 
@@ -448,26 +389,18 @@ class Social_Widget extends WP_Widget {
448
  $html_chunks = array();
449
 
450
  foreach ($this->networks as $slug => $ndata) {
451
- $html_chunks[$slug] = $this->html_chunk( $slug, $$slug, $ndata['image'], $ndata['title'] );
452
  }
453
 
454
  for ($i = 1; $i <= $this->custom_count; $i++) {
455
- $slug = "custom".$i;
456
- $html_chunks[$slug] = $this->html_chunk( $slug, ${"custom".$i."url"}, ${"custom".$i."icon"}, ${"custom".$i."name"}, true );
457
  }
458
 
459
  foreach ($this->networks_end as $slug => $ndata) {
460
- $html_chunks[$slug] = $this->html_chunk( $slug, $$slug, $ndata['image'], $ndata['title'] );
461
  }
462
-
463
- foreach( (array) $this->slugorder as $slug )
464
- if ( key_exists($slug, $html_chunks) ) echo $html_chunks[$slug];
465
-
466
- foreach( $html_chunks as $slug => $html )
467
- if ( ! in_array($slug, (array) $this->slugorder) ) echo $html;
468
-
469
- //echo implode('', $html_chunks);
470
 
 
471
 
472
  /* After widget (defined by themes). */
473
 
@@ -476,8 +409,8 @@ class Social_Widget extends WP_Widget {
476
  echo $after_widget;
477
  }
478
 
479
- function html_chunk( $name, $slug, $image, $title, $custom = false ) {
480
- if ( strlen($slug) > 7 && (($custom === false && file_exists($this->smw_dir . '/' . $image)) || ($custom === true && $image != ''))) {
481
  $img = $custom === false ? $this->smw_path . '/' . $image : $image;
482
  $html = '';
483
  // $html = '<span class="smw_icon">';
@@ -489,12 +422,8 @@ class Social_Widget extends WP_Widget {
489
  $html .= '<span> ' . $title . ' </span><br/>';
490
  }
491
  */
492
- $target= empty( $this->slugtargets[$name] ) ? $this->newtab : 'target="'.$this->slugtargets[$name].'"';
493
- $html .= '<a href="' . $slug . '" ' . ($name == 'googleplus' ? 'rel="publisher"' : $this->nofollow) . ' ' . $target.'>';
494
- $html .= '<img width="' . $this->icon_size .'" height="' . $this->icon_size . '" src="' . $img . '"
495
- alt="' . esc_attr(empty($this->slugalts[$name]) ? "$this->imgcaption $title": $this->slugalts[$name]).'"
496
- title="' . esc_attr(empty($this->slugtitles[$name]) ? "$this->imgcaption $title" : $this->slugtitles[$name]) . '" ' .
497
- ($this->animation == 'fade' || $this->animation == 'combo' ? 'style="opacity: ' . $this->icon_opacity . '; -moz-opacity: ' . $this->icon_opacity . ';"' : '') . ' class="' . $this->animation . '" />';
498
  $html .= '</a>';
499
  /*
500
  if ($this->display_titles == 'right') {
@@ -533,11 +462,6 @@ class Social_Widget extends WP_Widget {
533
  $instance['display_titles'] = $new_instance['display_titles'];
534
  $instance['icons_per_row'] = $new_instance['icons_per_row'];
535
 
536
- $instance['slugtargets'] = (array)$new_instance['slugtargets'] + (array)$instance['slugtargets'];
537
- $instance['slugtitles'] = (array)$new_instance['slugtitles'] + (array)$instance['slugtitles'];
538
- $instance['slugalts'] = (array)$new_instance['slugalts'] + (array)$instance['slugalts'];
539
- $instance['slugorder'] = (array)$new_instance['slugorder'];
540
-
541
  foreach ($this->networks as $slug => $ndata) {
542
  $instance[$slug] = !empty($new_instance[$slug]) ? strip_tags( $new_instance[$slug] ) : 'http://';
543
  // $instance[$slug.'_title'] = strip_tags( $new_instance[$slug.'_title'] );
@@ -565,8 +489,7 @@ class Social_Widget extends WP_Widget {
565
  * when creating your form elements. This handles the confusing stuff.
566
  */
567
  function form( $instance ) {
568
- error_reporting(0);
569
- $this->initData( $instance );
570
  /* Set up some default widget settings. */
571
  $defaults = array(
572
  'title' => __('Follow Us!', 'smw'),
@@ -609,9 +532,8 @@ class Social_Widget extends WP_Widget {
609
  <div>
610
  <p><a href="javascript:;" onclick="jQuery(this).parent().next('div').slideToggle();" style="background: url('images/arrows.png') no-repeat; padding-left: 15px;"><strong>General Settings</strong></a></p>
611
 
612
- <div style="display: block;">
613
  <!-- Widget Title: Text Input -->
614
-
615
  <p>
616
  <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e('Title:', 'smw'); ?></label>
617
  <input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" class="widefat" type="text" />
@@ -741,54 +663,6 @@ class Social_Widget extends WP_Widget {
741
  </select>
742
  </p>
743
  <div class="clear"></div>
744
- <div>
745
- <small>Icons will appear in the same order they are arranged here. You can reorder icons with mouse.</small>
746
- <ol class="media-icons-sortable" style="margin: 0 0 0 10px;">
747
- <?php
748
- $fname = $this->get_field_name( 'slugtargets' );
749
- $tname = $this->get_field_name( 'slugtitles' );
750
- $aname = $this->get_field_name( 'slugalts' );
751
- $oname = $this->get_field_name( 'slugorder' );
752
- $blocks = array();
753
- $cnt=0;
754
- foreach (array_merge($this->networks, $this->networks_end) as $slug => $ndata) :
755
- $href = $instance[$slug];
756
- $img = $this->smw_dir . '/' . $ndata['image'];
757
- if (strlen($href) > 7 && file_exists($img)) :
758
- ob_start();
759
- ?>
760
- <li class="sort-item" style="clear: both; border-top: 1px solid #dfdfdf; height: 82px; background: #f1f1f1; margin:0; padding:0;">
761
- <img width="24" height="24" style="float: left; padding: 25px 0px; cursor: move;" src="<?php echo $this->smw_path . '/' . $ndata['image']; ?>" />
762
- <input name="<?php echo "{$oname}[]"; ?>" value="<?php echo esc_attr($slug); ?>" type="hidden" />
763
- <table style="float: right">
764
- <tr>
765
- <td>Title</td>
766
- <td><input name="<?php echo "{$tname}[$slug]"; ?>" value="<?php echo esc_attr($instance['slugtitles'][$slug]); ?>" type="text" /></td>
767
- </tr>
768
- <tr>
769
- <td>Alt</td>
770
- <td><input name="<?php echo "{$aname}[$slug]"; ?>" value="<?php echo esc_attr($instance['slugalts'][$slug]); ?>" type="text" /></td>
771
- </tr>
772
- <tr>
773
- <td>Target</td>
774
- <?php $targ = @$instance['slugtargets'][$slug]; ?>
775
- <td><select name="<?php echo "{$fname}[$slug]"; ?>">
776
- <option value="" <?php selected("", $targ); ?>>Default</option>
777
- <option value="_blank" <?php selected("_blank", $targ); ?>>New Tab/Window</option>
778
- <option value="_self" <?php selected("_self", $targ); ?>>Same Tab/Window</option>
779
- </select></td>
780
- </tr>
781
- </table>
782
- </li>
783
- <?php
784
- $blocks[$slug] = ob_get_clean();
785
- endif;
786
- endforeach;
787
- foreach( (array) @$instance['slugorder'] as $slug ) echo $blocks[$slug];
788
- foreach( $blocks as $slug => $html ) if ( ! in_array($slug, (array) @$instance['slugorder']) ) echo $html;
789
- ?>
790
- </ol>
791
- </div>
792
  </div>
793
 
794
 
@@ -1048,20 +922,14 @@ class Social_Widget extends WP_Widget {
1048
  <label for="<?php echo $this->get_field_id( 'customiconspath' ); ?>"><?php _e('Custom Icons Path:', 'smw'); ?></label>
1049
  <input id="<?php echo $this->get_field_id( 'customiconspath' ); ?>" name="<?php echo $this->get_field_name( 'customiconspath' ); ?>" value="<?php echo $instance['customiconspath']; ?>" class="widefat" type="text" />
1050
  </p>
 
 
 
 
1051
  </div>
1052
- <script type="text/javascript">
1053
- jQuery(function($){
1054
- $('ol.media-icons-sortable').sortable({
1055
- forcePlaceholderSize: true,
1056
- start: function(e, ui){
1057
- ui.placeholder.height(ui.item.height());
1058
- }
1059
- });
1060
- });
1061
- </script>
1062
  <div style="clear: both;"></div>
1063
  <!-- Promo -->
1064
- <br /><p><b>Are you looking for <b>custom development</b>, <b>SEO</b> or <b>online marketing</b> services? <a href="http://blinkwebeffects.com/services/" target="_blank">
1065
  Click here to learn more and contact us today.</a></b></p>
1066
 
1067
 
3
  * Plugin Name: Social Media Widget
4
  * Plugin URI: http://wordpress.org/extend/plugins/social-media-widget/
5
  * Description: Adds links to all of your social media and sharing site profiles. Tons of icons come in 3 sizes, 4 icon styles, and 4 animations.
6
+ * Version: 3.3
7
  * Author: Blink Web Effects
8
  * Author URI: http://blinkwebeffects.com/
9
  **/
281
  $this->custom_count = 12;
282
  }
283
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
284
  /* Display the widget */
285
  function widget( $args, $instance ) {
286
  extract( $args );
289
  $title = apply_filters('widget_title', $instance['title'] );
290
  $text = apply_filters( 'widget_text', $instance['text'], $instance );
291
 
 
 
 
 
 
 
292
  $this->imgcaption = $instance['imgcaption'];
293
  $this->animation = $instance['animation'];
294
  $this->icon_opacity = $instance['icon_opacity'];
367
  $this->smw_path = SMW_PLUGINPATH . 'images/' . $icon_pack. '/' . $folder;
368
  $this->smw_dir = SMW_PLUGINDIR . 'images/' . $icon_pack. '/' . $folder;
369
  }
370
+
 
 
371
  /* Before widget (defined by themes). */
372
  echo $before_widget;
373
 
389
  $html_chunks = array();
390
 
391
  foreach ($this->networks as $slug => $ndata) {
392
+ $html_chunks[] = $this->html_chunk( $$slug, $ndata['image'], $ndata['title'] );
393
  }
394
 
395
  for ($i = 1; $i <= $this->custom_count; $i++) {
396
+ $html_chunks[] = $this->html_chunk( ${"custom".$i."url"}, ${"custom".$i."icon"}, ${"custom".$i."name"}, true );
 
397
  }
398
 
399
  foreach ($this->networks_end as $slug => $ndata) {
400
+ $html_chunks[] = $this->html_chunk( $$slug, $ndata['image'], $ndata['title'] );
401
  }
 
 
 
 
 
 
 
 
402
 
403
+ echo implode('', $html_chunks);
404
 
405
  /* After widget (defined by themes). */
406
 
409
  echo $after_widget;
410
  }
411
 
412
+ function html_chunk( $slug, $image, $title, $custom = false ) {
413
+ if ($slug != '' && $slug != ' ' && $slug != 'mailto:' && $slug != 'http://' && (($custom === false && file_exists($this->smw_dir . '/' . $image)) || ($custom === true && $image != ''))) {
414
  $img = $custom === false ? $this->smw_path . '/' . $image : $image;
415
  $html = '';
416
  // $html = '<span class="smw_icon">';
422
  $html .= '<span> ' . $title . ' </span><br/>';
423
  }
424
  */
425
+ $html .= '<a href="' . $slug . '" ' . $this->nofollow . ' ' . $this->newtab.'>';
426
+ $html .= '<img width="' . $this->icon_size .'" height="' . $this->icon_size . '" src="' . $img . '" alt="' . $this->imgcaption . ' ' . $title . '" title="' . $this->imgcaption .' ' . $title . '" ' . ($this->animation == 'fade' || $this->animation == 'combo' ? 'style="opacity: ' . $this->icon_opacity . '; -moz-opacity: ' . $this->icon_opacity . ';"' : '') . ' class="' . $this->animation . '" />';
 
 
 
 
427
  $html .= '</a>';
428
  /*
429
  if ($this->display_titles == 'right') {
462
  $instance['display_titles'] = $new_instance['display_titles'];
463
  $instance['icons_per_row'] = $new_instance['icons_per_row'];
464
 
 
 
 
 
 
465
  foreach ($this->networks as $slug => $ndata) {
466
  $instance[$slug] = !empty($new_instance[$slug]) ? strip_tags( $new_instance[$slug] ) : 'http://';
467
  // $instance[$slug.'_title'] = strip_tags( $new_instance[$slug.'_title'] );
489
  * when creating your form elements. This handles the confusing stuff.
490
  */
491
  function form( $instance ) {
492
+
 
493
  /* Set up some default widget settings. */
494
  $defaults = array(
495
  'title' => __('Follow Us!', 'smw'),
532
  <div>
533
  <p><a href="javascript:;" onclick="jQuery(this).parent().next('div').slideToggle();" style="background: url('images/arrows.png') no-repeat; padding-left: 15px;"><strong>General Settings</strong></a></p>
534
 
535
+ <div style="display: none;">
536
  <!-- Widget Title: Text Input -->
 
537
  <p>
538
  <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e('Title:', 'smw'); ?></label>
539
  <input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" class="widefat" type="text" />
663
  </select>
664
  </p>
665
  <div class="clear"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
666
  </div>
667
 
668
 
922
  <label for="<?php echo $this->get_field_id( 'customiconspath' ); ?>"><?php _e('Custom Icons Path:', 'smw'); ?></label>
923
  <input id="<?php echo $this->get_field_id( 'customiconspath' ); ?>" name="<?php echo $this->get_field_name( 'customiconspath' ); ?>" value="<?php echo $instance['customiconspath']; ?>" class="widefat" type="text" />
924
  </p>
925
+
926
+
927
+
928
+
929
  </div>
 
 
 
 
 
 
 
 
 
 
930
  <div style="clear: both;"></div>
931
  <!-- Promo -->
932
+ <br /><p><b>Are you looking for <b>custom development</b>, <b>SEO</b> or <b>online marketing</b> services? Blink Web Effects (the author of this plugin) is an established web development and SEO company that is ready to bring your project to life. <a href="http://blinkwebeffects.com/services/" target="_blank">
933
  Click here to learn more and contact us today.</a></b></p>
934
 
935