domain_content.module
<?php
function domain_content_menu() {
$items = array();
$items['admin/domain/content'] = array(
'title' => 'Affiliated content',
'page callback' => 'domain_content_list',
'access callback' => 'domain_content_menu_check',
'file' => 'domain_content.admin.inc',
);
$items['admin/domain/content/all'] = array(
'title' => 'Content assigned to all affiliates',
'page callback' => 'domain_content_view',
'page arguments' => array(NULL, TRUE),
'access callback' => 'domain_content_menu_check',
'file' => 'domain_content.admin.inc',
'description' => 'View content assigned to all affiliate sites.',
'weight' => -10
);
$domains = domain_domains();
if (count($domains) <= variable_get('domain_list_size', DOMAIN_LIST_SIZE)) {
foreach ($domains as $domain) {
$items['admin/domain/content/'. $domain['domain_id']] = array(
'title' => filter_xss_admin($domain['sitename']) .' content',
'page callback' => 'domain_content_view',
'page arguments' => array($domain['domain_id'], FALSE),
'access callback' => 'domain_content_check',
'access arguments' => array($domain['domain_id']),
'file' => 'domain_content.admin.inc',
'description' => 'View content assigned to '. filter_xss_admin($domain['subdomain']),
'weight' => $domain['domain_id']
);
}
}
else {
$items['admin/domain/content/list'] = array(
'title' => 'Affiliate site list',
'page callback' => 'domain_content_list',
'access callback' => 'domain_content_menu_check',
'file' => 'domain_content.admin.inc',
'description' => 'View your list of affiliates',
'weight' => -10
);
$items['admin/domain/content/%'] = array(
'title' => 'Affiliate site list',
'page callback' => 'domain_content_view',
'page arguments' => array(3, TRUE),
'access callback' => 'domain_content_check',
'access arguments' => array(3),
'file' => 'domain_content.admin.inc',
'description' => 'Content list for a domain',
'weight' => -10
);
}
return $items;
}
function domain_content_perm() {
return array('configure domain content', 'review content for all domains');
}
function domain_content_theme() {
$themes = array(
'domain_content_admin_nodes' => array(
'arguments' => array('form' => array()),
'file' => 'domain_content.admin.inc',
),
);
return $themes;
}
function domain_content_menu_check() {
if (user_access('administer nodes')) {
return TRUE;
}
if (user_access('edit domain nodes') || user_access('review content for all domains')) {
return TRUE;
}
return FALSE;
}
function domain_content_check($domain_id) {
global $user;
if (user_access('administer nodes') || user_access('review content for all domains')) {
return TRUE;
}
$rule = user_access('edit domain nodes');
if (!$rule) {
return FALSE;
}
$domains = domain_get_user_domains($user);
$check = FALSE;
$editor = FALSE;
if ($rule && $domain_id == 0 && $domains['-1'] == -1) {
$editor = TRUE;
}
else if ($rule && $domain_id > 0 && $domain_id == $domains[$domain_id]) {
$editor = TRUE;
}
if ($editor) {
$check = TRUE;
}
return $check;
}
function domain_content_node_operations() {
if (arg(0) == 'admin' && arg(1) == 'domain' && user_access('set domain access')) {
$operations = array(
'domain' => array(
'label' => t('Change affiliate publishing options'),
'callback' => 'domain_content_node_operations_access',
)
);
return $operations;
}
}
function domain_content_node_operations_access($nodes) {
}
function domain_content_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'node_multiple_delete_confirm') {
$form['#redirect'] = $_GET['q'];
}
}
function domain_content_domainlinks($domain) {
$links[] = array(
'title' => t('content'),
'path' => 'admin/domain/content/'. $domain['domain_id']
);
return $links;
}