You are here

function isbn_nodeapi in ISBN Field 6.0

File

./isbn.module, line 25
Maintains a consistant relationship between nodes and ISBNs.

Code

function isbn_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  switch ($op) {
    case 'insert':
    case 'update':
      if ($node->isbn['isbn']) {
        $isbn_values = $node->isbn['isbn'];
      }
      else {
        $isbn_values = isbn_find_isbns($node);
      }
      db_query("DELETE FROM {isbn_node} WHERE nid = %d", $node->nid);
      if ($isbn_values) {
        foreach ($isbn_values as $isbn_value) {
          if ($isbn_value['isbn'] > 1) {
            $isbn->isbn = $isbn_value['isbn'];
            $isbn->isbn10 = $isbn_value['isbn10'];
            $isbn->nid = $node->nid;
            drupal_write_record('isbn_node', $isbn);
          }
        }
      }
      break;
    case 'load':
      $result = db_query("SELECT * FROM {isbn_node} WHERE nid = %d", $node->nid);
      while ($isbn_node = db_fetch_object($result)) {
        if ($isbn_node) {
          $isbn = array(
            'isbn' => $isbn_node->isbn,
            'isbn10' => $isbn_node->isbn10,
          );
          drupal_alter('isbn', $isbn);
          $node->isbn[] = $isbn;
        }
      }

      //return $node;
      break;
    case 'delete':
      db_query("DELETE FROM {isbn_node} WHERE nid = %d", $node->nid);
      break;
  }
}