You are here

function nodereference_count_get_referenced_nids in Nodereference Count 7

From a set of node reference fields get all the nids that need to be updated.

Parameters

$node: The node object.

$counted_fields: An array of node reference fields.

Return value

An array of nids.

1 call to nodereference_count_get_referenced_nids()
nodereference_count_references_update in ./nodereference_count.module
Identify counted node references on a node and trigger an update of the referenced nodes.

File

./nodereference_count.module, line 324
Defines a field type for counting the references to a node.

Code

function nodereference_count_get_referenced_nids($node, $counted_fields) {
  $nids = array();
  foreach ($counted_fields as $counted_field) {

    // Get all the updated nids.
    $updated_nodereferences = $node->{$counted_field};
    foreach ($updated_nodereferences as $language => $deltas) {
      foreach ($deltas as $delta => $nodereference) {
        $nids[$nodereference['nid']] = $nodereference['nid'];
      }
    }

    // Get all the original nids.
    if (isset($node->original)) {
      $original_nodereferences = $node->original->{$counted_field};
      foreach ($original_nodereferences as $language => $deltas) {
        foreach ($deltas as $delta => $nodereference) {
          $nids[$nodereference['nid']] = $nodereference['nid'];
        }
      }
    }
  }
  return $nids;
}