- Added some minor debug help to fscachetags/v4.0.0beta
@@ -92,6 +92,19 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr | |||
} | |||
/** | |||
* sets the last modification time of the file (mtime) to the value given | |||
* in the second parameter or to now if the second param is empty. | |||
* Even if the modification time is set to a custom value the access time is set to now. | |||
*/ | |||
public function setLastModifiedTime($mtime) { | |||
OC_Filesystem::setFileMtime($this->path, $mtime); | |||
} | |||
public function endsWith( $str, $sub ) { | |||
return ( substr( $str, strlen( $str ) - strlen( $sub ) ) === $sub ); | |||
} | |||
/** | |||
* Updates properties on this node, | |||
* | |||
@@ -110,13 +123,16 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr | |||
} | |||
} | |||
else { | |||
if(!array_key_exists( $propertyName, $existing )){ | |||
$query = OC_DB::prepare( 'INSERT INTO *PREFIX*properties (userid,propertypath,propertyname,propertyvalue) VALUES(?,?,?,?)' ); | |||
$query->execute( array( OC_User::getUser(), $this->path, $propertyName,$propertyValue )); | |||
} | |||
else{ | |||
$query = OC_DB::prepare( 'UPDATE *PREFIX*properties SET propertyvalue = ? WHERE userid = ? AND propertypath = ? AND propertyname = ?' ); | |||
$query->execute( array( $propertyValue,OC_User::getUser(), $this->path, $propertyName )); | |||
if( $this->endsWith( $propertyName, "modificationTime")) { | |||
$this->setLastModifiedTime($propertyValue); | |||
} else { | |||
if(!array_key_exists( $propertyName, $existing )){ | |||
$query = OC_DB::prepare( 'INSERT INTO *PREFIX*properties (userid,propertypath,propertyname,propertyvalue) VALUES(?,?,?,?)' ); | |||
$query->execute( array( OC_User::getUser(), $this->path, $propertyName,$propertyValue )); | |||
} else { | |||
$query = OC_DB::prepare( 'UPDATE *PREFIX*properties SET propertyvalue = ? WHERE userid = ? AND propertypath = ? AND propertyname = ?' ); | |||
$query->execute( array( $propertyValue,OC_User::getUser(), $this->path, $propertyName )); | |||
} | |||
} | |||
} | |||
@@ -62,7 +62,7 @@ class OC_FileCache{ | |||
if(is_array($result)){ | |||
return $result; | |||
}else{ | |||
OC_Log::write('file not found in cache ('.$path.')','core',OC_Log::DEBUG); | |||
OC_Log::write('get(): file not found in cache ('.$path.')','core',OC_Log::DEBUG); | |||
return false; | |||
} | |||
} | |||
@@ -125,7 +125,9 @@ class OC_FileCache{ | |||
$queryParts[]='mimepart=?'; | |||
} | |||
$arguments[]=$id; | |||
$query=OC_DB::prepare('UPDATE *PREFIX*fscache SET '.implode(' , ',$queryParts).' WHERE id=?'); | |||
$sql = 'UPDATE *PREFIX*fscache SET '.implode(' , ',$queryParts).' WHERE id=?'; | |||
$query=OC_DB::prepare($sql); | |||
$query->execute($arguments); | |||
} | |||
@@ -231,7 +233,7 @@ class OC_FileCache{ | |||
if(is_array($result)){ | |||
return $result; | |||
}else{ | |||
OC_Log::write('file not found in cache ('.$path.')','core',OC_Log::DEBUG); | |||
OC_Log::write('getFolderContent(): file not found in cache ('.$path.')','core',OC_Log::DEBUG); | |||
return false; | |||
} | |||
} | |||
@@ -264,7 +266,7 @@ class OC_FileCache{ | |||
if(is_array($result)){ | |||
return $result['id']; | |||
}else{ | |||
OC_Log::write('file not found in cache ('.$path.')','core',OC_Log::DEBUG); | |||
OC_Log::write('getFieldId(): file not found in cache ('.$path.')','core',OC_Log::DEBUG); | |||
return -1; | |||
} | |||
} | |||
@@ -293,6 +295,7 @@ class OC_FileCache{ | |||
}else{ | |||
$view=new OC_FilesystemView(($root=='/')?'':$root); | |||
} | |||
$path=$params['path']; | |||
$fullPath=$view->getRoot().$path; | |||
$mimetype=$view->getMimeType($path); |
@@ -65,6 +65,13 @@ class OC_Filestorage_Local extends OC_Filestorage{ | |||
public function filemtime($path){ | |||
return filemtime($this->datadir.$path); | |||
} | |||
public function setFileMtime($path, $mtime){ | |||
// sets the modification time of the file to the given value. If mtime is nil the current time is set. | |||
// note that the access time of the file always changes to the current time. | |||
return touch($this->datadir.$path, $mtime); | |||
} | |||
public function file_get_contents($path){ | |||
return file_get_contents($this->datadir.$path); | |||
} |
@@ -345,6 +345,9 @@ class OC_Filesystem{ | |||
static public function filemtime($path){ | |||
return self::$defaultInstance->filemtime($path); | |||
} | |||
static public function setFileMtime($path, $mtime){ | |||
return self::$defaultInstance->setFileMtime($path, $mtime); | |||
} | |||
static public function file_get_contents($path){ | |||
return self::$defaultInstance->file_get_contents($path); | |||
} |
@@ -156,6 +156,9 @@ class OC_FilesystemView { | |||
public function filemtime($path){ | |||
return $this->basicOperation('filemtime',$path); | |||
} | |||
public function setFileMtime($path, $mtime){ | |||
return $this->basicOperation('setFileMtime',$path, array('write'), $mtime); | |||
} | |||
public function file_get_contents($path){ | |||
return $this->basicOperation('file_get_contents',$path,array('read')); | |||
} |