로그인

검색

Extra Form
추천지수 6

라이믹스와 XE에서는 알림센터로 회원이 각종 알림을 받을 수 있습니다. 그 중 닉네임 앞에 골뱅이를 붙여서 적으면 해당 회원에게 알림이 가는 멘션 기능을 사용할 수 있습니다. 그런데 이 기능을 처음 보는 회원은 무슨 기능인지 잘 모르기도 하고 해서 그 부분을 조금 스타일링을 해주거나 해서 눈에 띄게 해주고 클릭시 원하는 것을 보여주거나 하면 좋을 것 같아 구현했습니다.

 

@주인장님에게 호출을 할 경우 

 

단, 조건이 조금 있습니다. 

알림센터에서 단어의 끝이 님으로 끝나는 경우 닉네임으로 취급하지 않도록 알림센터에서 설정을 하고 회원가입을 받을때 닉네임의 끝자리는 님을 사용하지 않는 것으로 하고 구현하는 것을 전제로 합니다. 이 팁에는 님은 닉네임으로 포함하지 않고 존칭으로 간주합니다.

 

본문과 댓글 모두 다 적용할 수 있지만 본문 부분만 설명해 보겠습니다.

 

본문을 출력하는 파일에 해당 부분을 처리할 수 있도록 수정해 주는 방법입니다. _read.html 혹은 read.html 로 많이 사용합니다.

 

파일을 열어서 본문의 내용을 출력하는 부분을 찾습니다.

 

 

{$oDocument->getContent(false)}

 

보통 위와 같이 되어 있습니다. 위와 같이 되어 있는 것을 기준으로 합니다.

 

위 부분을 찾아서 아래와 같이 바꿔 줍니다.

 

1.멘션이 사용되었을때 해당 멘션 부분의 링크를 따로 연결하지 않고 클릭시 회원메뉴 팝업 레이어가 뜨게 하기

 

{@
$content_ = $oDocument->getContent(false);
$content = html_entity_decode(strip_tags($oDocument->getContent(false)));
preg_match_all('/(?:^|\s)@([^\pC\pM\pP\pS\pZ]+)/u', $content, $matches);
$mentions = array_unique($matches[1]);
}
<block loop="$mentions=>$key,$val">
{@
if (($pos = strpos($val, 님)) !== false && $pos > 0):$mention = substr($val, 0, $pos);
else:$mention = $val;
endif;
$mention_result[] = $mention;
}
</block>
{@ $mention_result = array_unique($mention_result);}
<block loop="$mention_result=>$key,$val">
{@
$oMemberModel = &getModel('member');
$member_srl = $oMemberModel->getMemberSrlByNickName($val);
}
{@ $content_ = preg_replace("/(@$val)([$\s<&,님])/u", "<a class='nick member_".$member_srl."' style='color:#07F; font-weight:500; display:inline-block; text-decoration:none; cursor: pointer;'>$1</a>$2", $content_); }
</block>
{$content_}

 

 

 

 

 

2.멘션이 사용된 부분에 섬띵모듈의 회원활동내역의 링크를 걸어주기

 

{@
$content_ = $oDocument->getContent(false);
$content = html_entity_decode(strip_tags($oDocument->getContent(false)));
preg_match_all('/(?:^|\s)@([^\pC\pM\pP\pS\pZ]+)/u', $content, $matches);
$mentions = array_unique($matches[1]);
}
<block loop="$mentions=>$key,$val">
{@
if (($pos = strpos($val, 님)) !== false && $pos > 0):$mention = substr($val, 0, $pos);
else:$mention = $val;
endif;
$mention_result[] = $mention;
}
</block>
{@ $mention_result = array_unique($mention_result);}
<block loop="$mention_result=>$key,$val">
{@ $content_ = preg_replace("/(@$val)([$\s<&,님])/u", "<a href='/@".$val."' style='color:#07F; font-weight:500; display:inline-block; text-decoration:none; cursor: pointer;'>$1</a>$2", $content_); }
</block>
{$content_}

 

 

여기 라이믹스 팁에는 1번의 케이스로 적용해 보았습니다.

 

멘션.png

 

 

로그인 한 회원이 클릭시에는 회원메뉴 전체가 뜹니다.

 

@주인장님 이라고 본문에 적었습니다.

Who's 꿀팁관리소장

profile
라이믹스로 커뮤니티 사이트를 운영하는 비개발자 운영자 입니다.
파트너쉽 맺으실 사이트 운영자분 환영합니다.
2 추천
Atachment
첨부 '0'
  • 문의 2020.08.08 05:44
    안녕하세요, 해당 팁은 잘 적용했습니다.

    그런데 닉네임에 특수문자가 들어간경우에는 멘션호출이 안되는건지 모르겠네요.

    호출은 됐는데 멘션이 꾸며지지 않는건지..


    예를 들어서 닉네임이


    .A 거나

    안녕-하세요


    인경우에는 스타일 적용이 되지않네요.

  • profile
    꿀팁관리소장 2020.08.08 14:11
    To.문의
    저 정규식 자체가 제가 알림센터에서 @문자 에서 @뒤에 붙는 것을 호출 대상자의 닉네임으로 확인하는 것으로 그대로 가져왔습니다.
    아마 스타일이 적용되지 않는다면 호출 자체도 안될 가능성이 높습니다.

    저희와 같은 경우는 닉네이에 특수문자,공백 끝글자가 님 은 허용하지 않는 정책을 세우고 있습니다.
    님의 경우 보통 닉네임에 님을 존칭으로 많이 붙이게 되어 님을 닉네임에서 허용하면 호출할때 님을 빼버리면서 문제가 발생하기도 합니다.

    가입 시 닉네임에 특수문자,공백을 허용하지 않는 것을 추천드립니다.

라이믹스 팁(112)

라이믹스 운영과 사용에 관한 팁을 공유 합니다.

  1. read more
  2. read more
  3. Read More
  4. Read More
  5. Read More
  6. Read More
  7. Read More
  8. Read More
  9. 중복 글/댓글 방지 애드온

    Date2020.07.27 Category기능 Views228 Votes2
    Read More
  10. Read More
  11. Read More
  12. Read More
  13. Read More
  14. XE 레이아웃 메뉴에 폰트어썸이나 XEICON을 출력하기 3

    Date2020.07.20 Category기타 Views293 Votes2
    Read More
  15. Read More
  16. 라이믹스용 스케치북5 스킨이 있습니다. 10

    Date2020.07.18 Category기능 Views1309 Votes5
    Read More
  17. Read More
  18. Read More
  19. 인기글을 게시판의 공지에 올려주는 애드온

    Date2020.07.16 Category기능 Views247 Votes2
    Read More
  20. Read More
  21. Read More
  22. Read More
  23. Read More
  24. Read More
Prev 1 2 3 4 Next
/ 4