You are here

class dfp_context_reaction_adunit in Doubleclick for Publishers (DFP) 7.2

Same name and namespace in other branches
  1. 7 plugins/contexts/dfp_context_reaction_adunit.inc \dfp_context_reaction_adunit

Expose DFP tags as context reactions.

Hierarchy

Expanded class hierarchy of dfp_context_reaction_adunit

2 string references to 'dfp_context_reaction_adunit'
dfp_context_plugins in ./dfp.module
Implements hook_context_plugins().
dfp_context_registry in ./dfp.module
Implements hook_context_registry().

File

plugins/contexts/dfp_context_reaction_adunit.inc, line 11
Context reaction plugin for DFP ads.

View source
class dfp_context_reaction_adunit extends context_reaction {

  /**
   * Allow admins to choose what DFP adunit to override.
   */
  function options_form($context) {
    $form = array();

    // Get existing values for this form.
    $values = $this
      ->fetch_from_context($context);

    // Get a list of all DART tags.
    $options = array();
    $tags = dfp_tag_load_all();
    foreach ($tags as $tag) {
      $options[$tag->machinename] = $tag->slot;
    }
    $used_tags = implode(', ', $options);
    $form['adunit_override_tags'] = array(
      '#type' => 'checkboxes',
      '#title' => t('Tags to override'),
      '#description' => t("When this context is active, the tags selected here will have their ad unit overridden."),
      '#options' => $options,
      '#default_value' => isset($values['adunit_override_tags']) ? $values['adunit_override_tags'] : array(),
    );
    $form['adunit_override'] = array(
      '#title' => t('Override these DFP tags with a custom ad unit'),
      '#description' => t('Use the tokens below to define how the ad unit should display. The network id will be included automatically. Example: [dfp_tag:url_parts:4]/[dfp_tag:slot]'),
      '#type' => 'textfield',
      '#size' => 60,
      '#default_value' => isset($values['adunit_override']) ? $values['adunit_override'] : '',
    );
    $form['tokens'] = array(
      '#theme' => 'token_tree',
      '#token_types' => array(
        'dfp_tag',
        'node',
        'term',
        'user',
      ),
      '#global_types' => TRUE,
      '#click_insert' => TRUE,
      '#dialog' => TRUE,
    );
    return $form;
  }

  /**
   * override all tags based on context.
   */
  function execute(&$tag) {

    // Check each currently set context to see if the DART tag specified by
    // machinename should be overridden or not.
    foreach ($this
      ->get_contexts() as $context_name => $context) {
      if (isset($context->reactions['dfp_adunit'])) {
        $tags = $context->reactions['dfp_adunit']['adunit_override_tags'];
        if (isset($tags[$tag->machinename]) && !empty($tags[$tag->machinename])) {
          $tag->adunit = $context->reactions['dfp_adunit']['adunit_override'];
        }
        break;
      }
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
context_reaction::$description property
context_reaction::$plugin property
context_reaction::$title property
context_reaction::fetch_from_context function Retrieve options from the context provided. 1
context_reaction::get_contexts function Retrieve active contexts that have values for this reaction.
context_reaction::options_form_submit function Options form submit handler. 3
context_reaction::settings_form function Settings form. Provide variable settings for your reaction. 2
context_reaction::__clone function Clone our references when we're being cloned.
context_reaction::__construct function Constructor. Do not override.
dfp_context_reaction_adunit::execute function override all tags based on context.
dfp_context_reaction_adunit::options_form function Allow admins to choose what DFP adunit to override. Overrides context_reaction::options_form