Added Bit.ly Shortening to Sociable WordPress Plugin

I hacked bit.ly url shortening into my Sociable WordPress Plugin.  Here is a diff of the two files if you want to add it to yours too (the .bak is the original file and the sociable.php is the one with the bit.ly features in it):

diff -b sociable.php.bak sociable.php
743a744,769
>
>         // Bit.ly the Permalink if bit.ly is enabled
>         if (get_option(‘sociable_bitly’) == true) {
>                 $pageaddress = urlencode(get_permalink($post->ID));;
>                 $bitlyusername = get_option(‘sociable_bitlyusername’);
>                 $bitlyapikey = get_option(‘sociable_bitlyapikey’);
> $bitlyurl = “http://api.bit.ly/shorten?version=2.0.1&longUrl=$pageaddress&login=$bitlyusername&apiKey=$bitlyapikey”;
>         $curl_handle = curl_init();
>         curl_setopt($curl_handle, CURLOPT_URL, “$bitlyurl”);
>         curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
>         curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
>         $response = curl_exec($curl_handle);
>         curl_close($curl_handle);
>         // parse the response
>         $bitly = json_decode($response, true);
>         // if there are no errors set the permalink to the shortUrl
> if ($bitly[“errorCode”] == 0) {
>                   // everything went fine set the permalink to the bit.ly address
>                   $permalink = urldecode($pageaddress);
>                   $permalink = $bitly[“results”][“$permalink”][“shortUrl”];
> } else {
>                   // if there is an error then fallback to the long permalink
>                   $permalink = urlencode(get_permalink($post->ID));
>                 }
> } else {
>                 // if bit.ly isn’t enabled then get the long permalink
744a771,772
> }
>
1153c1181
< foreach ( array(‘usetargetblank’, ‘useiframe’, ‘disablealpha’, ‘disablesprite’, ‘awesmenable’, ‘usecss’, ‘usetextlinks’, ‘disablewidget’) as $val ) {
> foreach ( array(‘usetargetblank’, ‘useiframe’, ‘disablealpha’, ‘disablesprite’, ‘awesmenable’, ‘bitly’,  ‘usecss’, ‘usetextlinks’, ‘disablewidget’) as $val ) {
1171c1199
< foreach ( array(‘awesmapikey’, ‘tagline’, ‘imagedir’) as $val ) {
> foreach ( array(‘awesmapikey’, ‘tagline’, ‘imagedir’, ‘bitlyusername’, ‘bitlyapikey’) as $val ) {
1198c1226,1244
< sociable_message(__(“Saved changes.”, ‘sociable’));
>                // Checking to see if  there are any bit.ly errors to display when settings are saved.
>                // Add an authentication check here too…
>                if (get_option(‘sociable_bitly’) == true) {   // is bitly enabled?
>                   if (get_option(‘sociable_bitlyusername’) == “”) {  // is the username field empty?
>                     $bitlyerror = ”  Bit.ly will not work correctly.<br />Please check your Bit.ly username.”;
>                   }
>                   if (get_option(‘sociable_bitlyapikey’) == “”) {  // is the API key field empty?
>                     if ($bitlyerror == “”) {  // is an error already saved ?
>                       $bitlyerror = ”  Bit.ly will not work correctly.<br />Please check your Bit.ly API Key.”;
>                     } else { // this is our second error.
>                       $bitlyerror = ”  Bit.ly will not work correctly.<br />Please check your Bit.ly Username and API Key.”;
>                     }
>                   }
>                 } else {
>                   $bitlyerror = “”;
>                 }
>
>
> sociable_message(__(“Saved changes. $bitlyerror”, ‘sociable’));
1369a1416,1426
> <?php _e(“bit.ly:”, “sociable”); ?>
> </th>
> <td>
> <?php _e(“You can have your links automatically shortened by bit.ly if you provide your username and API key.  You should only use bit.ly if you are not using awe.sm.”, ‘sociable’); ?><br />
> <input type=”checkbox” name=”bitly” <?php checked( get_option(‘sociable_bitly’), true); ?> /><?php _e(“Enable bit.ly?”, “sociable”); ?><br />
> <?php _e(“bit.ly username:”, ‘sociable’); ?><input size=”10″ type=”text” name=”bitlyusername” value=”<?php echo get_option(‘sociable_bitlyusername’); ?>” /><br />
> <?php _e(“bit.ly API Key:”, ‘sociable’); ?><input size=”60″ type=”text” name=”bitlyapikey” value=”<?php echo get_option(‘sociable_bitlyapikey’); ?>” />
> </td>
> </tr>
> <tr>
> <th scope=”row” valign=”top”>
1373c1430
< <?php _e(“You can choose to automatically have the links posted to certain sites shortened via awe.sm and encoded with the channel info and your API Key.”, ‘sociable’); ?><br/>
> <?php _e(“You can choose to automatically have the links posted to certain sites shortened via awe.sm and encoded with the channel info and your API Key.  You should only use awe.sm if you are not using bit.ly.”, ‘sociable’); ?><br/>

More importantly try it out and share this post below!

Be Sociable, Share!

Leave a Reply