Module duplicates references on every save (fix provided)

vpiotr - June 1, 2008 - 23:01
Project:Multireference CCK field
Version:5.x-1.1
Component:Code
Category:bug report
Priority:normal
Assigned:steve.m
Status:needs review
Description

On every save references are duplicated if you use node revisions.
Code below is a better one for this case:

function _multireference_load_values($nid = 0, $fieldname = '', $vid = NULL) {
  $values = array();
  if ($nid && $fieldname) {
    if (is_null($vid)) {
      $node = node_load($nid);
      $vid = $node->vid;
    }
    $sql    = "SELECT r_id, r_text, description, description2, weight FROM {node_field_multireference_data} WHERE nid=%d AND field_name='%s' AND vid=%d ORDER BY weight";
    $result = db_query($sql, $nid, $fieldname, $vid);
    $values = array();
    while ($data = db_fetch_object($result)) {
      $values[] = array(
        'r_id'   => $data->r_id,
        'r_text' => $data->r_text,
        'desc'   => $data->description,
        'desc2'  => $data->description2,
      );
    }
  }
  return $values;
}

Also in function multireference_field() find:

      $values = _multireference_load_values($node->nid, $field['field_name']);

and change to:
      $values = _multireference_load_values($node->nid, $field['field_name'], $node->vid);

#1

steve.m - August 23, 2008 - 21:37
Assigned to:Anonymous» steve.m
Status:active» needs review

Fixed in the -dev version. Please test!

 
 

Drupal is a registered trademark of Dries Buytaert.