? addtoany_drupal7.patch
Index: addtoany.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/addtoany/addtoany.admin.inc,v
retrieving revision 1.4
diff -u -p -r1.4 addtoany.admin.inc
--- addtoany.admin.inc	18 Jan 2010 15:47:43 -0000	1.4
+++ addtoany.admin.inc	15 Jun 2010 18:51:25 -0000
@@ -17,21 +17,21 @@ function addtoany_admin_settings() {
 
   global $base_path;
   $button_img = '<img src="' . $base_path . drupal_get_path('module', 'addtoany') . '/images/%s" width="%d" height="%d" />';
-  
+
   $button_options = array(
-  	'share_16_16.png|16|16'		=> sprintf($button_img, 'share_16_16.png', 16, 16),
-  	'share_save_171_16.png|171|16' => sprintf($button_img, 'share_save_171_16.png', 171, 16),
-  	'share_save_256_24.png|256|24' => sprintf($button_img, 'share_save_256_24.png', 256, 24),
-  	'custom'				=> 'Custom button',
+    'share_16_16.png|16|16'    => sprintf($button_img, 'share_16_16.png', 16, 16),
+    'share_save_171_16.png|171|16' => sprintf($button_img, 'share_save_171_16.png', 171, 16),
+    'share_save_256_24.png|256|24' => sprintf($button_img, 'share_save_256_24.png', 256, 24),
+    'custom'        => 'Custom button',
   );
-  
+
   $form['addtoany_general_settings'] = array(
     '#type'  => 'fieldset',
     '#title' => t('General'),
   );
   $form['addtoany_general_settings']['addtoany_nodetypes'] = array(
     '#type'          => 'checkboxes',
-    '#title'         => t('Node Types'),
+    '#title'         => t('Node types'),
     '#description'   => t('Display an AddToAny button for these node types.'),
     '#default_value' => variable_get('addtoany_nodetypes', array('page', 'story')),
     '#options'       => node_type_get_names(),
@@ -69,10 +69,10 @@ function addtoany_admin_settings() {
     '#collapsed'    => FALSE,
   );
   $form['addtoany_button_settings']['addtoany_image'] = array(
-    '#type' 		 => 'radios',
-    '#title' 		 => t('Button'),
+    '#type'      => 'radios',
+    '#title'      => t('Button'),
     '#default_value' => variable_get('addtoany_image', 'share_save_171_16.png|171|16'),
-    '#options' 		 => $button_options,
+    '#options'      => $button_options,
   );
   $form['addtoany_button_settings']['addtoany_custom_image'] = array(
     '#type'          => 'textfield',
@@ -86,7 +86,7 @@ function addtoany_admin_settings() {
     '#default_value' => variable_get('addtoany_image_attributes', 'alt="Share/Save"'),
     '#description'   => t('Extra HTML attributes for img tag. Example: alt=""'),
   );
-  
+
   $form['addtoany_additional_settings'] = array(
     '#type'         => 'fieldset',
     '#title'        => t('Additional options'),
@@ -112,6 +112,6 @@ function addtoany_admin_settings() {
     '#default_value' => variable_get('addtoany_dropdown_disabled', '0'),
     '#description'   => t('You can disable the drop-down for selecting where to share your link and use a pop-up window instead.'),
   );
-  
+
   return system_settings_form($form);
 }
Index: addtoany.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/addtoany/addtoany.module,v
retrieving revision 1.13.2.2
diff -u -p -r1.13.2.2 addtoany.module
--- addtoany.module	20 Jan 2010 11:37:43 -0000	1.13.2.2
+++ addtoany.module	15 Jun 2010 18:51:25 -0000
@@ -25,14 +25,14 @@ function addtoany_permission() {
 /**
  * Implementation of hook_node_view().
  */
-function addtoany_node_view($node, $view_mode) { 
+function addtoany_node_view($node, $view_mode) {
   $links = array();
   $types = variable_get('addtoany_nodetypes', array());
   $teaser = $view_mode == 'teaser' ? TRUE : FALSE;
-  $show  = (!empty($types[$node->type]) && 
-           (($teaser && variable_get('addtoany_display_in_teasers', '1')!=0) ||
-           (!$teaser && variable_get('addtoany_display_in_nodelink', '1')!=0)));
-           
+  $show = (!empty($types[$node->type]) &&
+          (($teaser && variable_get('addtoany_display_in_teasers', '1') != 0) ||
+          (!$teaser && variable_get('addtoany_display_in_nodelink', '1') != 0)));
+
   if ($show && user_access('view addtoany')) {
     $links['addtoany'] = array(
       'title' => _addtoany_create_button($node, $teaser),
@@ -44,17 +44,17 @@ function addtoany_node_view($node, $view
       '#attributes' => array('class' => array('links', 'inline')),
     );
   }
-  
+
   $show  = (!empty($types[$node->type]) && variable_get('addtoany_display_in_nodecont', '0'));
   $weight = variable_get('addtoany_display_weight', 40);
-      
+
   if ($show && user_access('view addtoany')) {
     $node->content['addtoany'] = array(
       '#value' => _addtoany_create_button($node, FALSE),
       '#weight' => $weight,
     );
   }
-  
+
 }
 
 
@@ -64,9 +64,9 @@ function addtoany_node_view($node, $view
 function addtoany_menu() {
   $items = array();
 
-  $items['admin/settings/addtoany'] = array(
-    'title'            => t('AddToAny'),
-    'description'      => t('Settings for your <a href="http://www.addtoany.com/" target="blank">AddToAny</a> Share/Save buttons.'),
+  $items['admin/config/user-interface/addtoany'] = array(
+    'title'            => 'AddToAny',
+    'description'      => 'Settings for your AddToAny Share/Save buttons.',
     'page callback'    => 'drupal_get_form',
     'page arguments'   => array('addtoany_admin_settings'),
     'access arguments' => array('administer addtoany'),
@@ -105,7 +105,7 @@ function addtoany_block_view($delta = 0)
   $block = array();
   switch ($delta) {
     case 'addtoany_button':
-      if (user_access('view addtoany')){
+      if (user_access('view addtoany')) {
         $block['subject'] = t('AddToAny');
         $block['content'] = _addtoany_create_button(menu_get_object());
       }
@@ -114,48 +114,28 @@ function addtoany_block_view($delta = 0)
   return $block;
 }
 
-/**
- * Implementation of hook_page_alter().  Would use drupal_add_js, but external scripts are not well supported
- *
- * @return
- *   String containing JavaScript code for the drop-down
- */
+function _addtoany_init_script($node = NULL) {
+  // Drop-down disabled?
+  if (variable_get('addtoany_dropdown_disabled', '0')) return;
+
+  // Was the script already initialised.
+  static $added = FALSE;
+  if ($added) {
+    return;
+  }
 
-function addtoany_page_alter(&$page) {
-  global $_addtoany_script;
-  drupal_add_js($_addtoany_script, array('type' => 'inline', 'scope' => 'footer'));
-}
-
-function _addtoany_create_script($node = NULL) {
-
-	// Drop-down disabled?
-	if(variable_get('addtoany_dropdown_disabled', '0')) return;
-	
-	if (is_object($node)) {
-	  	$link_name 	= check_plain($node->title[LANGUAGE_NONE][0]['value']);
-		$link_url 	= url('node/'. $node->nid, array('absolute' => 1) );
-	} else { // Front page
-		$link_name 	= check_plain(variable_get('page_title_front', variable_get('site_name', '')));
-	  	$link_url	= url('<front>', array('absolute' => 1));
-	}
-
-	global $_addtoany_script, $_addtoany_script_init;
-	
-	if ( ! $_addtoany_script_init)
-		$_addtoany_script = '<script type="text/javascript">';
-	else
-		$_addtoany_script .= '<script type="text/javascript">';
-		
-	$_addtoany_script .= 'a2a_linkname="'. $link_name .'";a2a_linkurl="'. $link_url .'";';
-	
-	if ( ! $_addtoany_script_init) {
-		$_addtoany_script .= variable_get('addtoany_additional_js', '');
-		$_addtoany_script .= '</script><script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>';
-	} else {
-		$_addtoany_script .= 'a2a_init("page");</script>';
-	}
-	
-	$_addtoany_script_init = TRUE;
+  if (is_object($node)) {
+    $link_name = check_plain($node->title);
+    $link_url = url('node/'. $node->nid, array('absolute' => 1) );
+  }
+  else { // Front page
+    $link_name  = check_plain(variable_get('page_title_front', variable_get('site_name', '')));
+    $link_url = url('<front>', array('absolute' => 1));
+  }
+
+  $added = TRUE;
+  drupal_add_js('a2a_linkname="'. $link_name .'";a2a_linkurl="'. $link_url .'";', array('type' => 'inline', 'scope' => 'footer'));
+  drupal_add_js('http://static.addtoany.com/menu/page.js', array('type' => 'external', 'scope' => 'footer'));
 }
 
 /**
@@ -166,44 +146,45 @@ function _addtoany_create_script($node =
  */
 function _addtoany_create_button($node=NULL, $teaser = FALSE) {
   global $_addtoany_counter, $base_path;
-  
+
   $_addtoany_counter++;
   if ($_addtoany_counter == 1) {
       drupal_add_css((drupal_get_path('module', 'addtoany') .'/addtoany.css'));
   }
-  
-  _addtoany_create_script($node);
+
+  _addtoany_init_script($node);
 
   $disable_dropdown = variable_get('addtoany_dropdown_disabled', '0');
-  
-  if (is_object($node)) { 
-  	$link_name 	= rawurlencode($node->title[LANGUAGE_NONE][0]['value']);
-	$link_url 	= rawurlencode(url('node/'. $node->nid, array('absolute' => 1) ));
-  } else { // Front page
-	$link_name 	= rawurlencode(variable_get('page_title_front', variable_get('site_name', '')));
-  	$link_url	= rawurlencode(url('<front>', array('absolute' => 1)));
+
+  if (is_object($node)) {
+    $link_name  = rawurlencode($node->title);
+    $link_url   = rawurlencode(url('node/'. $node->nid, array('absolute' => 1) ));
+  }
+  else { // Front page
+    $link_name  = rawurlencode(variable_get('page_title_front', variable_get('site_name', '')));
+    $link_url = rawurlencode(url('<front>', array('absolute' => 1)));
   }
-  
-  
+
   $button_setting = variable_get('addtoany_image', 'share_save_171_16.png|171|16');
-  
+
   if ($button_setting == "custom") {
-  	$button_image 		= variable_get('addtoany_custom_image', '');
-  	$button_width    	= '';
-	$button_height		= ''; 
-  } else {
-	  $button 			= explode('|', $button_setting);
-	  $button_filename 	= $button[0];
-	  $button_width    	= ' width="' . $button[1] . '"';
-	  $button_height	= ' height="' . $button[2] . '"';
-	  $button_image 	= $base_path . drupal_get_path('module', 'addtoany') . '/images/' . $button_filename;
+    $button_image     = variable_get('addtoany_custom_image', '');
+    $button_width     = '';
+    $button_height    = '';
+  }
+  else {
+    $button       = explode('|', $button_setting);
+    $button_filename  = $button[0];
+    $button_width     = ' width="' . $button[1] . '"';
+    $button_height  = ' height="' . $button[2] . '"';
+    $button_image   = $base_path . drupal_get_path('module', 'addtoany') . '/images/' . $button_filename;
   }
-     
+
   return ( sprintf('
       <a%s href="http://www.addtoany.com/share_save?linkurl=%s&amp;linkname=%s"><img src="%s"%s%s %s/></a>
       ',
-	  $disable_dropdown ? '' : ' class="a2a_dd"',
-	  $link_url,
+    $disable_dropdown ? '' : ' class="a2a_dd"',
+    $link_url,
       $link_name,
       $button_image,
       $button_width,
