domain_xmlsitemap.module in Domain XML sitemap 6
File
domain_xmlsitemap.module
View source
<?php
function domain_xmlsitemap_xmlsitemap_context_info() {
$context['domain'] = array(
'label' => t('Domain'),
'default' => 0,
);
return $context;
}
function domain_xmlsitemap_xmlsitemap_context() {
$domain = domain_get_domain();
$context['domain'] = (string) $domain['domain_id'];
return $context;
}
function domain_xmlsitemap_xmlsitemap_context_url_options(array $context) {
$options = array();
if (isset($context['domain']) && ($domain = domain_load($context['domain']))) {
$options['base_url'] = rtrim($domain['path'], '/');
}
return $options;
}
function domain_xmlsitemap_node_grants_alter(&$grants, $account, $op) {
if (!empty($account->xmlsitemap_node_access)) {
unset($grants['domain_site']);
unset($grants['domain_id']);
$grants['domain_all'] = array(
0,
);
}
}
function domain_xmlsitemap_form_xmlsitemap_sitemap_edit_form_alter(&$form, $form_state) {
$domains = domain_domains();
$options = array();
foreach ($domains as $domain) {
$options[$domain['domain_id']] = $domain['path'];
}
$form['context']['domain'] = array(
'#type' => 'select',
'#title' => t('Domain'),
'#options' => $options,
'#default_value' => isset($form['#sitemap']->context['domain']) ? $form['#sitemap']->context['domain'] : '',
'#access' => !empty($options),
);
}
function domain_xmlsitemap_query_xmlsitemap_generate_alter(array &$query, array &$args, stdClass $sitemap) {
if (!isset($sitemap->context['domain'])) {
return;
}
$query['FROM'] .= " LEFT JOIN {domain_access} da ON x.type = 'node' AND x.id = da.nid";
$query['WHERE'] .= " AND (da.gid IS NULL OR (da.gid = 0 AND da.realm = 'domain_site') OR (da.gid = %d AND da.realm = 'domain_id'))";
$args[] = $sitemap->context['domain'];
if (module_exists('domain_source')) {
$query['FROM'] .= " LEFT JOIN {domain_source} ds ON x.type = 'node' AND x.id = ds.nid";
$query['WHERE'] .= " AND (ds.domain_id IS NULL OR ds.domain_id IN (%d, %d))";
$args[] = DOMAIN_SOURCE_USE_ACTIVE;
$args[] = $sitemap->context['domain'];
}
}
function domain_xmlsitemap_domainupdate($op, $domain, $form_state = array()) {
if ($op == 'update') {
}
elseif ($op == 'delete') {
}
}