You are here

function apachesolr_exclude_node_nodeapi in Apache Solr Exclude Node 6

Implementation of hook_nodeapi().

File

./apachesolr_exclude_node.module, line 53
Module file for the Apache Solr Exclude Node module.

Code

function apachesolr_exclude_node_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  switch ($op) {
    case 'insert':
      if (!empty($node->apachesolr_exclude_node_enabled)) {
        $exclude = $node->apachesolr_exclude_node_enabled ? 1 : 0;
        db_query('INSERT INTO {apachesolr_exclude_node} (nid, vid, exclude) VALUES (%d, %d, %d)', $node->nid, $node->vid, $exclude);
      }
      break;
    case 'update':
      if (!empty($node->apachesolr_exclude_node_enabled)) {
        $result = db_result(db_query('SELECT vid FROM {apachesolr_exclude_node} WHERE vid = %d', $node->vid));
        if ($result) {
          $exclude = $node->apachesolr_exclude_node_enabled ? 1 : 0;
          db_query('UPDATE {apachesolr_exclude_node} SET exclude = %d WHERE vid = %d', $exclude, $node->vid);
        }
        else {
          apachesolr_exclude_node_nodeapi($node, 'insert');
        }
      }
      else {
        apachesolr_exclude_node_nodeapi($node, 'delete revision');
      }
      break;
    case 'delete':
      db_query('DELETE FROM {apachesolr_exclude_node} WHERE nid = %d', $node->nid);
      break;
    case 'delete revision':
      db_query('DELETE FROM {apachesolr_exclude_node} WHERE vid = %d', $node->vid);
      break;
    case 'load':
      $exclude = db_result(db_query('SELECT exclude FROM {apachesolr_exclude_node} WHERE vid = %d', $node->vid));
      $node->apachesolr_exclude_node_enabled = $exclude;
      break;
  }
}