function ad_get_ads in Advertisement 7.3
Callback for the Ajax request to get ads.
1 call to ad_get_ads()
- ad_serve.php in ./
ad_serve.php
File
- ./
ad.module, line 165 - Core code for the ad module.
Code
function ad_get_ads() {
$result = array();
$page_unique_id = ad_uniqid('page');
if (!empty($_POST['ads'])) {
if (!empty($_POST['page'])) {
$page_url = $_POST['page']['url'];
$page_title = $_POST['page']['title'];
}
$uid = (int) $_POST['uid'];
ad_session_start();
foreach ($_POST['ads'] as $element_id => $data) {
$view_name = $data['view'];
$display = isset($data['display']) ? $data['display'] : 'default';
// Be sure the view is specifically set for ads.
if (ad_is_view_ad_enabled($view_name, $display)) {
$view_arguments = array(
$view_name,
$display,
);
if (!empty($data['arguments'])) {
$view_arguments = array_merge($view_arguments, explode('/', $data['arguments']));
}
$view_result = ad_get_cache('views_get_view_result', $view_arguments);
// Finally, return a result.
if (!empty($view_result)) {
// Choose one.
$random_id = $view_result[array_rand($view_result)]['nid'];
$view_mode = ad_get_view_view_mode($view_name, $display);
$rendered_ad = ad_get_rendered_node($random_id, $view_mode);
// Track it.
$impression_unique_id = ad_track_event('impression', $random_id, '', $page_url, $page_title, $page_unique_id, NULL, $uid);
$rendered_ad = strtr($rendered_ad, array(
AD_IMPRESSION_ID_PLACEHOLDER => $impression_unique_id,
));
$result[$element_id] = array(
'rendered_ad' => $rendered_ad,
);
}
}
}
}
drupal_json_output($result);
}