Extra Form
PHP PHP 7.2
CMS Rhymix

 

@누군가

 

라고 하면 누군가라는 닉이 호출이 되는데 본문 / 댓글에서 보면 그냥 위 처럼 그냥 글씨처럼 보여서 멘션인지 잘 모르는 사람이 많더라구요.

 

그래서

 

@누군가

 

이런 형식으로 만들 수 있는 방법이 있을까요?

여기에서 추가로 더 하자면 저부분을 누르면 회원정보보기같은 팝업 에리어가 떳으면 좋을 수 있는데

 

멘션 스타일을 지정하는 방법은 검색을 해봐도 없길래 질문글로 남겨봅니다.

  • profile

    저희쪽에 구현해 놓은건 링크를 섬씽모듈의 활동내역으로 링크를 걸어주는거였는데 원하시는 회원메뉴 레이어 출력으로 봐꿔 봤습니다. 화면 출력전에 바꾸는거라 js 로 처리할때 깜빡이는 불편함 그런게 없어 저는 이 방식이 더 좋습니다.

     

    {@
    $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_}

     

     

    기존 스킨에서 본문 출력하는 코드를 통째로 위와 같이 바꾸면 됩니다.

    보통은 {$oDocument->getContent(false)} 이렇게 본문을 출력합니다.

     

    댓글에도 똑같이 적용하면 댓글에서 작성된 경우도 처리가 됩니다. commnent.html 같은 곳에서 댓글 컨텐트 출력하는 부분을 비슷하게 교체

     

    섬씽 모듈로 링크 거는 것은 아래 게시글에 내용이 있습니다. 거의 같고 링크 부분만 살짝 다릅니다.

    https://rxtip.kr/rx_tip/740 

     

     

     

    멘션.png

  • profile ?
    허.. 구글에 검색해도 안나온 결과물을 이렇게 성의있게 적어주시다니
    정말 감사합니다.