You are here

function _linkchecker_cleanup_node_references in Link checker 5.2

Same name and namespace in other branches
  1. 6.2 linkchecker.module \_linkchecker_cleanup_node_references()
  2. 7 linkchecker.module \_linkchecker_cleanup_node_references()

Cleanup no longer used node references to links in the linkchecker_nodes table.

1 call to _linkchecker_cleanup_node_references()
_linkchecker_add_node_links in ./linkchecker.module
Add node links to database.

File

./linkchecker.module, line 1222
This module periodically check links in given node types, blocks, cck fields, etc.

Code

function _linkchecker_cleanup_node_references($nid = 0, $links = array()) {
  if (empty($links)) {

    // Node do not have links. Delete all references if exists.
    db_query("DELETE FROM {linkchecker_nodes} WHERE nid = %d", $nid);
  }
  else {

    // The node still have more than one link, but other links may have been
    // removed and links no longer in the content need to be deleted from the
    // linkchecker_nodes reference table.
    $placeholders = implode(',', array_fill(0, count($links), "'%s'"));
    db_query("DELETE FROM {linkchecker_nodes} WHERE nid = %d AND lid NOT IN (SELECT lid FROM {linkchecker_links} WHERE token IN (" . $placeholders . "))", array_merge(array(
      $nid,
    ), array_map('md5', $links)));
  }
}