Q&A

(죄송합니다. 좀전에 올린 글은 제가 테스트를 잘못 했었네요. 삭제했습니다.)

 

정확하게는, 멘션을 엔터 키를 사용해서 연달아서 여러 개 달을 경우

 

(예:

@a

@b

@c)

 

"에디터를 사용하는 경우"는 문제가 없는데, "textarea" 모드일 경우

 

제일 첫번째 (위 예시에서는 a) 를 제외한 나머지는 알림이 오지 않습니다

 

원인을 보니까, 문장의 앞뒤가 p 태그로 둘러쌓여 있는 경우에는 문제가 없는데

 

단순히 br 태그를 사용해서 줄을 나누는 textarea의 경우

 

알림 센터에서는 이 br 태그를 인식하지 못하고 그냥 한 줄처럼 인식해 버리네요

 

(근거: 위의 경우에서 a의 알림을 확인해 보면, 일반 에디터에서 작성했을 경우 "xx님이 "@a @b @c" 댓글에서 회원님을 언급했습니다" 라고 뜨는데, textarea에서 확인해 보면 "xx님이 "@a@b@c" 댓글에서 회원님을 언급했습니다" 라고, 사이에 간격이 없이 다 붙어서 나오네요)

 

혹시 이거 해결방법 아시는 분 계신가요? 솔직히 제일 좋은건 textarea도 에디터처럼 p 태그를 사용하도록 하고 싶은데, 어떻게 하는지 모르겠고... 알림센터를 br 태그를 인식해서 간격을 띄우도록 해야 할 거 같은데...

댓글 3

  • 아 참고로, 앞에 다른 멘션이 있는 경우 말고도, 줄바꿈하고 나서 바로 멘션을 하는 경우에도

    (즉, 엔터키를 치고 나서 바로 멘션을 하면)

    역시 마찬가지로 "@" 글자가 윗줄과 붙어버려서 인식하지 못합니다.

    (즉, 예컨대

    테스트
    @a
    테스트

    라고 입력하면, 알림센터는 이걸 "테스트@a테스트" 라고 인식해버려서 멘션이 안 오네요

     

    물론 이건 br태그를 제대로 인식 못하고 글자들을 붙여버려서 일어나는 문제니까 당연한 부분이지만..)

  • 태그를 제거해서 그렇습니다.
    $this->_getMentionTarget(strip_tags($obj->content));
    이러한 문자가 바로 태그를 수정하는 과정인데 게시글과정에서 모든 문자열과 PHP문을 지워버리기 때문에. 남은 콘텐츠를 가지고 따졌을땐 붙은글자로 인식하는 것 같습니다.
    다른 방법이 있나 한번 찾아는 보겠습니다.;ㅁ;
  • @람보
    태그를 지우기 전에 < 문자를 빈칸과 < ( <) 또는 줄바꿈 문자와 < (₩n<)으로 치환하면 될거 같아요.