_addtoany_create_button($node, $teaser),
'html' => TRUE,
);
}
}
return $links;
}
/**
* Implementation of hook_menu().
*/
function addtoany_menu($may_cache) {
$items = array();
if ($may_cache) {
$items[] = array(
'path' => 'admin/settings/addtoany',
'title' => t('AddToAny'),
'description' => t('Settings for your AddToAny Share/Save buttons.'),
'callback' => 'drupal_get_form',
'callback arguments' => array('addtoany_admin_settings'),
'access' => user_access('administer addtoany'),
);
}
return $items;
}
/**
* Administration settings form.
*
* @return
* The completed form definition.
*/
function addtoany_admin_settings() {
$form = array();
global $base_path;
$button_img = '
';
$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',
);
$form['addtoany_general_settings'] = array(
'#type' => 'fieldset',
'#title' => t('General'),
);
$form['addtoany_general_settings']['addtoany_display_in_links'] = array(
'#type' => 'checkbox',
'#title' => t('Display on node pages'),
'#default_value' => variable_get('addtoany_display_in_links', '0'),
'#description' => t('Display an addtoany button always on a node page\'s links section.'),
);
$form['addtoany_general_settings']['addtoany_display_in_teasers'] = array(
'#type' => 'checkbox',
'#title' => t('Display in node teasers'),
'#default_value' => variable_get('addtoany_display_in_teasers', '0'),
'#description' => t('Display an addtoany button in the node teasers.'),
);
$form['addtoany_button_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Button'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$form['addtoany_button_settings']['addtoany_image'] = array(
'#type' => 'radios',
'#title' => t('Button'),
'#default_value' => variable_get('addtoany_image', 'share_save_171_16.png|171|16'),
'#options' => $button_options,
);
$form['addtoany_button_settings']['addtoany_custom_image'] = array(
'#type' => 'textfield',
'#title' => t('Custom button URL'),
'#default_value' => variable_get('addtoany_custom_image', ''),
'#description' => t('URL to the button image of your choosing. Example: http://example.com/share.png'),
);
$form['addtoany_button_settings']['addtoany_custom_image_attributes'] = array(
'#type' => 'textfield',
'#title' => t('Button image HTML attributes'),
'#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'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['addtoany_additional_settings']['addtoany_additional_js'] = array(
'#type' => 'textarea',
'#title' => t('Additional script'),
'#default_value' => variable_get('addtoany_additional_js', ''),
'#description' => t('You can set special JavaScript variables for each Share/Save menu. Advanced users might want to check out Add to Any\'s JavaScript API.'),
);
$form['addtoany_widget_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Drop-down menu'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['addtoany_widget_settings']['addtoany_dropdown_disabled'] = array(
'#type' => 'checkbox',
'#title' => t('Disable dropdown'),
'#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);
}
/**
* Implementation of hook_block().
*/
function addtoany_block($op = 'list', $delta = 0) {
if ($op == 'list') {
$blocks[0]['info'] = t('AddToAny button');
return $blocks;
}
else if ($op == 'view' && user_access('view addtoany')) {
$block['subject'] = t('AddToAny');
$block['content'] = _addtoany_create_button();
return $block;
}
}
/**
* Implementation of hook_footer(). Would use drupal_add_js, but external scripts are not well supported
*
* @return
* String containing JavaScript code for the drop-down
*/
function addtoany_footer($main = 0) {
global $_addtoany_script;
return $_addtoany_script;
}
/**
* Internal function to generate code for AddToAny button and script
*
* @return
* String containing html code for the button
*/
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'));
}
if($node) {
$linkname = $node->title;
$linkurl = url('node/'. $node->nid, NULL, NULL, TRUE);
} else {
$linkname = (drupal_get_title() ?
strip_tags(drupal_get_title()) . " - " . variable_get('site_name', 'Drupal') :
variable_get('site_name', 'Drupal'));
$linkurl = url(ltrim(request_uri(), "/"), NULL, NULL, TRUE);
}
// Drop-down disabled?
if(variable_get('addtoany_dropdown_disabled', '0')) return;
global $_addtoany_script, $_addtoany_script_init;
if ( ! $_addtoany_script_init)
$_addtoany_script = '';
} else {
$_addtoany_script .= 'a2a_init("page");';
}
$_addtoany_script_init = TRUE;
$disable_dropdown = variable_get('addtoany_dropdown_disabled', '0');
$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;
}
return ( sprintf('
',
$disable_dropdown ? '' : ' class="a2a_dd"',
rawurlencode($linkurl),
rawurlencode($linkname),
$button_image,
$button_width,
$button_height,
variable_get('addtoany_image_attributes', 'alt="Share/Save"')
));
}