class dfp_context_reaction_adunit in Doubleclick for Publishers (DFP) 7.2
Same name and namespace in other branches
- 7 plugins/contexts/dfp_context_reaction_adunit.inc \dfp_context_reaction_adunit
Expose DFP tags as context reactions.
Hierarchy
- class \context_reaction
- class \dfp_context_reaction_adunit
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
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
context_reaction:: |
property | |||
context_reaction:: |
property | |||
context_reaction:: |
property | |||
context_reaction:: |
function | Retrieve options from the context provided. | 1 | |
context_reaction:: |
function | Retrieve active contexts that have values for this reaction. | ||
context_reaction:: |
function | Options form submit handler. | 3 | |
context_reaction:: |
function | Settings form. Provide variable settings for your reaction. | 2 | |
context_reaction:: |
function | Clone our references when we're being cloned. | ||
context_reaction:: |
function | Constructor. Do not override. | ||
dfp_context_reaction_adunit:: |
function | override all tags based on context. | ||
dfp_context_reaction_adunit:: |
function |
Allow admins to choose what DFP adunit to override. Overrides context_reaction:: |