【问题标题】:SilverStripe 3.1+ change FileNameFilter default replacementsSilverStripe 3.1+ 更改 FileNameFilter 默认替换
【发布时间】:2016-04-29 17:37:38
【问题描述】:

当前上传的带有“_”(下划线)的文件会自动替换为“-”(连字符)。我需要他们保持 _ 。 同本期:https://github.com/silverstripe/silverstripe-cms/issues/719

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

我已尝试按照说明通过将其添加到 YAML 配置来阻止此操作:

FileNameFilter:
  default_use_transliterator: false
  default_replacements:

这没有效果我需要说明新的默认值吗?

并且还要改变这一行:

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

到这里

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

但这只是消除了它们并缩小了差距..

有人可以就实现这一目标的正确方法提出建议吗?

【问题讨论】:

    标签: filter filenames silverstripe


    【解决方案1】:

    我意识到您也可以在 _config.php 文件中执行此操作!这已经奏效了。我会留下这个问题,以防这对像我这样的人有用。

    _config.php

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

    【讨论】:

    • 你确定它有效吗?你在 php.ini 中设置了error_reporting 吗? $default_use_transliterator 是一个私有静态,这意味着你不能在定义它的类之外修改它(在这种情况下是FileNameFilter),如果你这样做,你应该得到一个 PHP 致命错误。我的猜测是,当您进行 YML 更改时,您忘记清除缓存清单 (flush=all),每次您对 SIlverStripe 的私有静态数据进行 YML 配置更改时都需要这样做。
    猜你喜欢
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-31
    • 1970-01-01
    • 2013-01-27
    • 2017-09-30
    相关资源
    最近更新 更多