function adserve_cache_id in Advertisement 6.3
Same name and namespace in other branches
- 5.2 adcache.inc \adserve_cache_id()
- 6.2 adcache.inc \adserve_cache_id()
- 7 adcache.inc \adserve_cache_id()
Default function for retrieving list of ids.
File
- ./
adcache.inc, line 215
Code
function adserve_cache_id($type, $id) {
_debug_echo("adserve_cache_id: type({$type}) id({$id})");
switch ($type) {
case 'nids':
$result = db_query("SELECT aid FROM {ads} WHERE adstatus = 'active' AND aid IN(%s)", $id);
_debug_echo("adserve_cache_id: SELECT aid FROM {ads} WHERE adstatus = 'active' AND aid IN({$id})");
break;
case 'tids':
$result = db_query("SELECT a.aid FROM {ads} a INNER JOIN {node} n ON a.aid = n.nid INNER JOIN {term_node} tn ON n.vid = tn.vid WHERE a.adstatus = 'active' AND tn.tid IN(%s)", $id);
_debug_echo("adserve_cache_id: SELECT a.aid FROM {ads} a INNER JOIN {node} n ON a.aid = n.nid INNER JOIN {term_node} tn ON n.vid = tn.vid WHERE a.adstatus = 'active' AND tn.tid IN({$id})");
break;
case 'default':
$result = db_query("SELECT a.aid FROM {ads} a INNER JOIN {node} n ON a.aid = n.nid LEFT JOIN {term_node} tn ON n.vid = tn.vid WHERE a.adstatus = 'active' AND tn.tid IS NULL");
_debug_echo("SELECT a.aid FROM {ads} a INNER JOIN {node} n ON a.aid = n.nid LEFT JOIN {term_node} tn ON n.vid = tn.vid WHERE a.adstatus = 'active' AND tn.tid IS NULL");
break;
default:
_debug_echo("adserve_cache_id: unsupported type '{$type}'.");
}
$ids = array();
if (isset($result)) {
while ($ad = db_fetch_object($result)) {
// perform node access check
$node = node_load($ad->aid);
if (node_access('view', $node) !== FALSE) {
$ids[$ad->aid] = $ad->aid;
}
else {
_debug_echo("adserve_cache_id: Ad '{$ad->aid}' failed access check.");
}
}
}
return $ids;
}