update file paths in filecache when the parent is renamed

This commit is contained in:
Robin Appelman 2012-06-04 17:59:21 +02:00
parent f291a843bf
commit 59086fe082
1 changed files with 9 additions and 0 deletions

View File

@ -169,6 +169,15 @@ class OC_FileCache{
$newParent=self::getParentId($newPath); $newParent=self::getParentId($newPath);
$query=OC_DB::prepare('UPDATE *PREFIX*fscache SET parent=? ,name=?, path=?, path_hash=? WHERE path_hash=?'); $query=OC_DB::prepare('UPDATE *PREFIX*fscache SET parent=? ,name=?, path=?, path_hash=? WHERE path_hash=?');
$query->execute(array($newParent,basename($newPath),$newPath,md5($newPath),md5($oldPath))); $query->execute(array($newParent,basename($newPath),$newPath,md5($newPath),md5($oldPath)));
$query=OC_DB::prepare('SELECT path FROM *PREFIX*fscache WHERE path LIKE ?');
$oldLength=strlen($oldPath);
$updateQuery=OC_DB::prepare('UPDATE *PREFIX*fscache SET path=?, path_hash=? WHERE path_hash=?');
while($row= $query->execute(array($oldPath.'/%'))->fetchRow()){
$old=$row['path'];
$new=$newPath.substr($old,$oldLength);
$updateQuery->execute(array($new,md5($new),md5($old)));
}
} }
/** /**