Update mapper.php

Now slugify is performed on whole filename (including extension). Changed method of adding index number (using regular expressions pathinfo() method removed).
This commit is contained in:
infoneo 2013-06-08 18:39:25 +03:00
parent be4eef682a
commit b39113ae3e
1 changed files with 8 additions and 25 deletions

View File

@ -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);