Index: ad.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/ad/ad.module,v
retrieving revision 1.2.2.29.2.83.2.1
diff -u -p -r1.2.2.29.2.83.2.1 ad.module
--- ad.module 11 Aug 2008 21:15:26 -0000 1.2.2.29.2.83.2.1
+++ ad.module 30 Oct 2008 03:09:57 -0000
@@ -2,7 +2,7 @@
// $Id: ad.module,v 1.2.2.29.2.83.2.1 2008/08/11 21:15:26 jeremy Exp $
/* TODO Implement the hook_theme registry. Combine all theme registry entries
- into one hook_theme function in each corresponding module file.
+ into one hook_theme function in each corresponding module file.*/
function ad_theme() {
return array(
'ad_display' => array(
@@ -57,8 +57,8 @@ function ad_theme() {
),
),
);
-}; */
-
+};
+ /**/
/* TODO You may want to take advantage of new form-specific alter hooks.
The hook_form_alter(&$form, &$form_state, $form_id) is complemented by hook_form_$form-id_alter().
@@ -97,7 +97,7 @@ function ad($group = FALSE, $quantity =
_ad_check_install();
$adserve = variable_get('adserve', '');
$adserveinc = variable_get('adserveinc', '');
- }
+ }
if (!file_exists($adserve) || !file_exists($adserveinc)) {
drupal_set_message(t('Ads cannot be displayed. The ad module is misconfigured, failed to locate the required serve.php ond/or adserve.inc file.', array('@misconfigured' => url('admin/content/ad/configure'))), 'error');
_ad_check_install();
@@ -121,26 +121,21 @@ function ad($group = FALSE, $quantity =
break;
case 'iframe':
case 'jquery':
- $display_variables = 'm=' . $options['ad_display'];
+ $query['m'] = $options['ad_display'];
// Fall through...
case 'javascript':
default:
- if ($display_variables) {
- $display_variables .= "&q=$quantity";
- }
- else {
- $display_variables = "q=$quantity";
- }
+ $query['q'] = $quantity;
if ($hostid = $options['hostid']) {
- $display_variables .= "&k=$hostid";
+ $query['k'] = $hostid;
}
// Allow external cache files to define additional display variables.
if ($options['cache'] != 'none') {
- $display_variables .= '&c='. $options['cache'];
+ $query['c'] = $options['cache'];
$cache_variables = module_invoke('ad_cache_'. $options['cache'], 'adcacheapi', 'display_variables', array());
if (is_array($cache_variables)) {
foreach ($cache_variables as $key => $value) {
- $display_variables .= "&$key=$value";
+ $query[$key] = $value;
}
}
}
@@ -148,25 +143,25 @@ function ad($group = FALSE, $quantity =
$type_variables = module_invoke_all('adapi', 'display_variables', array());
if (is_array($type_variables)) {
foreach ($type_variables as $key => $value) {
- $display_variables .= "&$key=$value";
+ $query[$key] = $value;
}
}
if ($nids = $options['nids']) {
// Choose ads from the provided list of node Id's.
- $display_variables .= "&n=$nids";
+ $query['n'] = $nids;
$group = "nids-$nids";
}
else if ($tids = $options['tids']) {
// Choose ads from the provided list of taxonomy terms.
- $display_variables .= "&t=$tids";
+ $query['t'] = $tids;
$group = "tids-$tids";
}
else {
// Choose ads from the specified group.
- $display_variables .= "&t=$group";
+ $query['t'] = $group;
$options['tids'] = $group;
}
- $src = url("$base_url/$adserve?$display_variables");
+ $src = url("$base_url/$adserve", array('query' => $query));
if ($options['ad_display'] == 'iframe') {
// TODO: We need to know the IFrame size before it is displayed. This
// limits the flexibility of what can be displayed in these frames.
@@ -223,7 +218,10 @@ function theme_ad_display($group, $displ
/**
* Update click counter then redirect host to ad's target URL.
*/
-function ad_redirect($aid, $group = NULL, $hostid = NULL) {
+function ad_redirect() {
+ $aid = arg(2);
+ $group = arg(3);
+ $hostid = arg(4);
global $user;
if (function_exists('click_filter_status')) {
$status = click_filter_status($aid, $hostid);
@@ -1168,7 +1166,9 @@ function ad_adapi($op, $node = NULL) {
break;
}
}
-
+function ad_id_load($arg) {
+ return is_numeric($arg);
+}
/**
* Implementation of hook_menu().
*/
@@ -1252,7 +1252,7 @@ function ad_menu() {
$settings = 'ad_no_global_settings';
}
$items['admin/content/ad/configure/'. $adtype] = array(
- 'title' => '!adtype ads', array('!adtype' => drupal_ucfirst($adtype)),
+ 'title' => t('!adtype ads', array('!adtype' => drupal_ucfirst($adtype))),
'page callback' => 'drupal_get_form',
'page arguments' => array($settings),
'access arguments' => array('administer advertisements'),
@@ -1265,7 +1265,13 @@ function ad_menu() {
'access arguments' => array('create advertisements'),
);
}
-
+
+
+ $items["ad/redirect"] = array(
+ 'access arguments' => array('show advertisements'),
+ 'type' => MENU_CALLBACK,
+ 'page callback' => 'ad_redirect',
+ );/**
// callbacks
if (arg(0) == 'ad' && arg(1) == 'redirect' && is_numeric(arg(2))) {
$aid = preg_replace('/[^0-9]/', '', arg(2));
@@ -1275,7 +1281,8 @@ function ad_menu() {
'access arguments' => array('show advertisements'),
'type' => MENU_CALLBACK,
'page callback' => 'ad_redirect',
- 'page arguments' => array($aid, $group, $hostid));
+ 'page arguments' => array($aid, $group, $hostid)
+ );
}
elseif (arg(2) == 'ad' && arg(3) == 'groups' && is_numeric(arg(4))) {
if ($term = taxonomy_get_term(arg(4))) {
@@ -1349,7 +1356,7 @@ function ad_menu() {
'type' => MENU_CALLBACK
);
}
-
+/**/
return $items;
}