adsense_search.module in Google AdSense integration 5.3
Same filename and directory in other branches
Displays Google AdSense ads on Drupal pages
This is the core module of the AdSense package, with the Drupal hooks and other administrative functions.
File
old/search/adsense_search.moduleView source
<?php
/**
* @file
* Displays Google AdSense ads on Drupal pages
*
* This is the core module of the AdSense package, with the Drupal hooks
* and other administrative functions.
*/
define('ADSENSE_SEARCH_RESULTS_PATH', 'adsense/search');
define('ADSENSE_SEARCH_AD_BLOCK_DEFAULT', '');
define('ADSENSE_SEARCH_BUTTON_DEFAULT', 0);
define('ADSENSE_SEARCH_COLOR_BG_DEFAULT', '#FFFFFF');
define('ADSENSE_SEARCH_COLOR_BORDER_DEFAULT', '#336699');
define('ADSENSE_SEARCH_COLOR_BOX_BACKGROUND_DEFAULT', '#FFFFFF');
define('ADSENSE_SEARCH_COLOR_BOX_TEXT_DEFAULT', '#000000');
define('ADSENSE_SEARCH_COLOR_LIGHT_URL_DEFAULT', '#0000FF');
define('ADSENSE_SEARCH_COLOR_LOGO_BG_DEFAULT', '#336699');
define('ADSENSE_SEARCH_COLOR_TEXT_DEFAULT', '#000000');
define('ADSENSE_SEARCH_COLOR_TITLE_DEFAULT', '#0000FF');
define('ADSENSE_SEARCH_COLOR_URL_DEFAULT', '#008000');
define('ADSENSE_SEARCH_COLOR_VISITED_URL_DEFAULT', '#663399');
define('ADSENSE_SEARCH_COUNTRY_DEFAULT', 'www.google.com');
define('ADSENSE_SEARCH_DOMAIN_DEFAULT', '');
define('ADSENSE_SEARCH_ENCODING_DEFAULT', 'UTF-8');
define('ADSENSE_SEARCH_FRAME_WIDTH_DEFAULT', 800);
define('ADSENSE_SEARCH_LANGUAGE_DEFAULT', 'en');
define('ADSENSE_SEARCH_LOGO_DEFAULT', 'adsense_search_logo_google');
define('ADSENSE_SEARCH_NUMBER_BLOCKS_DEFAULT', 2);
define('ADSENSE_SEARCH_SAFE_MODE_DEFAULT', 0);
define('ADSENSE_SEARCH_TEXTBOX_LENGTH_DEFAULT', 31);
require_once drupal_get_path('module', 'adsense_search') . '/adsense_search.admin.inc';
require_once drupal_get_path('module', 'adsense_search') . '/adsense_search.results.inc';
/**
* Implementation of hook_menu().
*/
function adsense_search_menu($may_cache) {
$items = array();
if ($may_cache) {
$results_path = variable_get('clean_url', 0) ? ADSENSE_SEARCH_RESULTS_PATH : '.';
$items[] = array(
'path' => 'admin/settings/adsense/search',
'title' => t('Search'),
'callback' => 'drupal_get_form',
'callback arguments' => array(
'adsense_search_settings',
),
'access' => user_access('administer adsense'),
'weight' => 4,
'type' => MENU_LOCAL_TASK,
);
$items[] = array(
'path' => $results_path,
'title' => t('Search Results'),
'callback' => '_adsense_search_results',
'access' => TRUE,
'type' => MENU_CALLBACK,
);
}
return $items;
}
/**
* Implementation of hook_block().
*/
function adsense_search_block($op = 'list', $delta = 0, $edit = array()) {
$block = NULL;
switch ($op) {
case 'list':
$max = variable_get('adsense_search_number_blocks', ADSENSE_SEARCH_NUMBER_BLOCKS_DEFAULT);
for ($count = 0; $count < $max; $count++) {
if ($ad = _adsense_search_get_block_config($count)) {
$title = $ad[0];
}
else {
$title = t('AdSense Search: unconfigured ') . $count;
}
$block[$count]['info'] = $title;
$block[$count]['cache'] = BLOCK_NO_CACHE;
}
break;
case 'configure':
$ad = _adsense_search_get_block_config($delta);
$channel_list[''] = t('None');
for ($channel = 1; $channel <= ADSENSE_MAX_CHANNELS; $channel++) {
$channel_list[$channel] = $channel . ' : ' . variable_get('adsense_ad_channel_' . $channel, ADSENSE_AD_CHANNEL_DEFAULT);
}
$form['info'] = array(
'#type' => 'textfield',
'#title' => t('Block description'),
'#default_value' => $ad ? $ad[0] : '',
'#maxlength' => 64,
'#description' => t('A brief description of your block. Used on the <a href="@overview">block overview page</a>.', array(
'@overview' => url('admin/build/block'),
)),
'#required' => TRUE,
'#weight' => -19,
);
$form['ad_channel'] = array(
'#type' => 'select',
'#title' => t('Channel'),
'#default_value' => $ad ? $ad[1] : '',
'#options' => $channel_list,
);
return $form;
case 'save':
$data = implode(':', array(
urlencode($edit['info']),
$edit['ad_channel'],
));
variable_set('adsense_search_ad_block_' . $delta, $data);
return;
case 'view':
if (_adsense_page_match()) {
$ad = _adsense_search_get_block_config($delta);
$block['content'] = $ad ? adsense_display(array(
'format' => 'Search Box',
'channel' => $ad[1],
)) : t('AdSense unconfigured block. <a href=!url>Click to configure.</a>', array(
'!url' => url('admin/build/block/configure/adsense_search/' . $delta),
));
}
break;
}
return $block;
}
/**
* Configuration of the provided block
*
* @param $delta
* block number
* @return
* array with the block configuration or FALSE if no such block was found
*/
function _adsense_search_get_block_config($delta = 0) {
if ($data = variable_get('adsense_search_ad_block_' . $delta, ADSENSE_SEARCH_AD_BLOCK_DEFAULT)) {
$ad = explode(':', $data);
$ad[0] = urldecode($ad[0]);
return $ad;
}
return FALSE;
}
/**
* Generates the search box
*
* @param $channel
* (optional) Channel ID of the configured Ad Channel
* @return
* HTML with the search input form
*/
function _adsense_search_get_searchbox($client, $channel = NULL) {
global $base_url;
$border = variable_get('adsense_search_color_border', ADSENSE_SEARCH_COLOR_BORDER_DEFAULT);
$title = variable_get('adsense_search_color_title', ADSENSE_SEARCH_COLOR_TITLE_DEFAULT);
$bg = variable_get('adsense_search_color_bg', ADSENSE_SEARCH_COLOR_BG_DEFAULT);
$text = variable_get('adsense_search_color_text', ADSENSE_SEARCH_COLOR_TEXT_DEFAULT);
$url = variable_get('adsense_search_color_url', ADSENSE_SEARCH_COLOR_URL_DEFAULT);
$visited = variable_get('adsense_search_color_visited_url', ADSENSE_SEARCH_COLOR_VISITED_URL_DEFAULT);
$light = variable_get('adsense_search_color_light_url', ADSENSE_SEARCH_COLOR_LIGHT_URL_DEFAULT);
$logobg = variable_get('adsense_search_color_logo_bg', ADSENSE_SEARCH_COLOR_LOGO_BG_DEFAULT);
$logo = variable_get('adsense_search_logo', ADSENSE_SEARCH_LOGO_DEFAULT);
$search_button = variable_get('adsense_search_button', ADSENSE_SEARCH_BUTTON_DEFAULT);
$box_text_color = variable_get('adsense_search_color_box_text', ADSENSE_SEARCH_COLOR_BOX_TEXT_DEFAULT);
$box_background_color = variable_get('adsense_search_color_box_background', ADSENSE_SEARCH_COLOR_BOX_BACKGROUND_DEFAULT);
$encoding = variable_get('adsense_search_encoding', ADSENSE_SEARCH_ENCODING_DEFAULT);
$domain_0 = variable_get('adsense_search_domain_0', str_replace('http://', '', $base_url));
$domain_1 = variable_get('adsense_search_domain_1', ADSENSE_SEARCH_DOMAIN_DEFAULT);
$domain_2 = variable_get('adsense_search_domain_2', ADSENSE_SEARCH_DOMAIN_DEFAULT);
$domain = $domain_1 ? "{$domain_0};{$domain_1}" : $domain_0;
$domain = $domain_2 ? "{$domain};{$domain_2}" : $domain;
$language = variable_get('adsense_search_language', ADSENSE_SEARCH_LANGUAGE_DEFAULT);
$textbox_length = variable_get('adsense_search_textbox_length', ADSENSE_SEARCH_TEXTBOX_LENGTH_DEFAULT);
if (variable_get('clean_url', 0)) {
$results_path = url(ADSENSE_SEARCH_RESULTS_PATH, array(
'absolute' => TRUE,
));
$hidden_q_field = "";
}
else {
$results_path = $base_url;
$hidden_q_field = '<input type="hidden" name="q" value="." />';
}
if ($logo != 'adsense_search_logo_on_button') {
$btn = t('Search');
if ($box_background_color == '#000000') {
$logo_color = 'blk';
}
elseif ($box_background_color == '#CCCCCC') {
$logo_color = 'gry';
}
else {
$logo_color = 'wht';
}
$part1 = "<a href=\"http://www.google.com/\">\n" . "<img src=\"http://www.google.com/logos/Logo_25{$logo_color}.gif\" border=\"0\" alt=\"Google\" align=\"middle\"></img></a>";
if ($logo == 'adsense_search_logo_google') {
$part1 .= "\n</td>\n<td nowrap=\"nowrap\">";
$part3 = "<td> </td>";
}
elseif ($logo == 'adsense_search_logo_above_textbox') {
$part1 .= "\n<br/>";
$part3 = "";
}
}
else {
$btn = t('Google Search');
$part1 = "</td>\n<td nowrap=\"nowrap\">";
$part3 = "<td> </td>";
}
$button_html = "<label for=\"sbb\" style=\"display: none\">Submit search form</label>\n" . "<input type=\"submit\" name=\"sa\" value=\"{$btn}\" id=\"sbb\"></input>";
if (!$search_button) {
$part2 = $button_html;
$part5 = "";
}
else {
$part5 = $button_html;
$part2 = "";
}
// Searched domains >=1 (2 or 3)
if ($domain_1) {
$part4 = "<tr>\n<td>\n<input type=\"radio\" name=\"sitesearch\" value=\"{$domain_1}\" id=\"ss2\"></input>\n" . "<label for=\"ss2\" title=\"Search {$domain_1}\"><font size=\"-1\" color=\"{$box_text_color}\">{$domain_1}</font></label></td>\n";
if ($domain_2) {
$part4 .= "<td>\n<input type=\"radio\" name=\"sitesearch\" value=\"{$domain_2}\" id=\"ss3\"></input>\n" . "<label for=\"ss3\" title=\"Search {$domain_2}\"><font size=\"-1\" color=\"{$box_text_color}\">{$domain_2}</font></label></td>";
}
else {
$part4 .= "<td></td>";
}
$part4 .= "\n</tr>";
}
else {
$part4 = "";
}
// AdSense for Search channel
$channel = variable_get('adsense_ad_channel_' . $channel, ADSENSE_AD_CHANNEL_DEFAULT);
if (!empty($channel)) {
$part6 = "<input type=\"hidden\" name=\"channel\" value=\"{$channel}\"></input>";
}
else {
$part6 = "";
}
// Is SafeSearch active?
$part7 = variable_get('adsense_search_safe_mode', ADSENSE_SEARCH_SAFE_MODE_DEFAULT) ? '<input type="hidden" name="safe" value="active"></input>' : '';
$output = <<<SEARCH_TXT
<!-- SiteSearch Google -->
<form method="get" action="{<span class="php-variable">$results_path</span>}" target="_top">
<table border="0" bgcolor="{<span class="php-variable">$box_background_color</span>}">
<tr><td nowrap="nowrap" valign="top" align="left" height="32">
{<span class="php-variable">$part1</span>}
{<span class="php-variable">$hidden_q_field</span>}
<input type="hidden" name="domains" value="{<span class="php-variable">$domain</span>}"></input>
<label for="sbi" style="display: none">Enter your search terms</label>
<input type="text" name="as_q" size="{<span class="php-variable">$textbox_length</span>}" maxlength="255" value="" id="sbi"></input>
{<span class="php-variable">$part2</span>}
</td></tr>
<tr>
{<span class="php-variable">$part3</span>}
<td nowrap="nowrap">
<table>
<tr>
<td>
<input type="radio" name="sitesearch" value="" checked id="ss0"></input>
<label for="ss0" title="Search the Web"><font size="-1" color="{<span class="php-variable">$box_text_color</span>}">Web</font></label></td>
<td>
<input type="radio" name="sitesearch" value="{<span class="php-variable">$domain_0</span>}" id="ss1"></input>
<label for="ss1" title="Search {<span class="php-variable">$domain_0</span>}"><font size="-1" color="{<span class="php-variable">$box_text_color</span>}">{<span class="php-variable">$domain_0</span>}</font></label></td>
</tr>
{<span class="php-variable">$part4</span>}
</table>
{<span class="php-variable">$part5</span>}
<input type="hidden" name="client" value="{<span class="php-variable">$client</span>}"></input>
<input type="hidden" name="forid" value="1"></input>
{<span class="php-variable">$part6</span>}
<input type="hidden" name="ie" value="{<span class="php-variable">$encoding</span>}"></input>
<input type="hidden" name="oe" value="{<span class="php-variable">$encoding</span>}"></input>
{<span class="php-variable">$part7</span>}
<input type="hidden" name="cof" value="GALT:{<span class="php-variable">$url</span>};GL:1;DIV:{<span class="php-variable">$border</span>};VLC:{<span class="php-variable">$visited</span>};AH:center;BGC:{<span class="php-variable">$bg</span>};LBGC:{<span class="php-variable">$logobg</span>};ALC:{<span class="php-variable">$title</span>};LC:{<span class="php-variable">$title</span>};T:{<span class="php-variable">$text</span>};GFNT:{<span class="php-variable">$light</span>};GIMP:{<span class="php-variable">$light</span>};FORID:11"></input>
<input type="hidden" name="hl" value="{<span class="php-variable">$language</span>}"></input>
</td></tr></table>
</form>
<!-- SiteSearch Google -->
SEARCH_TXT;
return $output;
}
Functions
Name | Description |
---|---|
adsense_search_block | Implementation of hook_block(). |
adsense_search_menu | Implementation of hook_menu(). |
_adsense_search_get_block_config | Configuration of the provided block |
_adsense_search_get_searchbox | Generates the search box |