데이터베이스에서 사용자에게 이메일을 보내는 "관리자 / 관리자"가 많은 시스템에서 작업하고 있습니다. 주요 기능 중 하나는 여러 사람에게 동시에 특정 정보를 이메일로 보낼 수 있다는 것입니다. 또 다른 주요 기능은 매번 이메일을 약간 수정해야하는 경향이 있기 때문에 이메일을 직접 만들 수 있다는 것입니다. 그러나 기본 템플릿을 사용하면 시간이 많이 절약됩니다.
이를 위해 다음과 같은 템플릿이있는 일반적인 "템플릿"솔루션이 있습니다.
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를 반환하여 해당 변수의 편집을 효과적으로 방지합니다.
완벽하지는 않지만 매우 싸고 효과적입니다.