<?php if (!defined('PmWiki')) exit(); /** * * * @author Sebastian Siedentopf <schlaefer@macnews.de> * @version 0.3.1 **/ $RecipeInfo['SocialBookmarking']['Version'] = '0.3.1'; SDV($SBDeliciousLink, '<img src="http://images.del.icio.us/static/img/delicious.small.gif"/>Save This Page'); SDV($SBDiggLink, 'Digg'); Markup('socialbookmarking', '>links', "/\\(:(digglink|digg|redditsmall|reddit|delicious)(.*?):\\)/e", "Socialbookmarks('$pagename', '$1', '$2')" ); function Socialbookmarks ( $pagename, $service = 'digg', $args = '') { $parsed_args = ParseArgs($args); if (!isset($parsed_args['title'])) $parsed_args['title'] = PageVar($pagename, '$Title'); if (!isset($parsed_args['url'])) $parsed_args['url'] = PageVar($pagename, '$PageUrl'); #echo '<pre>'; echo print_r($parsed_args); echo '</pre>'; $out = ''; $tags = SBTagTranslate($service, $parsed_args); $out .= SBGenerateJSTags($tags); switch ($service) { case 'digg': $out .= "<script src='http://digg.com/tools/diggthis.js' type='text/javascript'></script>"; break; case 'digglink': global $SBDiggLink; array_walk($tags, create_function('&$tag','$tag = urlencode($tag);')); $out .= "<a href='http://digg.com/submit?phase=2". "&url=".$tags['digg_url']. "&title=".$tags['digg_title']. "&bodytext=".$tags['digg_bodytext']. "&topic=".$tags['digg_topic']."'>". $SBDiggLink."</a>"; break; case 'reddit': SDV($tags['reddit_type'], "2"); $out .= '<script language="javascript" src="http://reddit.com/button.js?t='.$tags['reddit_type'].'"></script>'; break; case 'delicious': global $SBDeliciousLink; $out .= '<a href="http://del.icio.us/post" onclick="window.open(\'http://del.icio.us/post?v=4&noui&jump=close&url=\'+encodeURIComponent(location.href)+\'&title=\'+encodeURIComponent(delicious_title), \'delicious\',\'toolbar=no,width=700,height=400\'); return false;">'.$SBDeliciousLink.'</a>'; break; } return $out; } function SBTagTranslate($service, $parsed_args) { $digg = array( 'url' => 'digg_url', 'title' => 'digg_title', 'body' => 'digg_bodytext', 'topic' => 'digg_topic'); $digglink = $digg; $reddit = array( 'url' => 'reddit_url', 'title' => 'reddit_title', 'type' => 'reddit_type'); $redditsmall = $reddit; $delicious = array( 'title' => 'delicious_title'); foreach($$service as $key => $tag) if (isset($parsed_args[$key])) $out[$tag] = $parsed_args[$key]; return $out; } function SBGenerateJSTags($tags) { $out = ''; if (count($tags) > 0) { $out .= '<script type="text/javascript">'."\n"; foreach($tags as $tag => $value) $out .= $tag.' = \''.htmlspecialchars($value).'\';'."\n"; $out .= '</script>'."\n"; } return $out; } ?>