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