2016-04-29 36 views
0

当前上传带有'_'(下划线)的文件将自动替换为' - '(连字符)。我需要他们留下来。 与此相同的问题:https://github.com/silverstripe/silverstripe-cms/issues/719SilverStripe 3.1+更改FileNameFilter默认替换

我发现这个通过了FilenameFilter发生http://api.silverstripe.org/master/class-FileNameFilter.html#_setReplacements

我试图按照指示加入该到YAML配置停止这样的:

FileNameFilter: 
    default_use_transliterator: false 
    default_replacements: 

这不起作用,我需要说明新的默认值?

而且也改变这一行:

'/_/' => '-', // underscores to dashes 

这个

'/_/' => '_', // underscores to dashes 

但这只是删除它们,并关闭差距..

有人能在正确的方式来实现建议这个?

回答

0

我意识到你也可以在你的_config.php文件中做到这一点!这一直奏效。我会留下这个问题,这对像我这样的人很有用。

_config.php

FileNameFilter::$default_use_transliterator = false; 
FileNameFilter::$default_replacements = array(); 
+0

你确定它的工作?你在php.ini中设置了'error_reporting'吗? '$ default_use_transliterator'是一个私有静态的,这意味着你不能在定义它的类之外修改它(在这种情况下是'FileNameFilter')如果你这样做,你应该得到一个PHP致命错误。 我的猜测是,当你改变YML时,你忘记清除你需要做的缓存清单(flush = all),每次你将YML配置更改为SIlverStripe的私有静态。 – theruss