Sitecoreで多言語ソリューションに取り組んでおり、アイテムのDisplayNameプロパティを使用してURLを表し、言語固有のURLを許可したいと考えています。
useDisplayName
以下に示すように、web.configプロパティをtrueに設定しました
<linkManager defaultProvider="sitecore">
<providers>
<clear />
<add name="sitecore"
alwaysIncludeServerUrl="false"
encodeNames="true"
type="Sitecore.Links.LinkProvider, Sitecore.Kernel"
addAspxExtension="false"
shortenUrls="true"
languageEmbedding="asNeeded"
languageLocation="filePath"
useDisplayName="true" />
</providers>
</linkManager>
私はまた、URLのハイフンで<encodeNameReplacements>
置き換え%20
てきれいなURLを提供できるセクションで遊んでいます-これは興味のある人のために次のように行われます:
<replace mode="on" find=" " replaceWith="-" />
上記の設定をオンにした状態でユーザーがDisplayName内にハイフンを入力すると、Sitecoreが壊れることを除いて、すべて非常に良好です。上記の設定をオフにした場合、ユーザーがDisplayNameにハイフンで区切られた適切な値を入力するようにする必要があります。そうしない%20
と、URLに再び厄介なものが表示され始めます...
では、DisplayNameプロパティを検証して、ハイフンの使用を禁止または許可する方法はありますか?
または、さらに良いことに、encodeNameReplacementsが発生したときに実行されるコードにフックする方法はありますか?これは、ユーザーがDisplayNameに好きなものを入力して、その場でこの値をサニタイズできるようにするために理想的です。