function domain_xmlsitemap_query_xmlsitemap_generate_alter in Domain XML sitemap 7
Same name and namespace in other branches
- 6 domain_xmlsitemap.module \domain_xmlsitemap_query_xmlsitemap_generate_alter()
Implements hook_query_TAG_alter().
File
- ./
domain_xmlsitemap.xmlsitemap.inc, line 60 - XML sitemap integration functions for domain_xmlsitemap.module.
Code
function domain_xmlsitemap_query_xmlsitemap_generate_alter(QueryAlterableInterface $query) {
$sitemap = $query
->getMetaData('sitemap');
if (!isset($sitemap->context['domain'])) {
return;
}
// @todo Join here may cause duplicate records. Investigate using a subquery.
$domain_alias = $query
->leftJoin('domain_access', 'da', "x.type = 'node' AND x.id = da.nid");
$domain_condition = db_or();
$domain_condition
->isNull('da.gid');
$domain_condition
->condition(db_and()
->condition('da.gid', 0)
->condition('da.realm', 'domain_site'));
$domain_condition
->condition(db_and()
->condition('da.gid', $sitemap->context['domain'])
->condition('da.realm', 'domain_id'));
$query
->condition($domain_condition);
// If the domain source module is enabled, we need to add a check against
// the {domain_source} table as well.
if (module_exists('domain_source')) {
$domain_source = $query
->leftJoin('domain_source', 'ds', "x.type = 'node' AND x.id = ds.nid");
$source_condition = db_or();
$source_condition
->isNull('ds.domain_id');
$source_condition
->condition('ds.domain_id', array(
DOMAIN_SOURCE_USE_ACTIVE,
$sitemap->context['domain'],
));
$query
->condition($source_condition);
}
}