22Mar/11Off
‘Share’ links generator
I don't know about you, but I spend far too much of my time creating those blasted 'Share' links. Well, I did, until I wrote this pair of handy functions.
They will create share links for Facebook, twitter, delicious and StumbleUpon on the fly. Additionally you can pass any URL to create a share link to, and a title if you like.
You can create more definitions very easily by adding to the $types
array. Use the terms #URL#
and #TITLE#
for the URL and title, or #UURL#
and #UTITLE#
for the urlencode()
versions.
function share($type=null,$url=null,$title=null){ // I store various page data in an $args array. // For this function, I'm be using the page title. // If you don't have a page title, it'll be ignored. global $args; // Type definitions $types=array( 'fb'=>'http://www.facebook.com/sharer.php?u=#UURL#&t=#UTITLE#', 'tw'=>'http://twitter.com/home?status=#UTITLE# #UURL#', 'dl'=>'http://www.delicious.com/save?url=#UURL#&title=#UTITLE#', 'sl'=>'http://www.stumbleupon.com/submit?url=#UURL#&title=#UTITLE#' ); // Sanity checks if(!$type)return 'NO TYPE REQUESTED'; if(!array_key_exists($type,$types))return 'UNDEFINED TYPE REQUESTED'; // Build the share link if(!$url)$url=thisurl(); $title=(!$title&&$args['page']['title'])?$args['page']['title']:$title; $find=array('#URL#','#TITLE#','#UURL#','#UTITLE#'); $replace=array($url,$title,urlencode($url),urlencode($title)); return str_replace($find,$replace,$types[$type]); } function thisurl(){ // Return the full page URL $host=strtolower(array_shift(explode('/',$_SERVER['SERVER_PROTOCOL']))).'://'; $uri=$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; return($host.$uri); } // Usage: echo share('fb'); echo share('tw'); echo share('dl'); echo share('su');
Tagged as: delicious, Facebook, share links, StumbleUpon, twitter
No Comments
"Anything anyone says is either obvious or wrong."
Grandpa Simspon
Grandpa Simspon