Changeset 12455
- Timestamp:
- 02/14/08 22:06:20 (11 months ago)
- Files:
-
- 1 modified
-
util/branches/dev/jsdoc/jsdoc.module (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
util/branches/dev/jsdoc/jsdoc.module
r12447 r12455 438 438 foreach (jsdoc_projects() as $project) { 439 439 $version = jsdoc_version_node_load('HEAD', $project); 440 $query = db_query("SELECT vid FROM {jsdoc_resources} WHERE used = 0"); 440 $query = db_query("SELECT vid FROM {jsdoc_resources} WHERE used = 0 AND version = %d", $version->nid); 441 $bad_vids = array(); 441 442 while ($result = db_fetch_object($query)) { 442 $object_query = db_query("SELECT MAX(vid) AS vid FROM {jsdoc_objects} WHERE resource_vid = %d OR provide_vid = %d GROUP BY nid"); 443 if ($vid = db_result($object_query)) { 444 db_query("UPDATE {jsdoc_objects} SET used = 0 WHERE vid = %d", $vid); 443 $bad_vids[] = $result->vid; 444 } 445 db_query("UPDATE {jsdoc_resources} SET used = 0 WHERE used = 1 AND version = %d", $version->nid); 446 foreach ($bad_vids as $bad_vid){ 447 $object_query = db_query("SELECT MAX(vid) AS vid FROM {jsdoc_objects} WHERE (resource_vid = %d OR provide_vid = %d) AND version = %d GROUP BY nid", $bad_vid, $bad_vid, $version->nid); 448 if (!db_num_rows($object_query)) { 449 db_query("UPDATE {jsdoc_resources} SET used = 1 WHERE vid = %d", $bad_vid); 450 }else{ 451 while ($object_result = db_fetch_object($object_query)) { 452 db_query("UPDATE {jsdoc_objects} SET used = 0 WHERE vid = %d", $object_result->vid); 453 } 445 454 } 446 455 } 447 db_query("UPDATE {jsdoc_resources} SET used = 0 WHERE used = 1 AND version = %d", $version->nid);448 456 } 449 457 $files = call_user_func(_jsdoc_base() . '_get_files'); … … 518 526 $resource_node = _jsdoc_resource_get_or_create($contents['#resource'], $namespace); 519 527 520 db_query("UPDATE {jsdoc_resources} SET used = 1 WHERE vid = %d", $provides_node->vid); 521 db_query("UPDATE {jsdoc_resources} SET used = 1 WHERE vid = %d", $resource_node->vid); 528 db_query("UPDATE {jsdoc_resources} SET used = 1 WHERE vid IN (%d, %d)", $provides_node->vid, $resource_node->vid); 522 529 523 530 if ($cache_hit) {