Merge pull request #439 from owncloud/239_webdav_999_files_stable45
backport of #271 to stable45
This commit is contained in:
commit
326496ff80
|
@ -128,22 +128,25 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa
|
|||
}
|
||||
$properties = array_fill_keys($paths, array());
|
||||
if(count($paths)>0) {
|
||||
$placeholders = join(',', array_fill(0, count($paths), '?'));
|
||||
$query = OC_DB::prepare( 'SELECT * FROM `*PREFIX*properties` WHERE `userid` = ?' . ' AND `propertypath` IN ('.$placeholders.')' );
|
||||
array_unshift($paths, $user); // prepend userid
|
||||
$result = $query->execute( $paths );
|
||||
while($row = $result->fetchRow()) {
|
||||
$propertypath = $row['propertypath'];
|
||||
$propertyname = $row['propertyname'];
|
||||
$propertyvalue = $row['propertyvalue'];
|
||||
$properties[$propertypath][$propertyname] = $propertyvalue;
|
||||
$chunks = array_chunk($paths, 200, false);
|
||||
foreach ($chunks as $pack) {
|
||||
$placeholders = join(',', array_fill(0, count($pack), '?'));
|
||||
$query = OC_DB::prepare( 'SELECT * FROM `*PREFIX*properties` WHERE `userid` = ?' . ' AND `propertypath` IN ('.$placeholders.')' );
|
||||
array_unshift($pack, $user); // prepend userid
|
||||
$result = $query->execute( $pack );
|
||||
while($row = $result->fetchRow()) {
|
||||
$propertypath = $row['propertypath'];
|
||||
$propertyname = $row['propertyname'];
|
||||
$propertyvalue = $row['propertyvalue'];
|
||||
$properties[$propertypath][$propertyname] = $propertyvalue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$nodes = array();
|
||||
foreach($folder_content as $info) {
|
||||
$node = $this->getChild($info['name'], $info);
|
||||
$node->setPropertyCache($properties[$path.'/'.$info['name']]);
|
||||
$node->setPropertyCache($properties[$this->path.'/'.$info['name']]);
|
||||
$nodes[] = $node;
|
||||
}
|
||||
return $nodes;
|
||||
|
@ -204,7 +207,7 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa
|
|||
public function getProperties($properties) {
|
||||
$props = parent::getProperties($properties);
|
||||
if (in_array(self::GETETAG_PROPERTYNAME, $properties) && !isset($props[self::GETETAG_PROPERTYNAME])) {
|
||||
$props[self::GETETAG_PROPERTYNAME]
|
||||
$props[self::GETETAG_PROPERTYNAME]
|
||||
= OC_Connector_Sabre_Node::getETagPropertyForPath($this->path);
|
||||
}
|
||||
return $props;
|
||||
|
|
Loading…
Reference in New Issue