You are here

function _dfp_js_global_settings in Doubleclick for Publishers (DFP) 7.2

Same name and namespace in other branches
  1. 7 dfp.module \_dfp_js_global_settings()

Helper function to include javascript variables, etc in the header above all slot definitions.

1 call to _dfp_js_global_settings()
dfp_preprocess_html in ./dfp.module
Implements hook_preprocess_HOOK().

File

./dfp.module, line 700

Code

function _dfp_js_global_settings() {

  // Initialize the google variables and inject user-defined javascript.
  $options = array(
    'type' => 'file',
    'group' => JS_DEFAULT,
    'every_page' => TRUE,
    'weight' => 0,
    'force header' => TRUE,
  );

  // Add google tag services.
  drupal_add_js(drupal_get_path('module', 'dfp') . '/js/dfp_googletag.js', $options);

  // Set global targeting values for this page.
  $global_targets = array();
  $targeting = variable_get('dfp_targeting', array());
  drupal_alter('dfp_global_targeting', $targeting);
  $targeting = dfp_format_targeting($targeting);
  foreach ($targeting as $key => $target) {
    if (!empty($target['target']) && !empty($target['value'])) {
      $global_targets[] = array(
        'target' => $target['target'],
        'value' => $target['value'],
      );
    }
  }
  $viewport_breakpoints = array();
  foreach (_dfp_targeting_viewport_breakpoints() as $viewport) {
    $v_target = 'dfp_viewport_' . $viewport . '_breakpoint';
    $var = variable_get($v_target, '');
    if (!empty($var)) {
      $viewport_breakpoints[$viewport] = (int) $var;
    }
  }

  // Bump the weight to load after dfp_googletag.js.
  $options['weight'] += 1;
  drupal_add_js(drupal_get_path('module', 'dfp') . '/js/jquery.googletag.js', $options);

  // Add our javascript that pushes ad slots into googletag.cmd. This has a
  // heavier weight so it runs after all the slots are defined.
  // Bump the weight to load after jquery.googletag.js.
  $options['weight'] += 1;
  drupal_add_js(drupal_get_path('module', 'dfp') . '/js/dfp_googletag.cmd.js', $options);

  // Drupal.settings array.
  $settings = array(
    'dfpGoogleTagCmd' => array(
      'asyncRendering' => (int) variable_get('dfp_async_rendering', 1),
      'singleRequest' => (int) variable_get('dfp_single_request', 1),
      'collapseEmptyDivs' => (int) variable_get('dfp_collapse_empty_divs', 1),
      'disableInitialLoad' => (int) variable_get('dfp_disable_init_load', 0),
      'setCentering' => (int) variable_get('dfp_set_centering', 0),
      'globalTargets' => $global_targets,
      'viewportBreakpoints' => $viewport_breakpoints,
    ),
  );

  // If the prebid module is installed and enabled we need to let the
  // front-end know.
  if (module_exists('prebid')) {
    $settings['dfpGoogleTagCmd']['prebidEnabled'] = TRUE;
  }

  // Add Drupal.settings.
  drupal_add_js($settings, 'setting');
}