adsense_injector.admin.inc in Content Injector (formerly AdSense Injector) 6
Same filename and directory in other branches
Administrative page callbacks for the adsense_injector module.
File
adsense_injector.admin.incView source
<?php
/**
* @file
* Administrative page callbacks for the adsense_injector module.
*/
/**
* Implementation of hook_settings().
*/
function adsense_injector_admin_settings() {
$form = array();
$form['node_ad_body_insertion'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#title' => t('Node body ad insertion'),
'#description' => t('Requires adsense.module'),
);
if (module_exists('adsense')) {
$form['node_ad_body_insertion']['adsense_injector_insert_body_ad'] = array(
'#type' => 'checkbox',
'#title' => t('Insert inline ad in node body on page views'),
'#default_value' => variable_get('adsense_injector_insert_body_ad', ADSENSE_INJECTOR_INSERT_BODY_AD_DEFAULT),
'#description' => t('Description'),
'#required' => FALSE,
);
$form['node_ad_body_insertion']['adsense_injector_body_minwords'] = array(
'#type' => 'textfield',
'#title' => t('Minimum node body word count'),
'#default_value' => variable_get('adsense_injector_body_minwords', ADSENSE_INJECTOR_BODY_MINWORDS_DEFAULT),
'#description' => t('The minimum node body word count threshold - only inject if node body has at least this many words.'),
);
$form['node_ad_body_insertion']['adsense_injector_body_template'] = array(
'#type' => 'textarea',
'#title' => t('Node body ad insertion template'),
'#rows' => 5,
'#cols' => 40,
'#default_value' => variable_get('adsense_injector_body_template', ADSENSE_INJECTOR_BODY_INSERTION_TEMPLATE_DEFAULT),
'#description' => t('Ad insertion template. Substitution variables: %body = full node body text. Insert adsense module filter tags. See the <a href="/admin/settings/adsense">adsense.module settings page</a> for a list of supported formats and help with filter tags.'),
'#required' => TRUE,
);
/**
* 'list' insertion (frontpage, taxonomy, etc).
*/
$form['node_ad_list_insertion'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#title' => t('Node list ad insertion'),
'#description' => t('Ad insertion in node lists or other non-page view, like front page, taxonomy views.'),
);
$form['node_ad_list_insertion']['adsense_injector_append_in_listview'] = array(
'#type' => 'checkbox',
'#title' => t('Append an ad after teaser on frontpage and taxonomy lists'),
'#default_value' => variable_get('adsense_injector_append_in_listview', ADSENSE_INJECTOR_APPEND_IN_LISTVIEW_DEFAULT),
'#description' => t('Note: this does not currently support Views module based lists.'),
'#required' => FALSE,
);
$form['node_ad_list_insertion']['adsense_injector_listview_insertion_template'] = array(
'#type' => 'textarea',
'#title' => t('List ad insertion template'),
'#rows' => 3,
'#cols' => 40,
'#default_value' => variable_get('adsense_injector_listview_insertion_template', ADSENSE_INJECTOR_LISTVIEW_INSERTION_TEMPLATE_DEFAULT),
'#description' => t('Template to use when inserting adsense ad. "%teaser" will be replaced with the node teaser. Insert adsense filter tags. See the <a href="/admin/settings/adsense">adsense.module settings page</a> for a list of supported formats and help with filter tags.'),
'#required' => TRUE,
);
/**
* What kinds of nodes do we want to insert on...?
*/
$form['injection_control'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#title' => t('Select Node Types for Insertion'),
'#description' => t('Nodes types to display inline ads - ads are inserted <strong>only</strong> in the selected node types.'),
);
/**
* Enumerate node types, and set up form fields for each.
*/
$enabled_count = 0;
$nodetypes = array();
foreach (node_get_types() as $type => $obj) {
$nodetypes[$type] = $obj->name;
$enabled = variable_get(ADSENSE_INJECTOR_INSERT_AD_NODETYPE . $type, FALSE);
if ($enabled) {
$enabled_count++;
}
$form['injection_control']['node_types'][ADSENSE_INJECTOR_INSERT_AD_NODETYPE . $type] = array(
'#type' => 'checkbox',
'#title' => $obj->name,
'#default_value' => $enabled,
'#description' => t('Display inline ads on %nodetype nodes', array(
'%nodetype' => $obj->name,
)),
'#required' => FALSE,
);
}
// Do some sanity checking.
if ($enabled_count == 0) {
$msg = t('No node types selected (no ads will be inserted because you haven\'t selected any node types for automatic ad insertion.)');
$form['injection_control']['#collapsed'] = FALSE;
$form['injection_control']['no_nodes_enabled'] = array(
'#type' => 'markup',
'#weight' => -1,
'#value' => '<div id="message"><div class="messages error"><strong>' . $msg . '</strong></div></div>',
);
}
}
return system_settings_form($form);
}
Functions
Name![]() |
Description |
---|---|
adsense_injector_admin_settings | Implementation of hook_settings(). |