function _linkchecker_cleanup_node_references in Link checker 5.2
Same name and namespace in other branches
- 6.2 linkchecker.module \_linkchecker_cleanup_node_references()
- 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)));
}
}