You are here

function domain_vbo_modify_node_domains in Domain VBO 7

domain_vbo_modify_node_domains: Action callback.

File

./domain_vbo.node.inc, line 66
Contains functions for Domain VBO User action.

Code

function domain_vbo_modify_node_domains(&$node, $context) {
  $action = $context['action'];
  $all_domains = $context['all_domains'];
  $submitted_domains = $context['domains'];
  switch ($all_domains) {
    case 'yes':
      $node->domain_site = TRUE;
      break;
    case 'not':
      $node->domain_site = FALSE;
      break;
    case 'default':
      break;
  }

  // This function is called for each entity (node).
  switch ($action) {
    case 'replace':
      $node->domains = $submitted_domains;
      break;
    case 'add':

      // Get current node's domains and merge with submitted.
      $current_domains = $node->domains;

      // Just add the arrays with domains together.
      $combined_domains = $current_domains + $submitted_domains;
      $node->domains = array_unique($combined_domains);
      break;
    case 'remove':

      // Get current node's domains and substract submitted.
      $current_domains = $node->domains;

      // Remove submitted domains from the current domains array.
      $subtracted_domains = array_diff_assoc($current_domains, $submitted_domains);
      $node->domains = array_unique($subtracted_domains);
      break;
  }

  // Save new settings.
  domain_node_access_records($node);

  // Explicit save to force all node access hooks to be called.
  node_save($node);
}