저는 실명출력 애드온을 사용하고있습니다.

회원 이름과 회원 사용자정의값을 추가로 출력을 위해서 사용중인데

 

탈퇴한 회원은 닉네임이 표시가 안되고 그냥 없어지더라구요

애드온을 끄게될 경우 닉네임이 표시됩니다.

 

그래서 질문 게시판에 남겨서 팁을 받아서 사용하였는데

스킨단에서 수정하여 탈퇴한 회원은 회색 처리와 함께 닉네임을 표시하도록 했습니다.

 

저는 유료 스킨을 사용하고있어서 각 스킨의 list 파일 read 파일 comment 파일 에서

<a href="#popup_menu_area" class="member_{$document->get('member_srl')}" onclick="return false">{$document->getNickName()}</a></td>

위 처럼 리스트에 닉네임을 표시하는 부분 바로 윗부분이나 바로 아랫부분에

 

아래 코드를 넣습니다.

 

{@ $memberInfo = getModel('member')->getMemberInfoByMemberSrl($document->get('member_srl'));}
<!--@if(!$memberInfo->member_srl)-->
<span style="color:#cccccc;">{$document->getNickName()}(비회원)</span>
<!--@end-->

 

https://xetown.com/questions/1106948 게시물 답변을 보시면 아시겠지만..

위 코드를 넣고

 

<!--@if(!$memberInfo->member_srl)-->

이것으로 회원 srl 이없을 경우 탈퇴한 회원으로 생각하고

표시하도록 했습니다.

 

실명출력 애드온에서 탈퇴 회원은 닉네임이 아예 출력이 안되니 저렇게 하면

닉네임(비회원) 으로 회색으로 표시가 됩니다..

 

본문 글쓴이 표시는

{@ $memberInfo = getModel('member')->getMemberInfoByMemberSrl($oDocument->get('member_srl'));}
<!--@if(!$memberInfo->member_srl)-->
<span style="color:#cccccc;">{$oDocument->getNickName()}(비회원)</span>
<!--@end-->

이걸로 하시고..

 

댓글은

{@ $memberInfo = getModel('member')->getMemberInfoByMemberSrl($comment->member_srl);}
<!--@if(!$memberInfo->member_srl)-->
<span style="color:#cccccc;">{$comment->getNickName()}(비회원)</span>
<!--@end-->

 

이렇게 했습니다..

 

도움 주신분들께 감사드립니다^^

 

처음 남겨보는데 혹시나 실명출력 애드온 사용하시는 분들 중

비회원 글 삭제를 하지 않고 보존하시는 분들중 닉네임을 표시하고 싶으시면 위 처럼 하시면 될 듯합니다..

 

더 좋은 방법있으면..

공유해주세요~!~!

  • profile
    탈퇴한 회원은 회원테이블에 존재하지 않아서 user_id 뿐 아니라 모든 항목이 없을텐데요? !$memberInfo 로 조건을 걸면 안되나요?
  • profile profile
    실명출력 애드온에서는 바로 !$memberInfo 했을때 작동하는데
    스킨단에서는 if(!$memberInfo) 했을때 탈퇴하지 않은 회원도 출력이됩니다..
    print_r해봐도 회원이나 탈퇴회원이나 1 만 나올뿐입니다...
    그래서 위에 올린 것 처럼 id 가 없을 경우로 바꿨습니다ㅠㅠ

    제 사이트의 경우 비회원은 접속을 할 수 없는 구조이기에 가능하지만
    비회원이 글 쓸 수 있는 게시판의 경우는 잘 모르겠네요..
  • profile profile
    그렇군요. 배열에 들어있는 것과 없는 것을 구별해 내는게 제가 생각한게 아닌가 보네요.
    저희는 lastlogin값으로 하긴 했습니다.
  • profile profile
    그래도 팁 주신걸로 원하는 결과를 얻어 냈네요..^^
  • profile profile
    네. 저희는 이미 지금 말씀하신 방법으로 하긴 했어요. 왜냐면 글쓴이의 마지막 로그인 시간을 표시해 주기 위해 이미 마지막로그인 값을 불러왔기에 활용했거든요.

    $memberInfo 이 비어있는지 확인하는 방법이 있나보네요. 궁금해지긴 하네요 ㅋ
  • profile profile
    실명출력 애드온에서는 작동합니다..
    $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);

    if(!$member_info) 조건문 넣고
    닉네임 출력을 하질 못해서 비회원 이라고만 넣으면 비회원으로만 출력이됩니다..

    근데 저는 닉네임을 표시하고 싶어서 스킨단에서 수정했네요..ㅠㅠ
  • ?
    탈퇴한 회원은 srl이 0으로 바뀌는걸로 알고 있는데..맞나 모르겠네요
  • ? profile
    탈퇴회원은 테이블에서 삭제가 됩니다. 바뀌는게 아니구요.
  • ? profile
    조건문이 먹질 않아서..안되는 것 같더라구요..ㅠㅠ그래도 답변주셔서 감사합니다 ㅎㅎ
  • profile profile

    아니에요. 탈퇴되는 순간 해당 회원정보는 없어지는 겁니다. 회원번호를 다른 값으로 변경한 채 남는게 아니에요. 그래서 제가 $memberInfo 값이 없다고 한 것입니다.

     

    문서에서 가진 회원번호는 글 작성시 회원정보를 통해 문서db에 기록되어 탈퇴전 어떤회원번호 회원이었는지 알 수 있는거에요.

  • profile ?
    그럼

    $MemberInfo = $oMemberModel->getMemberInfoByMemberSrl($member_srl);

    if(!$MemberInfo) return $matches[0];

    이런식으로 해도 되려나요?
  • ? profile

    글쎄요. 저도 개발자가 아니다보니 템플릿에서 !$memberInfo 로 될 것 같았는데 저도 실제로 해봐야 알겠습니다.

    $member_srl 은 확인하고 싶은 회원번호가 들어가도록 고쳐야 합니다.

     

  • profile

    {print_r($memberInfo)} 를 했을때 탈퇴한 회원은 아이디가 안나오더라구요

    이부분이 좀 이상한데요..
    멤버테이블에 없는 회원번호의 조회값에 아이디가 아닌 다른값은 있다는 건가요???

     

    사용하시는 애드온이 뭔가 영향을 주는거 같다는 생각이 많이 드네요.

  • profile profile
    아 저렇게 했을때에는
    회원일 경우 배열에 담긴 댓글이나 회원정보가 모두 나오는데
    탈퇴한 회원은 1만 출력됩니다.. 근데 회원일 경우에도 배열에 담긴 정보들과 1 이 함께 나오더라구요
    그래서 그냥 비교할만한 아이디로 설정했습니다.

    회원일 경우
    stdClass Object ( [member_srl] => [user_id] => [email_address] => [password] => [email_id] => [email_host] => naver.com [user_name] => [nick_name] => [find_account_question] => 2 [find_account_answer] => [homepage] => [blog] => [birthday] => [allow_mailing] => N [allow_message] => Y [denied] => N [limit_date] => [regdate] => 20181025180700 [last_login] => 20181109144634 [change_password_date] => 20181025180700 [is_admin] => N [description] => [list_order] => -63895 [member_s] => [profile_image] => [image_name] => [image_mark] => [signature] => [group_list] => Array ( [63322] => ) [xe_validator_id] => modules/member/tpl/1 [__profile_image_exist] => false [stcode] => ) 1

    비회원일 경우
    1
  • profile profile
    1이 나오는게 문제였군요. 요거 공부해봐야겠습니다.
  • profile profile
    애드온 꺼도 1이 나오나요?
  • profile profile
    애드온에서 했을땐 아무것도 안나옵니다..
  • profile profile
    애드온을 끄고 스킨에서 확인했을때요...
  • profile profile
    아~ 잘못 봤네요..
    꺼도 회원 탈퇴회원 1이 나옵니다..
  • profile profile
    넵. 제가 공부해서 왜그런지 확인해볼게요 ㅋ
  • profile profile
    앗 이런 수고스러움을....알게되시면..저도 알려주세요..ㅎ
  • profile
    그냥;;

    if(!$memberInfo->member_srl)

    == 조건문으로 "" 같은 빈 string 은 비교연산으로 쓰시지 마시길..
  • profile profile
    감사합니다 ^^