대체 변수를 사용하여 이메일 템플릿을 편집하는 데 사용하기 쉬운 솔루션은 무엇입니까?


9

데이터베이스에서 사용자에게 이메일을 보내는 "관리자 / 관리자"가 많은 시스템에서 작업하고 있습니다. 주요 기능 중 하나는 여러 사람에게 동시에 특정 정보를 이메일로 보낼 수 있다는 것입니다. 또 다른 주요 기능은 매번 이메일을 약간 수정해야하는 경향이 있기 때문에 이메일을 직접 만들 수 있다는 것입니다. 그러나 기본 템플릿을 사용하면 시간이 많이 절약됩니다.

이를 위해 다음과 같은 템플릿이있는 일반적인 "템플릿"솔루션이 있습니다.

Hello {{recipient.full_name}},

Your application to {{activity.title}} has been accepted. 
You have requested to participate on dates {{application.dates}}, in role {{application.role}}
Blah blah blah

우리가 겪고있는 문제는 (예상 한대로) 관리자가 전체 "변수"아이디어를 얻지 못하고 덮어 쓰는 것과 같은 작업을 수행하여 한 번에 한 사람 이상에게 이메일을 보내지 못한다는 것입니다. 그것들은 교체되지 않으며 시스템이 고장 났거나 심지어 "Hello {{John}}"과 같은 설명 할 수없는 것들입니다.

가장 큰 문제는 평소와 같이 소수의 고급 사용자 만 자동으로 전송되는 템플릿을 편집 할 수있는 권한이있는 "관리자"섹션으로 강등되지 않으며 그들이하는 일을 알고 있어야한다는 것입니다. 시스템의 모든 사용자가이 문제에 노출됩니다.

확실한 해결책은 사용자가 편집 할 수 있도록 이 템플릿을 표시 하기 전에 변수를 바꾸는 것이지만 여러 사람에게 전자 메일을 보낼 때는 작동하지 않습니다.

이것은 합리적으로 일반적인 문제처럼 보이며 누군가 이미 문제를 해결하기를 바라고 있습니다.

이 문제에 대한 좋은 해결책을 어디에서나 만들거나 생각할 수 있습니까?

최신 정보

Daniel B의 대답 을 바탕으로 내가 한 것은 커서 위치와 코드에서 {{}}의 위치를 ​​기반으로 사용자가 현재 "변수 내부"인지 "외부"인지 감지하는 것입니다. 내부에서 나는 큰 텍스트 영역 아래에 작은 텍스트 조각을 보여줍니다.이 텍스트는 대체 될 것이며, 원하는 경우 완전히 제거 할 수는 있지만 편집 할 수는 없다는 것을 설명합니다.

onClick, onChange, onKeyDown, onKeyUp을 수행합니다. "key"이벤트의 경우 변수 내에 있으면 keyCode가 몇 가지 "탐색"키 중 하나 인 경우에만 TRUE를 반환합니다. 그렇지 않으면 FALSE를 반환하여 해당 변수의 편집을 효과적으로 방지합니다.

완벽하지는 않지만 매우 싸고 효과적입니다.


저보다 담당자가 많은 사람에게 의견 : (UX를 처음 사용합니다)이 질문에 태그를 추가해 주시겠습니까? 내가 생각하는 모든 태그는 아직 존재하지 않습니다 : 템플릿 변수 사용자 인터페이스 사용자 친화적 사용자 편집 가능

이러한 템플릿은 어떻게 제공됩니까? 편집기에서 일반 텍스트입니까?
ChrisF

많은 사람들을 선택하고 "메시지"를 클릭하면 템플릿 컨텐츠가있는 큰 텍스트 영역이있는 "팝인"대화 상자가 나타납니다. 실제로는 사용자에게 익숙하지 않지만 실제로는 일반 텍스트처럼 보입니다. 우리는 wysiwyg 편집기가 없으며, 도움이된다면 그것을 사용할 수는 있지만, 그 자체로는 그렇지 않습니다. 사람들은 여전히 ​​변수를 이해하지 못할 것입니다.

여기서 근본적인 문제 는 관리자가 변수를 이해하지 못한다는 것입니다. 당신이 그 문제를 해결하지 않는 한, 당신의 던지는 해결책은 증상입니다. 모든 문제에 코딩 솔루션이 필요한 것은 아닙니다.
Darknight

동의했다. 나는 사람들을 교육시킬 수 있기를 원하지만 매뉴얼을 읽도록 요청할 수는 없으므로 사람들이 쉽게 이해할 수 있도록 만드는 방법에 대한 아이디어를 찾고 있습니다. 아이디어?
Daniel Magliola

답변:


3

ChrisF의 답변에 대한 의견의 요청에 따라 과거에 내가 사용한 솔루션이 하나 있습니다.

  • WinForms RichTextBox를 사용하면 사용자가 템플릿의 텍스트를 편집 할 수 있습니다.
  • 변수 또는 플레이스 홀더를 RichTextBox로 끌어서 놓기 (또는 기타 삽입) 할 수 있습니다.
  • 변수의 구분 기호 (예 : {{및}} 기호)를 커서의 현재 위치에서 확인하여 변수 자체를 편집 할 수 없습니다.

내 구현은 다음과 같이 보입니다.

RichTextBox 예제

표준 텍스트와 구별하기 위해 변수를 선택적으로 강조 표시합니다.
변수 구분 기호가 실제로 있으며 전경색과 배경색이 동일합니다.

분명히 이것은 HTML 기반의 구현과는 상당히 다릅니다. 아마도 Gmail 편집기가 어떻게 구현되는지 살펴볼 것입니다. 텍스트 영역과 비슷해 보이지만 인라인 이미지 (스마일 등)를 가질 수 있습니다. 이는 찾고있는 동작과 유사합니다.


4

코드에 의해 변경 될 부분을 편집 할 수 없도록 템플릿이 사용자에게 표시되는 방식을 변경하는 것을 고려하고 있습니다. 이 같은:

모형

사용자가 변경하지 않으려는 비트는 이제 편집 할 수 없습니다. 필요하지 않은 항목을 제거 할 수 있도록 닫기 단추를 포함시킬 수 있습니다. {{...}}비트의 의미와 비트를 단독으로 유지해야하는 이유 를 설명하는 설명 텍스트 및 / 또는 툴팁을 포함 할 수도 있습니다 .

WrapPanel각 단락에 Silverlight / WPF와 같은 것을 사용하면 사용자가 제어하는 ​​텍스트가 커지거나 줄어들 때 각 부분 (편집 가능 및 편집 불가능)이 흐를 수 있습니다.


이것의 주요 문제는 텍스트 상자를 "인라인"과 "멀티 라인"으로 만들 수 없다는 것입니다. 따라서 레이아웃이 매우 이상합니다 ... "Dear"를 편집 할 수 있고 변수가 움직이면 맞아요, 마술로 감싸 진 다른 텍스트 상자가 있었는데, 이것은 굉장합니다. 그러나 나는 이것을 어떻게 구현할 수 있는지 알지 못한다. 우리가 시도한 대안은 큰 텍스트 영역 안에 "편집 불가능"블록을 두어 내용을 변경할 수는 없지만 제거 할 수는 있습니다 ( "X"사용). 우리는이 일을 할 수 없었습니다. 어딘가에 보셨나요? 감사!!!

@DanielMagliola WrapPanel각 단락마다 Silverlight / WPF 와 같은 것이 당신에게 원하는 것을 줄 수 있습니다.
ChrisF

과거에는 @DanielMagliola, WinForms RichTextBox로 이것을 달성 할 수있었습니다. "변수"를 서식있는 텍스트 상자로 끌어서 놓을 수 있으며 스타일 지정이 적용되어 자리 표시 자임을 분명히 할 수 있습니다. 까다로운 부분은 변수의 변경을 막는 것입니다. 한 가지 해결책은 태그 문자의 현재 커서 위치를 확인하고 해당되는 경우 편집을 허용하지 않는 것입니다.
Daniel B

나는 이것을 언급하는 것을 잊었다. 이것은 HTML 앱이지만 여전히 그 아이디어가 적용 가능하다. "커서 위치 확인 및 편집 아이디어 금지"가 마음에 듭니다. 감사합니다 !!
Daniel Magliola 10

@DanielB : 사실, 당신은 응답을 해줄 수 있습니까, 나는 당신이 승자가 있다고 생각합니다! 감사합니다!!
다니엘 Magliola
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.