Index: service_links.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/service_links/service_links.module,v
retrieving revision 1.26
diff -u -p -r1.26 service_links.module
--- service_links.module	26 Feb 2008 17:01:27 -0000	1.26
+++ service_links.module	3 Aug 2010 08:17:07 -0000
@@ -337,58 +337,63 @@ function service_links_render($node, $no
     $url = url($_GET['q'], array('absolute' => TRUE));
   }
 
+  $path = drupal_get_path('module', 'service_links');
   $url = urlencode($url);
   $title = urlencode($node->title);
 
   if (variable_get('service_links_show_delicious', 0)) {
-    $links['service_links_delicious'] = theme('service_links_build_link', t('Delicious'), "http://del.icio.us/post?url=$url&title=$title", t('Bookmark this post on del.icio.us.'), 'images/delicious.png', $nodelink);
+    $links['service_links_delicious'] = theme('service_links_build_link', t('Delicious'), "http://del.icio.us/post?url=$url&title=$title", t('Bookmark this post on del.icio.us.'), "$path/images/delicious.png", $nodelink);
   }
   if (variable_get('service_links_show_digg', 0)) {
-    $links['service_links_digg'] = theme('service_links_build_link', t('Digg'), "http://digg.com/submit?phase=2&url=$url&title=$title", t('Digg this post on digg.com.'), 'images/digg.png', $nodelink);
+    $links['service_links_digg'] = theme('service_links_build_link', t('Digg'), "http://digg.com/submit?phase=2&url=$url&title=$title", t('Digg this post on digg.com.'), "$path/images/digg.png", $nodelink);
   }
   if (variable_get('service_links_show_stumbleupon', 0)) {
-    $links['service_links_stumbleupon'] = theme('service_links_build_link', t('StumbleUpon'), "http://www.stumbleupon.com/submit?url=$url&title=$title", t('Thumb this up at StumbleUpon.'), 'images/stumbleit.png', $nodelink);
+    $links['service_links_stumbleupon'] = theme('service_links_build_link', t('StumbleUpon'), "http://www.stumbleupon.com/submit?url=$url&title=$title", t('Thumb this up at StumbleUpon.'), "$path/images/stumbleit.png", $nodelink);
   }
   if (variable_get('service_links_show_propeller', 0)) {
-    $links['service_links_propeller'] = theme('service_links_build_link', t('Propeller'), "http://www.propeller.com/submit/?U=$url&T=$title", t('Submit to Propeller.'), 'images/propeller.png', $nodelink);
+    $links['service_links_propeller'] = theme('service_links_build_link', t('Propeller'), "http://www.propeller.com/submit/?U=$url&T=$title", t('Submit to Propeller.'), "$path/images/propeller.png", $nodelink);
   }
   if (variable_get('service_links_show_reddit', 0)) {
-    $links['service_links_reddit'] = theme('service_links_build_link', t('Reddit'), "http://reddit.com/submit?url=$url&title=$title", t('Submit this post on reddit.com.'), 'images/reddit.png', $nodelink);
+    $links['service_links_reddit'] = theme('service_links_build_link', t('Reddit'), "http://reddit.com/submit?url=$url&title=$title", t('Submit this post on reddit.com.'), "$path/images/reddit.png", $nodelink);
   }
   if (variable_get('service_links_show_magnoliacom', 0)) {
-    $links['service_links_magnoliacom'] = theme('service_links_build_link', t('Magnoliacom'), "http://ma.gnolia.com/bookmarklet/add?url=$url&title=$title", t('Submit this post on ma.gnolia.com.'), 'images/magnoliacom.png', $nodelink);
+    $links['service_links_magnoliacom'] = theme('service_links_build_link', t('Magnoliacom'), "http://ma.gnolia.com/bookmarklet/add?url=$url&title=$title", t('Submit this post on ma.gnolia.com.'), "$path/images/magnoliacom.png", $nodelink);
   }
   if (variable_get('service_links_show_newsvine', 0)) {
-    $links['service_links_newsvine'] = theme('service_links_build_link', t('Newsvine'), "http://www.newsvine.com/_tools/seed&save?u=$url&h=$title", t('Submit this post on newsvine.com.'), 'images/newsvine.png', $nodelink);
+    $links['service_links_newsvine'] = theme('service_links_build_link', t('Newsvine'), "http://www.newsvine.com/_tools/seed&save?u=$url&h=$title", t('Submit this post on newsvine.com.'), "$path/images/newsvine.png", $nodelink);
   }
   if (variable_get('service_links_show_furl', 0)) {
-    $links['service_links_furl'] = theme('service_links_build_link', t('Furl'), "http://www.furl.net/storeIt.jsp?u=$url&t=$title", t('Submit this post on furl.net.'), 'images/furl.png', $nodelink);
+    $links['service_links_furl'] = theme('service_links_build_link', t('Furl'), "http://www.furl.net/storeIt.jsp?u=$url&t=$title", t('Submit this post on furl.net.'), "$path/images/furl.png", $nodelink);
   }
   if (variable_get('service_links_show_facebook', 0)) {
-    $links['service_links_facebook'] = theme('service_links_build_link', t('Facebook'), "http://www.facebook.com/sharer.php?u=$url&t=$title", t('Share on Facebook.'), 'images/facebook.png', $nodelink);
+    $links['service_links_facebook'] = theme('service_links_build_link', t('Facebook'), "http://www.facebook.com/sharer.php?u=$url&t=$title", t('Share on Facebook.'), "$path/images/facebook.png", $nodelink);
   }
   if (variable_get('service_links_show_google', 0)) {
-    $links['service_links_google'] = theme('service_links_build_link', t('Google'), "http://www.google.com/bookmarks/mark?op=add&bkmk=$url&title=$title", t('Bookmark this post on Google.'), 'images/google.png', $nodelink);
+    $links['service_links_google'] = theme('service_links_build_link', t('Google'), "http://www.google.com/bookmarks/mark?op=add&bkmk=$url&title=$title", t('Bookmark this post on Google.'), "$path/images/google.png", $nodelink);
   }
   if (variable_get('service_links_show_yahoo', 0)) {
-    $links['service_links_yahoo'] = theme('service_links_build_link', t('Yahoo'), "http://myweb2.search.yahoo.com/myresults/bookmarklet?u=$url&t=$title", t('Bookmark this post on Yahoo.'), 'images/yahoo.png', $nodelink);
+    $links['service_links_yahoo'] = theme('service_links_build_link', t('Yahoo'), "http://myweb2.search.yahoo.com/myresults/bookmarklet?u=$url&t=$title", t('Bookmark this post on Yahoo.'), "$path/images/yahoo.png", $nodelink);
   }
   if (variable_get('service_links_show_technorati', 0)) {
-    $links['service_links_technorati'] = theme('service_links_build_link', t('Technorati'), "http://technorati.com/cosmos/search.html?url=$url", t('Search Technorati for links to this post.'), 'images/technorati.png', $nodelink);
+    $links['service_links_technorati'] = theme('service_links_build_link', t('Technorati'), "http://technorati.com/cosmos/search.html?url=$url", t('Search Technorati for links to this post.'), "$path/images/technorati.png", $nodelink);
   }
   if (variable_get('service_links_show_icerocket', 0)) {
-    $links['service_links_icerocket'] = theme('service_links_build_link', t('Icerocket'), "http://blogs.icerocket.com/search?q=$url", t('Search IceRocket for links to this post.'), 'images/icerocket.png', $nodelink);
+    $links['service_links_icerocket'] = theme('service_links_build_link', t('Icerocket'), "http://blogs.icerocket.com/search?q=$url", t('Search IceRocket for links to this post.'), "$path/images/icerocket.png", $nodelink);
   }
 
   // Add your own link by modifing the link below and uncomment it.
   //$links['service_links_delicious'] = theme('service_links_build_link', t('Delicious'), "http://del.icio.us/post?url=$url&title=$title", t('Bookmark this post on del.icio.us.'), 'delicious.png', $nodelink);
 
+  // Allow other modules to change the $links array
+  foreach (module_implements('service_links_render') as $module) {
+    $function = $module .'_service_links_render';
+    $function($links, $node, $nodelink);
+  }
+
   return $links;
 }
 
 function theme_service_links_build_link($text, $url, $title, $image, $nodelink) {
-  global $base_path;
-
   if ($nodelink) {
     switch (variable_get('service_links_style', 1)) {
       case 1:
@@ -400,7 +405,7 @@ function theme_service_links_build_link(
         break;
       case 2:
         $link = array(
-          'title' => '<img src="'. $base_path . drupal_get_path('module', 'service_links') .'/'. $image .'" alt="'. $text .'" />',
+          'title' => theme('image', $image, $title, $title),
           'href' => $url,
           'attributes' => array('title' => $title, 'rel' => 'nofollow'),
           'html' => TRUE
@@ -408,7 +413,7 @@ function theme_service_links_build_link(
         break;
       case 3:
         $link = array(
-          'title' => '<img src="'. $base_path . drupal_get_path('module', 'service_links') .'/'. $image .'" alt="'. $text .'" /> '. $text,
+          'title' => theme('image', $image, $title, $title) . $text,
           'href' => $url,
           'attributes' => array('title' => $title, 'rel' => 'nofollow'),
           'html' => TRUE
@@ -422,10 +427,10 @@ function theme_service_links_build_link(
         $link = '<a href="'. check_url($url) .'" title="'. $title .'" rel="nofollow">'. $text .'</a>';
         break;
       case 2:
-        $link = '<a href="'. check_url($url) .'" title="'. $title .'" rel="nofollow"><img src="'. $base_path . drupal_get_path('module', 'service_links') .'/'. $image .'" alt="'. $text .'" /></a>';
+        $link = '<a href="'. check_url($url) .'" title="'. $title .'" rel="nofollow">'. theme('image', $image, $title, $title) .'</a>';
         break;
       case 3:
-        $link = '<a href="'. check_url($url) .'" title="'. $title .'" rel="nofollow"><img src="'. $base_path . drupal_get_path('module', 'service_links') .'/'. $image .'" alt="'. $text .'" /> '. $text .'</a>';
+        $link = '<a href="'. check_url($url) .'" title="'. $title .'" rel="nofollow">'. theme('image', $image, $title, $title) . $text .'</a>';
         break;
     }
   }
