/** * Performs search and replace settings defined in TypoScript. * * Example: * * <code> * plugin.Tx_Formhandler.settings.files.search = ä,ö,ü * plugin.Tx_Formhandler.settings.files.replace = ae,oe,ue * </code> * * @param string The file name * @return string The replaced file name * **/ public function doFileNameReplace($fileName) { $settings = $this->globals->getSettings(); //Default: Replace spaces with underscores $search = array(' ', '%20'); $replace = array('_'); $separator = ','; $usePregReplace = $this->getSingle($settings['files.'], 'usePregReplace'); if (intval($usePregReplace) === 1) { $search = array('/ /', '/%20/'); } //The settings "search" and "replace" are comma separated lists if ($settings['files.']['search']) { $search = $this->getSingle($settings['files.'], 'search'); if ($settings['files.']['search.']['separator']) { $separator = $this->getSingle($settings['files.']['search.'], 'separator'); } $search = explode($separator, $search); } if ($settings['files.']['replace']) { $replace = $this->getSingle($settings['files.'], 'replace'); if ($settings['files.']['replace.']['separator']) { $separator = $this->getSingle($settings['files.']['replace.'], 'separator'); } $replace = explode($separator, $replace); } $usePregReplace = $this->getSingle($settings['files.'], 'usePregReplace'); if (intval($usePregReplace) === 1) { $fileName = preg_replace($search, $replace, $fileName); } else { $fileName = str_replace($search, $replace, $fileName); } return $fileName; }