Umbracoの辞書項目のプレースホルダの置換
ウンブロdictionary feature それはあなたがボタンを持っているテキストを制御するエディタを可能にするので、本当にクールですあなたのウェブサイト上のフォームのラベルや他の場所で、単純な文章を変更するために開発者を含む必要性を削除する.
今日、私たちは、辞書項目で定義されたいくつかのテキストをもう少しダイナミックにする必要があるシナリオに入りました.辞書項目を完全にテキストテンプレートに置き換える代わりに、辞書項目の値を置換することを決めました.これは、エディタがまだ表示されるテキストの大部分をコントロールするのを許します.
簡単な修正は、あなたが持っているどんなテンプレートにおいても、特定の辞書項目によって返された文字列に何らかの種類の置換を行うことです.しかし、それは非常にスケーラブルではありません.したがって、私はさらにumbracohelperの
今、キーを持つ辞書項目を与えられた
今日、私たちは、辞書項目で定義されたいくつかのテキストをもう少しダイナミックにする必要があるシナリオに入りました.辞書項目を完全にテキストテンプレートに置き換える代わりに、辞書項目の値を置換することを決めました.これは、エディタがまだ表示されるテキストの大部分をコントロールするのを許します.
簡単な修正は、あなたが持っているどんなテンプレートにおいても、特定の辞書項目によって返された文字列に何らかの種類の置換を行うことです.しかし、それは非常にスケーラブルではありません.したがって、私はさらにumbracohelperの
GetDictionaryValue
二つの拡張メソッドを持つメソッドpublic static string GetDictionaryValueWithReplacement(this UmbracoHelper umbraco, string key, string pattern, string replacement)
{
return GetDictionaryValueWithReplacement(umbraco, key, string.Empty, pattern, replacement);
}
public static string GetDictionaryValueWithReplacement(this UmbracoHelper umbraco, string key, string altText, string pattern, string replacement)
{
return Regex.Replace(umbraco.GetDictionaryValue(key, altText), pattern, replacement);
}
これは簡単にウェブサイト上の任意の機能を再利用する可能性を与えます.今、キーを持つ辞書項目を与えられた
Some.Dictionary.Item
テキストThis message is super personal for you, %name%. Hope you like it.
, 上記の拡張メソッドは、例えば次のようにテンプレートを使用できます.@Umbraco.GetDictionaryValueWithReplacement("Some.Dictionary.Item", "%name%", Members.GetCurrentMember().Name)
どちらが表示されます(少なくともブラウザで)This message is super personal for you, Morten Hartvig. Hope you like it.
一つはもちろん1つ以上のプレースホルダで動作するように追加の方法を作ることができます.次のようになります.public static string GetDictionaryValueWithReplacement(this UmbracoHelper umbraco, string key, IDictionary<string, string> replacements)
{
var value = umbraco.GetDictionaryValue(key);
foreach (var replacement in replacements)
{
value = Regex.Replace(value, replacement.Key, replacement.Value);
}
return value;
}
... しかし、それは我々が必要とするものの範囲を越えています.Reference
この問題について(Umbracoの辞書項目のプレースホルダの置換), 我々は、より多くの情報をここで見つけました https://dev.to/hartviglarsen/replacing-placeholders-in-umbraco-s-dictionary-items-34goテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol