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;
}
}