diff options
author | infoneo <infoneo@yahoo.pl> | 2013-06-08 18:39:25 +0300 |
---|---|---|
committer | infoneo <infoneo@yahoo.pl> | 2013-06-08 18:39:25 +0300 |
commit | b39113ae3ea59db7058fe829fc0a5e4dfd49bac6 (patch) | |
tree | f0c35932b9933ce1624ecdce333dcce16832ca47 | |
parent | be4eef682ae515fd542ec351eef05cc54fe3247c (diff) | |
download | nextcloud-server-b39113ae3ea59db7058fe829fc0a5e4dfd49bac6.tar.gz nextcloud-server-b39113ae3ea59db7058fe829fc0a5e4dfd49bac6.zip |
Update mapper.php
Now slugify is performed on whole filename (including extension). Changed method of adding index number (using regular expressions pathinfo() method removed).
-rw-r--r-- | lib/files/mapper.php | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/lib/files/mapper.php b/lib/files/mapper.php index d9e116bf25b..748b65dc4f1 100644 --- a/lib/files/mapper.php +++ b/lib/files/mapper.php @@ -174,26 +174,7 @@ class Mapper $sluggedElements = array(); $last= end($pathElements); - $parts = pathinfo($last); - $filename = $parts['filename']; - $extension = $parts['extension']; - - - if ((preg_match('~[-\w]+~', $filename)) && (preg_match('~[-\w]+~', $extension))){ - - // rip off the extension ext from last element - array_pop($pathElements); - array_push($pathElements, $filename); - - } else { - - if (isset($parts['extension'])) { - unset($parts['extension']); - } - - } - foreach ($pathElements as $pathElement) { // remove empty elements if (empty($pathElement)) { @@ -206,13 +187,15 @@ class Mapper // apply index to file name if ($index !== null) { $last= array_pop($sluggedElements); - array_push($sluggedElements, $last.'-'.$index); - } + + // if filename contains periods - add index number before last period + if (preg_match('~\.[^\.]+$~i',$last,$extension)){ + array_push($sluggedElements, substr($last,0,-(strlen($extension[0]))).'-'.$index.$extension[0]); + } else { + // if filename doesn't contain periods add index ofter the last char + 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); |