Index: rdfproxy.module =================================================================== --- rdfproxy.module (revision 2759) +++ rdfproxy.module (working copy) @@ -401,6 +401,26 @@ switch ($op) { case 'load': // TODO + // prevent recurission, don't want to do this on node view cause will be missing information. + static $rdfproxy_updating; + + if ($rdfproxy_updating[$node->nid]) return; + $local_instances = db_query("SELECT * FROM {rdfproxy_instances} WHERE type = 'node' AND id = %d", $node->nid); + $row = db_fetch_object($local_instances); + if ($row) { + if ($row->expires <= time()) { + $rdfproxy_updating[$node->nid] = 1; + $new_node = rdfproxy_lookup(rdfproxy_profile_load($row->profile),$row->uri); + if ($new_node->nid == $node->nid) { + $node = $new_node; + //update expires info + $local_instances = db_query("SELECT * FROM {rdfproxy_instances} WHERE type = 'node' AND id = %d", $node->nid); + $row = db_fetch_object($local_instances); + } + unset($rdfproxy_updating[$node->nid]); + } + $node->rdfproxy = $row; + } break; case 'delete': db_query("DELETE FROM {rdfproxy_instances} WHERE id = %d", $node->nid);