summaryrefslogtreecommitdiffstats
path: root/lib/files
diff options
context:
space:
mode:
authorThomas Mueller <thomas.mueller@tmit.eu>2013-03-19 16:53:37 +0100
committerThomas Mueller <thomas.mueller@tmit.eu>2013-03-19 16:53:37 +0100
commit0fff3c9698b036a4295935569db7220068f9883f (patch)
tree43e7b217050db93372a4028b0d67f68d134d007a /lib/files
parenta0ae2ab11a4dbbd1df19b51237029b1fcb942a56 (diff)
downloadnextcloud-server-0fff3c9698b036a4295935569db7220068f9883f.tar.gz
nextcloud-server-0fff3c9698b036a4295935569db7220068f9883f.zip
adding extension to slugified physical path
Diffstat (limited to 'lib/files')
-rw-r--r--lib/files/mapper.php23
1 files changed, 16 insertions, 7 deletions
diff --git a/lib/files/mapper.php b/lib/files/mapper.php
index 179e28e5e76..2b6890472e3 100644
--- a/lib/files/mapper.php
+++ b/lib/files/mapper.php
@@ -167,29 +167,38 @@ 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);
- array_push($sluggedElements, $last.'-'.$index);
+ array_push($sluggedElements, $filename.'-'.$index);
+ }
+
+ // add back the extension
+ if (isset($parts['extension'])) {
+ $last= array_pop($sluggedElements);
+ array_push($sluggedElements, $last.'.'.$parts['extension']);
}
$sluggedPath = $this->unchangedPhysicalRoot.implode('/', $sluggedElements);