You are here

function _linkchecker_cleanup_comment_references in Link checker 7

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

Cleanup no longer used comment references to links in the linkchecker_comment table.

Parameters

int $cid: The comment ID.

array $links:

1 call to _linkchecker_cleanup_comment_references()
_linkchecker_add_comment_links in ./linkchecker.module
Add comment links to database.

File

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

Code

function _linkchecker_cleanup_comment_references($cid = 0, $links = array()) {
  if (empty($links)) {

    // Comment do not have links. Delete all references if exists.
    db_delete('linkchecker_comment')
      ->condition('cid', $cid)
      ->execute();
  }
  else {

    // The comment 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_comment reference table.
    $subquery = db_select('linkchecker_link', 'll')
      ->fields('ll', array(
      'lid',
    ))
      ->condition('ll.urlhash', array_map('drupal_hash_base64', $links), 'IN');
    db_delete('linkchecker_comment')
      ->condition('cid', $cid)
      ->condition('lid', $subquery, 'NOT IN')
      ->execute();
  }
}