1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-09 00:06:55 +02:00

Additional updates for processwire/processwire-issues#1467 via @matjazpotocnik

This commit is contained in:
Ryan Cramer
2022-01-03 15:03:33 -05:00
parent 5192b3a922
commit 912c9bb30e
16 changed files with 100 additions and 74 deletions

View File

@@ -574,18 +574,20 @@ class Pagefiles extends WireArray implements PageFieldValueInterface {
*/
public function cleanBasename($basename, $originalize = false, $allowDots = true, $translate = false) {
$sanitizer = $this->wire()->sanitizer;
$basename = function_exists('mb_strtolower') ? mb_strtolower($basename) : strtolower($basename);
$dot = strrpos($basename, '.');
$ext = $dot ? substr($basename, $dot) : '';
$ext = $dot ? substr($basename, $dot) : '';
$basename = basename($basename, $ext);
while(strpos($basename, '..') !== false) $basename = str_replace('..', '', $basename);
$test = str_replace(array('-', '_', '.'), '', $basename);
if(!ctype_alnum($test)) {
if($translate) {
$basename = $this->wire('sanitizer')->filename($basename, Sanitizer::translate);
$basename = $sanitizer->filename($basename, Sanitizer::translate);
} else {
$basename = preg_replace('/[^-_.a-z0-9]/', '_', $basename);
$basename = $this->wire('sanitizer')->filename($basename);
$basename = $sanitizer->filename($basename);
}
}