diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-23 05:34:25 -0700 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-23 05:34:25 -0700 |
commit | bbeb657c03f5e036aaa31c4c843bdf3865974dfa (patch) | |
tree | c754970112210570e19561c26f2ec1541650ecf1 /lib | |
parent | 3d2acb53897d18d9f4c05f956f2e9511d126ad33 (diff) | |
parent | a0ec2d23ef48b8e78cb0dd0e96ac63ae73045729 (diff) | |
download | nextcloud-server-bbeb657c03f5e036aaa31c4c843bdf3865974dfa.tar.gz nextcloud-server-bbeb657c03f5e036aaa31c4c843bdf3865974dfa.zip |
Merge pull request #2454 from owncloud/fixing-file-mapper-ext-master
Fixing file mapper ext master
Diffstat (limited to 'lib')
-rw-r--r-- | lib/files/mapper.php | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/lib/files/mapper.php b/lib/files/mapper.php index 179e28e5e76..15f5f0628b5 100644 --- a/lib/files/mapper.php +++ b/lib/files/mapper.php @@ -167,31 +167,40 @@ class Mapper $query->execute(array($logicPath, $physicalPath, md5($logicPath), md5($physicalPath))); } - private function slugifyPath($path, $index=null) { + public function slugifyPath($path, $index=null) { $path = $this->stripRootFolder($path, $this->unchangedPhysicalRoot); $pathElements = explode('/', $path); $sluggedElements = array(); + // rip off the extension ext from last element + $last= end($pathElements); + $parts = pathinfo($last); + $filename = $parts['filename']; + array_pop($pathElements); + array_push($pathElements, $filename); + foreach ($pathElements as $pathElement) { // remove empty elements if (empty($pathElement)) { continue; } - // TODO: remove file ext before slugify on last element $sluggedElements[] = self::slugify($pathElement); } - // - // TODO: add the index before the file extension - // + // apply index to file name if ($index !== null) { - $last= end($sluggedElements); - array_pop($sluggedElements); + $last= array_pop($sluggedElements); array_push($sluggedElements, $last.'-'.$index); } + // add back the extension + if (isset($parts['extension'])) { + $last= array_pop($sluggedElements); + array_push($sluggedElements, $last.'.'.$parts['extension']); + } + $sluggedPath = $this->unchangedPhysicalRoot.implode('/', $sluggedElements); return $this->stripLast($sluggedPath); } |