URLSegmentFilter
有一个静态数组$default_replacements
持有,除其他外,字符串&符号转换(从&到- 和 -)的网址。SilverStripe覆盖URLSegmentFilter静态
我想扩展类并覆盖此静态到翻译的符号转换(仅适用于为英文和)。
我该如何为这个目标覆盖所有者静态?
class URLSegmentFilterExtension extends Extension {
private static $default_replacements = array(
'/&/u' => '-and-', // I need to translate this using _t()
'/&/u' => '-and-', // And this one
'/\s|\+/u' => '-',
'/[_.]+/u' => '-',
'/[^A-Za-z0-9\-]+/u' => '',
'/[\/\?=#]+/u' => '-',
'/[\-]{2,}/u' => '-',
'/^[\-]+/u' => '',
'/[\-]+$/u' => ''
);
}
感谢您的输入bummzack动态更新配置。虽然我不使用任何翻译模块。我想在CMS语言环境中进行翻译,每个用户可能会有所不同。 – Faloude
@Faloude这似乎不合逻辑?因此,如果一个Admin具有'en'作为区域设置,他将在URL中保存带有“-and-'的页面,而另一个使用'de'登录的管理员将生成包含'-und-'的URL?对于前端用户,这将导致混合类型的URL,具体取决于谁保存了页面?这不可能是你想要的...... – bummzack
在任何情况下,将我提议的解决方案改为在没有翻译模块的情况下工作应该非常简单。只需删除不需要的代码行,即可设置。 – bummzack