Umbraco 사전 항목의 자리 표시자 교체
5708 단어 umbraco
오늘 우리는 사전 항목에 정의된 일부 텍스트를 좀 더 동적으로 만들어야 하는 시나리오에 부딪쳤습니다. 사전 항목을 템플릿에서 직접 텍스트로 완전히 바꾸는 대신 사전 항목의 값을 대체하는 방법을 살펴보기로 했습니다. 이렇게 하면 편집자가 표시되는 대부분의 텍스트를 계속 제어할 수 있습니다.
쉬운 수정은 가지고 있는 템플릿의 특정 사전 항목에서 반환된 문자열에 대해 일종의 대체를 수행하는 것입니다. 그러나 이는 확장성이 매우 좋지 않습니다. 따라서 두 가지 확장 방법을 사용하여 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.
물론 둘 이상의 자리 표시자와 함께 작업하기 위해 추가 메서드를 만들 수 있습니다. 알다시피 다음과 같습니다.
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.)