You are here

function google_plusone_add_js in Google Plus One Button | Google+ Badge 6

Add the external Google +1 JavaScript that will render the buttons.

3 calls to google_plusone_add_js()
google_plusone_block in ./google_plusone.module
Implements hook_block().
theme_google_plusone_badge in ./google_plusone.module
Returns HTML for the Google +1 badge.
theme_google_plusone_button in ./google_plusone.module
Returns HTML for the Google +1 button.

File

./google_plusone.module, line 224

Code

function google_plusone_add_js() {
  static $js_added;

  // Adds only once the main script.
  if ($js_added) {
    return;
  }
  $default_advanced = array(
    'lang' => '',
    'scope_location' => 'footer',
    'parsetags' => 'onload',
    'async' => 1,
  );
  $config = array_merge($default_advanced, variable_get('google_plusone_advanced_settings', array()));
  $script_options = array();
  if (!empty($config['lang'])) {
    $lang = google_plusone_button_negotiate_language($config['lang']);
    $script_options[] = 'lang:"' . $lang . '"';
  }
  if ($config['parsetags'] !== 'onload') {
    $script_options[] = 'parsetags:"' . $config['parsetags'] . '"';
  }
  if ($config['async']) {
    $script = empty($script_options) ? '' : "window.___gcfg = {" . implode(',', $script_options) . "};";
    $script .= "(function() {";
    $script .= "var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;";
    $script .= "po.src = 'https://apis.google.com/js/plusone.js';";
    $script .= "var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);";
    $script .= "})();";
    drupal_add_js($script, 'inline', $config['scope_location']);
  }
  else {
    $script = '<script type="text/javascript" src="https://apis.google.com/js/plusone.js">';
    $script .= empty($script_options) ? '' : '{' . implode(',', $script_options) . '}';
    $script .= '</script>';
    drupal_set_html_head($script);
  }
  $js_added = TRUE;
}